2 Motores + Joystick

Dependencies:   X_NUCLEO_IHM01A1 TextLCD

Fork of HelloWorld_IHM01A1_2Motors_mbedOS by ST

Files at this revision

API Documentation at this revision

Comitter:
leogrotti
Date:
Fri May 18 17:44:44 2018 +0000
Parent:
50:58a2df31077a
Child:
52:7f80fc02710e
Commit message:
bota?o fim de curso - programa funfando

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Fri May 18 15:28:53 2018 +0000
+++ b/main.cpp	Fri May 18 17:44:44 2018 +0000
@@ -99,6 +99,7 @@
 int Dir_X;
 int Dir_Y;
 int Dir_Z;
+int segu_fim_curso;
 
 int count;
 
@@ -283,11 +284,8 @@
         zd = eixo_ZD.read();
         sp = salva_pos.read();
         vc = vai_cami.read();
-        if (count == 9999999999999999) {
-            printf("zu =%f \r\n\n", zu);
-            printf("zd =%f \r\n\n", zd);
-            printf("sp =%f \r\n\n", sp);
-            printf("vc =%f \r\n\n", vc);
+        if (count == 9999) {
+            printf("segurança fim de curso =%i \r\n\n", segu_fim_curso);
             count = 0;
             }
 
@@ -328,26 +326,31 @@
             motor1->run(StepperMotor::FWD);
             wait_ms(DELAY_1);
             Dir_Y = 1;
+            segu_fim_curso = 1;
             }
 // Movimentando eixo Y bwd             
             else if(u<0.65 && !fim_curso_Y) {
                 motor1->run(StepperMotor::BWD);
                 wait_ms(DELAY_1);
                 Dir_Y = 0;
+                segu_fim_curso = 1;
                 }
                 
 // parando eixo Y
             else {
                 motor1->hard_stop();
                 wait_ms(DELAY_1);
-                if (fim_curso_Y) {
+                if (fim_curso_Y && segu_fim_curso==1) {
+                    printf("Fim de curso Y apertada \r\n");
                     if (Dir_Y == 1){
                         motor1->move(StepperMotor::BWD, 1000);
                         motor1->wait_while_active();
+                        segu_fim_curso = 0;
                         }
                     if (Dir_Y == 0){
                         motor1->move(StepperMotor::FWD, 1000);
                         motor1->wait_while_active();
+                        segu_fim_curso = 0;
                         }
                     }
                 }
@@ -359,6 +362,7 @@
             motor2->run(StepperMotor::BWD);
             wait_ms(DELAY_1);
             Dir_X = 1;
+            segu_fim_curso = 1;
                 }
             
 // Movimentando eixo X Bwd 
@@ -366,19 +370,23 @@
                 motor2->run(StepperMotor::FWD); 
                 wait_ms(DELAY_1);
                 Dir_X = 0;
+                segu_fim_curso = 1;
                 }
 // parando eixo X
             else{
                 motor2->hard_stop();
                 wait_ms(DELAY_1);        
-                if (fim_curso_X) {
+                if (fim_curso_X && segu_fim_curso==1) {
+                    printf("Fim de curso X apertada \r\n");
                     if (Dir_X == 1){
                         motor2->move(StepperMotor::FWD, 1000);
                         motor2->wait_while_active();
+                        segu_fim_curso = 0;
                         }
                     if (Dir_X == 0){
                         motor2->move(StepperMotor::BWD, 1000);
                         motor2->wait_while_active();
+                        segu_fim_curso = 0;
                         }
                     }
                }