Marcelo Costanzo Miranda
/
PPM_SIGNAL_GENERATOR
Generator signal for servos and esc's
main.cpp@0:96da12aef31f, 2020-11-27 (annotated)
- Committer:
- Marcelocostanzo
- Date:
- Fri Nov 27 14:12:47 2020 +0000
- Revision:
- 0:96da12aef31f
V1 FUNCIONANDO
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Marcelocostanzo | 0:96da12aef31f | 1 | #include "mbed.h" |
Marcelocostanzo | 0:96da12aef31f | 2 | |
Marcelocostanzo | 0:96da12aef31f | 3 | PwmOut myservo(D6); |
Marcelocostanzo | 0:96da12aef31f | 4 | AnalogIn pot(A0); |
Marcelocostanzo | 0:96da12aef31f | 5 | Serial pc(USBTX, USBRX); // tx, rx |
Marcelocostanzo | 0:96da12aef31f | 6 | |
Marcelocostanzo | 0:96da12aef31f | 7 | float Map (float inVal, float inMin, float inMax, float outMin, float outMax); |
Marcelocostanzo | 0:96da12aef31f | 8 | |
Marcelocostanzo | 0:96da12aef31f | 9 | float i=0.0f, x=0.0f; |
Marcelocostanzo | 0:96da12aef31f | 10 | |
Marcelocostanzo | 0:96da12aef31f | 11 | int main() { |
Marcelocostanzo | 0:96da12aef31f | 12 | |
Marcelocostanzo | 0:96da12aef31f | 13 | myservo.period(0.02f); |
Marcelocostanzo | 0:96da12aef31f | 14 | |
Marcelocostanzo | 0:96da12aef31f | 15 | //Required ESC Calibration/Arming sequence |
Marcelocostanzo | 0:96da12aef31f | 16 | |
Marcelocostanzo | 0:96da12aef31f | 17 | //sends longest and shortest PWM pulse to learn and arm at power on |
Marcelocostanzo | 0:96da12aef31f | 18 | myservo = 0.1; |
Marcelocostanzo | 0:96da12aef31f | 19 | wait(2.5); |
Marcelocostanzo | 0:96da12aef31f | 20 | myservo = 0.05; |
Marcelocostanzo | 0:96da12aef31f | 21 | wait(2.5); |
Marcelocostanzo | 0:96da12aef31f | 22 | myservo = 0.075; |
Marcelocostanzo | 0:96da12aef31f | 23 | wait(2.5); |
Marcelocostanzo | 0:96da12aef31f | 24 | |
Marcelocostanzo | 0:96da12aef31f | 25 | |
Marcelocostanzo | 0:96da12aef31f | 26 | while(1){ |
Marcelocostanzo | 0:96da12aef31f | 27 | x = pot.read(); |
Marcelocostanzo | 0:96da12aef31f | 28 | i = Map(x, 0.0, 1.0, 0.05, 0.1); |
Marcelocostanzo | 0:96da12aef31f | 29 | myservo.write(i); |
Marcelocostanzo | 0:96da12aef31f | 30 | pc.printf("control %f\n\r",i); |
Marcelocostanzo | 0:96da12aef31f | 31 | wait(0.2); |
Marcelocostanzo | 0:96da12aef31f | 32 | } |
Marcelocostanzo | 0:96da12aef31f | 33 | } |
Marcelocostanzo | 0:96da12aef31f | 34 | |
Marcelocostanzo | 0:96da12aef31f | 35 | float Map (float inVal, float inMin, float inMax, float outMin, float outMax) |
Marcelocostanzo | 0:96da12aef31f | 36 | { |
Marcelocostanzo | 0:96da12aef31f | 37 | return ( (inVal - inMin)*(outMax - outMin)/(inMax - inMin) + outMin ); |
Marcelocostanzo | 0:96da12aef31f | 38 | } |