2014-10-15 Arm 1 naar thuispositie. Eerste poging, fout in keep_in_range

Dependencies:   Encoder MODSERIAL TextLCD mbed mbed-dsp

Revision:
32:80fc2de5b511
Parent:
31:36fe36657f8d
--- a/main.cpp	Tue Nov 04 00:33:35 2014 +0000
+++ b/main.cpp	Wed Nov 05 18:29:00 2014 +0000
@@ -246,14 +246,14 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    referentie_arm1 = referentie_arm1 + 180.0/200.0;            //Referentie loopt in één seconde op tot het gewenste aantal pulsen
+                    referentie_arm1 = referentie_arm1 + 203.0/200.0;            //Referentie loopt in één seconde op tot het gewenste aantal pulsen
 
                     pc.printf("pulsmotorgetposition1 %d ", puls_motor_arm1.getPosition());          //Huidig aantal getelde pulsen van de encoder naar pc sturen
                     pc.printf("pwmmotor1 %f ", pwm_to_motor_arm1);                                  //Huidige PWM waarde naar motor naar pc sturen
                     pc.printf("referentie1 %f\n\r", referentie_arm1);                               //Huidige referentie naar pc sturen
 
-                    if (puls_motor_arm1.getPosition() >= 180) {     //Als het gewenste aantal pulsen behaald is
-                        referentie_arm1 = 180;                      //Blijft de referentie op dat aantal pulsen staan
+                    if (puls_motor_arm1.getPosition() >= 203) {     //Als het gewenste aantal pulsen behaald is
+                        referentie_arm1 = 203;                      //Blijft de referentie op dat aantal pulsen staan
                         state = KALIBRATIE_ARM2;                    //Door naar de volgende state
                     }
                 }
@@ -891,15 +891,15 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    while(puls_motor_arm1.getPosition() > -84) {
-                        referentie_arm1 = referentie_arm1 - 264.0/200.0;                    //Referentie arm 1 loopt af in een seconden naar de gewenste waarde
+                    while(puls_motor_arm1.getPosition() > -107) {
+                        referentie_arm1 = referentie_arm1 - 287.0/200.0;                    //Referentie arm 1 loopt af in een seconden naar de gewenste waarde
                         pc.printf("referentie arm 1 %f ", referentie_arm1);                 //Referentie naar pc sturen
                         pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());     //Positie naar pc sturen
                         pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1);                 //PWM naar pc sturen
                     }
 
-                    if(puls_motor_arm1.getPosition() <= -84) {
-                        referentie_arm1 = -84;
+                    if(puls_motor_arm1.getPosition() <= -107) {
+                        referentie_arm1 = -107;
                     }
 
                     while(puls_motor_arm2.getPosition() < 211) {
@@ -909,10 +909,10 @@
                         pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2);                 //PWM naar pc sturen
                     }
                     ticker_motor_arm2_pid.detach();
-                    pwm_to_motor_arm2 = 1;
+                    pwm_to_motor_arm2 = 0.8;
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
-                    while(puls_motor_arm2.getPosition() > 36) {
+                    while(puls_motor_arm2.getPosition() > -306) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -964,15 +964,15 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    while(puls_motor_arm1.getPosition() > -84) {
-                        referentie_arm1 = referentie_arm1 - 264.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+                    while(puls_motor_arm1.getPosition() > -107) {
+                        referentie_arm1 = referentie_arm1 - 287.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
                         pc.printf("referentie arm 1 %f ", referentie_arm1);                 //Referentie naar pc sturen
                         pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());     //Positie naar pc sturen
                         pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1);                 //PWM naar pc sturen
                     }
 
-                    if(puls_motor_arm1.getPosition() <= -84) {
-                        referentie_arm1 = -84;
+                    if(puls_motor_arm1.getPosition() <= -107) {
+                        referentie_arm1 = -107;
                     }
 
                     while(puls_motor_arm2.getPosition() < 211) {
@@ -982,10 +982,10 @@
                         pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2);                 //PWM naar pc sturen
                     }
                     ticker_motor_arm2_pid.detach();
