alles in elkaar met de mooie manier van de regelaar

Dependencies:   Encoder HIDScope MODSERIAL TouchButton mbed-dsp mbed

Fork of Robot2mooiemanier by BMT M9 Groep01

Revision:
17:71c5c9bfb7ba
Parent:
16:8e56aa6f4b7a
Child:
18:1e40778ad1aa
--- a/main.cpp	Fri Oct 31 09:45:07 2014 +0000
+++ b/main.cpp	Fri Oct 31 10:26:50 2014 +0000
@@ -26,6 +26,7 @@
 float pid(float setspeed, float measurement, bool reset = false);
 void motor2aansturing();
 void motor1aansturing();
+void motor1aansturingdeel2();
 
 //alle initiaties voor EMG
 MODSERIAL pc(USBTX,USBRX);
@@ -381,9 +382,16 @@
                 motordir1 = 1;
                 stop = 0;
                 looptimer1.attach(motor1aansturing,TSAMP1);
-                wait(8); ////is aan te passen (tijd die nodig is om balletje te slaan
+                wait(1); ////is aan te passen (tijd die nodig is om balletje te slaan
                 looptimer1.detach();
                 pc.printf("detachMotor1\n");
+                
+                Ticker looptimer3;
+                looptimer3.attach(motor1aansturingdeel2,TSAMP1);
+                wait(1); ////is aan te passen (tijd die nodig is om balletje te slaan
+                looptimer3.detach();
+                pc.printf("detachMotor1\n");
+                
                 pwm_motor1.write(0);
                 
                 myled1=1;
@@ -638,10 +646,59 @@
     if (toestand == SLAAN && motor1.getPosition() <= ANGLEMAX) {
         toestand = TERUGKEREN;
         motor1.setPosition(0);
+        pwm_motor1.write(0);
         pid(0,0,true); 
         stop = 1; //zorgt dat hij niet weer gaat slaan tot er gereset is...
         pc.printf("toestand = terugkeren\n\r");
     }
+    /*if (toestand == TERUGKEREN) {
+        new_pwm = pid(setspeed, motor1.getSpeed(),false); 
+        pwm_motor1.write(new_pwm);
+        motordir1 = 0;
+        pc.printf("motor gaat terugkeren\n\r");
+        pc.printf("new pwm %f\r\n",new_pwm);
+    }*/
+    if (toestand == WACHTEN) {
+        pwm_motor1.write(0);
+        pc.printf("ifwachten\n");
+    }
+    if (toestand == SLAAN) {
+        new_pwm = pid(setspeed, motor1.getSpeed(),false);
+        pwm_motor1.write(new_pwm);
+        motordir1 = 1;
+        pc.printf("SLAAN\n");
+        
+    }
+}
+
+void motor1aansturingdeel2()
+{
+    if (motor1.getPosition()>= ANGLEMAX && toestand != SLAAN) {
+        toestand = WACHTEN;
+        motor1.setPosition(0);
+        pid(0,0,true); 
+        pc.printf("if1\n");
+    }
+    /*if (snelheidsstand != 0 && toestand == WACHTEN && stop == 0) { // stop = 0 in het begin let op dat dit na reset nog zo is
+        toestand = SLAAN;
+        pc.printf("slaan \n");
+        if ( snelheidsstand==3) {
+            setspeed = V3; pc.printf("Snel 3 \n");
+        }
+        if ( snelheidsstand==2) {
+            setspeed = V2; pc.printf("Snel 2\n");
+        }
+        if ( snelheidsstand==1) {
+            setspeed = V1; pc.printf("Snel 1 \n");
+        }
+    }*/
+    /*if (toestand == SLAAN && motor1.getPosition() <= ANGLEMAX) {
+        toestand = TERUGKEREN;
+        motor1.setPosition(0);
+        pid(0,0,true); 
+        stop = 1; //zorgt dat hij niet weer gaat slaan tot er gereset is...
+        pc.printf("toestand = terugkeren\n\r");
+    }*/
     if (toestand == TERUGKEREN) {
         new_pwm = pid(setspeed, motor1.getSpeed(),false); 
         pwm_motor1.write(new_pwm);
@@ -653,11 +710,11 @@
         pwm_motor1.write(0);
         pc.printf("ifwachten\n");
     }
-    if (toestand == SLAAN) {
+    /*if (toestand == SLAAN) {
         new_pwm = pid(setspeed, motor1.getSpeed(),false);
         pwm_motor1.write(new_pwm);
         motordir1 = 1;
         pc.printf("SLAAN\n");
         
-    }
+    }*/  
 }
\ No newline at end of file