Generator signal for servos and esc's

Dependencies:   mbed

Committer:
Marcelocostanzo
Date:
Fri Nov 27 14:12:47 2020 +0000
Revision:
0:96da12aef31f
V1 FUNCIONANDO

Who changed what in which revision?

UserRevisionLine numberNew 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 }