code to fly a quadrocopter

Dependencies:   mbed

Revision:
0:b0f9c5ac0305
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PWM/degpwm.cpp	Tue May 05 21:11:38 2020 +0000
@@ -0,0 +1,76 @@
+#include "degpwm.h"
+
+RawSerial pc_degpwm(USBTX, USBRX);
+
+
+ //////////////////////PITCH FORWARD_DEG_TO_PWM//////////////////////////////////////////////////////////////
+int Degpwm::pitch_pwm(float pitch_error)
+    {
+        float pitch_e = pitch_error;
+        float pitch_error_pwm = 0.0;
+        int pitch_error_pwm_ready = 0;
+        
+        //Umrechnung von Grad zu PWM Wert
+        if (pitch_e < -50 || pitch_e > 50){}
+        
+        else{
+    
+            pitch_error_pwm = pitch_e *400/50;
+            //pc_degpwm.printf("Output Pitch Errorpwm: %f\n", pitch_e);
+            pitch_error_pwm_ready = pitch_error_pwm;
+            //pc_degpwm.printf("Output Pitch Error: %f| PWM: %d\n", pitch_error, pitch_error_pwm_ready);
+         }
+        
+        return pitch_error_pwm_ready; // Rücgabe des Korrekturwerts in PWM
+    }
+    
+ //////////////////////ROLL_DEG_TO_PWM//////////////////////////////////////////////////////////////
+int Degpwm::roll_pwm(float roll_error)
+    {
+        float pitch_e = roll_error;
+        float roll_error_pwm = 0.0;
+        int roll_error_pwm_ready = 0;
+        
+        //Umrechnung von Grad zu PWM Wert
+        if (pitch_e < -50 || pitch_e > 50){}
+        
+        else{
+    
+            roll_error_pwm = pitch_e *400/50;
+            //pc_degpwm.printf("Output Pitch Errorpwm: %f\n", pitch_e);
+            roll_error_pwm_ready = roll_error_pwm;
+            //pc_degpwm.printf("Output Pitch Error: %f| PWM: %d\n", pitch_error, pitch_error_pwm_ready);
+         }
+        
+        return roll_error_pwm_ready; // Rücgabe des Korrekturwerts in PWM
+    }
+ 
+ //////////////////////YAW_ACCEL_TO_PWM//////////////////////////////////////////////////////////////   
+int Degpwm::yaw_pwm(float yaw_error)
+    {
+        float yaw_e = yaw_error;
+        float yaw_error_pwm = 0;
+        int yaw_error_pwm_ready = 0;
+     
+        //Umrechnung von Grad zu PWM Wert
+        if (yaw_e < -1200) {
+            yaw_error_pwm = -1200 *370/170;
+            yaw_error_pwm_ready = yaw_error_pwm;
+            }
+            
+        else if (yaw_e > 1200) {
+            yaw_error_pwm = 1200 *370/170;
+            yaw_error_pwm_ready = yaw_error_pwm;
+            }
+        
+        else{
+            yaw_error_pwm = yaw_e *370/170;
+            yaw_error_pwm_ready = yaw_error_pwm;
+         
+            //pc_degpwm.printf("Output yaw Error: %f| PWM: %d\n", yaw_error, yaw_error_pwm_ready);
+         }
+        
+        return yaw_error_pwm_ready; // Rückgabe des Korrekturwerts in PWM
+        
+    }
+ 
\ No newline at end of file