Dominik Diedrich
/
drone_quado_x
code to fly a quadrocopter
Diff: PWM/degpwm.cpp
- 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