code to fly a quadrocopter

Dependencies:   mbed

PWM/degpwm.cpp

Committer:
DD1993
Date:
2020-05-05
Revision:
0:b0f9c5ac0305

File content as of revision 0:b0f9c5ac0305:

#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
        
    }