Austin Sloop
/
AustinSloop_MiniProject_ServoControl
3 button servo control for HS422 with mbed
Revision 1:a00c2b3c73e8, committed 2016-01-08
- Comitter:
- asloop18
- Date:
- Fri Jan 08 04:21:26 2016 +0000
- Parent:
- 0:c21f0ed70bcd
- Commit message:
- Final working version
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Jan 07 23:28:22 2016 +0000 +++ b/main.cpp Fri Jan 08 04:21:26 2016 +0000 @@ -9,43 +9,43 @@ DigitalIn reset(p7); //Middle button, reset to 0 PwmOut servo(p21); //Servo Control -DigitalOut L(LED1); +DigitalOut L(LED1); //Debug LED DigitalOut R(LED3); //Debugging Purposes -DigitalOut C(LED2); +DigitalOut C(LED2); //Debug LED -char a; //value of switching int i=1500; //value of servo position int main(){ servo.period(0.020); while(1){ if (right==1){ - a=3; - R=1; - wait(.5); - R=0; + wait(0.05); + if (right==0){ + i=i+100; + R=1; + wait(.1); + R=0; + } } if (left==1) { - a=1; - L=1; - wait(1); - L=0; + wait(0.05); + if (left==0){ + i=i-100; + L=1; + wait(.1); + L=0; + } } if (reset==1) { - a=2; - C=1; - wait(1); - C=0; + wait(0.05); + if (reset==0){ + i=1500; + C=1; + wait(.1); + C=0; + } } - - switch(a){ - case 0: break; - case 1: i=i-100; break; //CCW 10 - case 2: i=1500; break; //Reset 0 - case 3: i=i+100; break; //CW 10 - } - servo.pulsewidth_us(i); - wait(1); - a=0; - + if (i>2400) {i=2400;} //Prevention of over-extention of servo + if (i<600) {i=600;} + servo.pulsewidth_us(i); } } \ No newline at end of file