3 button servo control for HS422 with mbed

Dependencies:   mbed

Files at this revision

API Documentation at this revision

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