-                    pwm_to_motor_arm2 = 1;
+                    pwm_to_motor_arm2 = 0.9;
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
-                    while(puls_motor_arm2.getPosition() > 36) {
+                    while(puls_motor_arm2.getPosition() > -306) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1018,15 +1018,15 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    while(puls_motor_arm1.getPosition() > -84) {
-                        referentie_arm1 = referentie_arm1 - 259.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+                    while(puls_motor_arm1.getPosition() > -107) {
+                        referentie_arm1 = referentie_arm1 - 287.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
                         pc.printf("referentie arm 1 %f ", referentie_arm1);                 //Referentie naar pc sturen
                         pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());     //Positie naar pc sturen
                         pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1);                 //PWM naar pc sturen
                     }
 
-                    if(puls_motor_arm1.getPosition() <= -84) {
-                        referentie_arm1 = -84;
+                    if(puls_motor_arm1.getPosition() <= -107) {
+                        referentie_arm1 = -107;
                     }
 
                     while(puls_motor_arm2.getPosition() < 211) {
@@ -1039,7 +1039,7 @@
                     pwm_to_motor_arm2 = 1;
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
-                    while(puls_motor_arm2.getPosition() > 36) {
+                    while(puls_motor_arm2.getPosition() > -306) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1136,15 +1136,15 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    while(puls_motor_arm1.getPosition() > 48) {
-                        referentie_arm1 = referentie_arm1 - 132.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+                    while(puls_motor_arm1.getPosition() > 25) {
+                        referentie_arm1 = referentie_arm1 - 155.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
                         pc.printf("referentie arm 1 %f ", referentie_arm1);                 //Referentie naar pc sturen
                         pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());     //Positie naar pc sturen
                         pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1);                 //PWM naar pc sturen
                     }
 
-                    if(puls_motor_arm1.getPosition() <= 48) {
-                        referentie_arm1 = 48;
+                    if(puls_motor_arm1.getPosition() <= 25) {
+                        referentie_arm1 = 25;
                     }
 
                     while(puls_motor_arm2.getPosition() < 167) {
@@ -1154,11 +1154,11 @@
                         pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2);                 //PWM naar pc sturen
                     }
                     ticker_motor_arm2_pid.detach();
-                    pwm_to_motor_arm2 = 1;
+                    pwm_to_motor_arm2 = 0.8;
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
 
-                    while(puls_motor_arm2.getPosition() > -8) {
+                    while(puls_motor_arm2.getPosition() > -370) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1207,15 +1207,15 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    while(puls_motor_arm1.getPosition() > 48) {
-                        referentie_arm1 = referentie_arm1 - 132.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
+                    while(puls_motor_arm1.getPosition() > 25) {
+                        referentie_arm1 = referentie_arm1 - 155.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste waarde
                         pc.printf("referentie arm 1 %f ", referentie_arm1);                 //Referentie naar pc sturen
                         pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());     //Positie naar pc sturen
                         pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1);                 //PWM naar pc sturen
                     }
 
-                    if(puls_motor_arm1.getPosition() <= 48) {
-                        referentie_arm1 = 48;
+                    if(puls_motor_arm1.getPosition() <= 25) {
+                        referentie_arm1 = 25;
                     }
 
                     while(puls_motor_arm2.getPosition() < 167) {
@@ -1225,11 +1225,11 @@
                         pc.printf("pwm motor 2 %f\n\r", pwm_to_motor_arm2);                 //PWM naar pc sturen
                     }
                     ticker_motor_arm2_pid.detach();
-                    pwm_to_motor_arm2 = 1;
+                    pwm_to_motor_arm2 = 0.9;
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
 
-                    while(puls_motor_arm2.getPosition() > -8) {
+                    while(puls_motor_arm2.getPosition() > -370) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1263,15 +1263,15 @@
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    while(puls_motor_arm1.getPosition() > 48) {
-                        referentie_arm1 = referentie_arm1 - 132.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste positie
+                    while(puls_motor_arm1.getPosition() > 25) {
+                        referentie_arm1 = referentie_arm1 - 155.0/200.0;                    //Referentie arm 1 loopt af in een seconde naar gewenste positie
                         pc.printf("referentie arm 1 %f ", referentie_arm1);                 //Referentie naar pc sturen
                         pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());     //Positie naar pc sturen
                         pc.printf("pwm motor 1 %f\n\r", pwm_to_motor_arm1);                 //PWM naar pc sturen
                     }
 
-                    if(puls_motor_arm1.getPosition() <= 48) {
-                        referentie_arm1 = 48;
+                    if(puls_motor_arm1.getPosition() <= 25) {
+                        referentie_arm1 = 25;
                     }
 
                     while(puls_motor_arm2.getPosition() < 167) {
@@ -1285,7 +1285,7 @@
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
 
-                    while(puls_motor_arm2.getPosition() > -8) {
+                    while(puls_motor_arm2.getPosition() > -370) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1320,11 +1320,11 @@
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
                     ticker_motor_arm2_pid.detach();
-                    pwm_to_motor_arm2 = 1;
+                    pwm_to_motor_arm2 = 0.8;
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
 
-                    while(puls_motor_arm2.getPosition() < -175) {
+                    while(puls_motor_arm2.getPosition() > -414) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1335,7 +1335,7 @@
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(1);
 
-                    while(puls_motor_arm2.getPosition() >= 0) {
+                    while(puls_motor_arm2.getPosition()<= 123) {
                         pc.printf("referentie arm 2 %f ", referentie_arm2);             //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
                         pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2);            //PWM naar pc sturen
@@ -1380,7 +1380,7 @@
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
 
-                    while(puls_motor_arm2.getPosition() < -175) {
+                    while(puls_motor_arm2.getPosition() > -414) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1391,7 +1391,7 @@
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(1);
 
-                    while(puls_motor_arm2.getPosition() >= 0) {
+                    while(puls_motor_arm2.getPosition()<= 123) {
                         pc.printf("referentie arm 2 %f ", referentie_arm2);             //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
                         pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2);            //PWM naar pc sturen
@@ -1420,7 +1420,7 @@
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(0);
 
-                    while(puls_motor_arm2.getPosition() < -175) {
+                    while(puls_motor_arm2.getPosition() > -414) {
 
                         pc.printf("referentie arm 2 %f ", referentie_arm2);                 //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition());     //Positie naar pc sturen
@@ -1431,7 +1431,7 @@
                     pwm_motor_arm2.write(pwm_to_motor_arm2);
                     dir_motor_arm2.write(1);
 
-                    while(puls_motor_arm2.getPosition() >= 0) {
+                    while(puls_motor_arm2.getPosition()<= 123) {
                         pc.printf("referentie arm 2 %f ", referentie_arm2);             //Referentie naar pc sturen
                         pc.printf("get position 2 %d ", puls_motor_arm2.getPosition()); //Positie naar pc sturen
                         pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2);            //PWM naar pc sturen
@@ -1454,11 +1454,11 @@
                     pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2);                    //PWM naar pc sturen
                 }
 
-                while(puls_motor_arm1.getPosition() < 180) {
+                while(puls_motor_arm1.getPosition() < 203) {
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    referentie_arm1 = referentie_arm1 + 132.0/200.0;                        //Referentie arm 1 loopt op in een seconde naar gewenste waarde
+                    referentie_arm1 = referentie_arm1 + 155.0/200.0;                        //Referentie arm 1 loopt op in een seconde naar gewenste waarde
                     pc.printf("referentie arm 1 %f ", referentie_arm1);                     //Referentie naar pc sturen
                     pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());         //Positie naar pc sturen
                     pc.printf("pwm motor 1 %f\n\r ", pwm_to_motor_arm1);                    //PWM naar pc sturen
@@ -1479,11 +1479,11 @@
                     pc.printf("pwm motor 2 %f\n\r ", pwm_to_motor_arm2);                    //PWM naar pc sturen
                 }
 
-                while(puls_motor_arm1.getPosition() < 175) {
+                while(puls_motor_arm1.getPosition() < 203) {
                     while(regelaar_ticker_flag != true);            //Als geen flag opgestoken, dan niks doen, wel flag, dan uit de while loop en door naar volgende regel
                     regelaar_ticker_flag = false;                   //Flag weer naar beneden, zodat deze straks weer omhoog kan
 
-                    referentie_arm1 = referentie_arm1 + 259.0/200.0;                        //Referentie arm 1 loopt op in een seconde naar gewenste waarde
+                    referentie_arm1 = referentie_arm1 + 287.0/200.0;                        //Referentie arm 1 loopt op in een seconde naar gewenste waarde
                     pc.printf("referentie arm 1 %f ", referentie_arm1);                     //Referentie naar pc sturen
                     pc.printf("get position 1 %d ", puls_motor_arm1.getPosition());         //Positie naar pc sturen
                     pc.printf("pwm motor 1 %f\n\r ", pwm_to_motor_arm1);                    //PWM naar pc sturen