testando

Dependencies:   mbed TextLCD2

Revision:
61:be02d7d4e208
Parent:
60:e2c632e8dee1
Child:
63:32ba7c4becfc
--- a/main_PM.cpp	Mon Jun 01 17:14:49 2020 +0000
+++ b/main_PM.cpp	Mon Jun 01 18:29:19 2020 +0000
@@ -20,7 +20,6 @@
 int est_y = 0;              //variável que indicará o estado do eixo y, pemitindo ou não que ele possa ser avançado depois de atingir o fim de curso
 int est_z = 0;              //variável que indicará o estado do eixo z, pemitindo ou não que ele possa ser avançado depois de atingir o fim de curso
 
-
 //pinos usados pelos botoes de fim de curso
 DigitalIn fdc_x(PC_10);
 DigitalIn fdc_y(PC_11);
@@ -142,9 +141,12 @@
 int main() {
         interrupcao.fall(&emergencia);    
         int volume;
+        int volume_solta;
+        int diametro_solta;
+        int diametro;
         int comprimento_quad;
         bool continuar;
-        int multiplicador;
+        int multiplicador = 10;
         TextLCD lcd(D4, D5, D6, D7, D8, D9); 
         lcd.printf("Bem-vindo ao Pipemax");
         lcd.locate(0,1);
@@ -175,10 +177,10 @@
         if (y_mais == 0 && est_y == 1){for(int i = 0; i < 4; i++){eixoy = parado[i];wait(t_motor);coord_y += 0;lcd.cls();lcd.printf("Limite de y atingido");}}
         if (z_mais == 0 && est_z == 1){for(int i = 0; i < 4; i++){eixoz = parado[i];wait(t_motor);coord_z += 0;lcd.cls();lcd.printf("Limite de z atingido");}}     
                  
-        while(x_menos == 0){mov_x_menos();
-            lcd.cls();      lcd.printf("X: %4.1f", coord_x);
-            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
-            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
+//        while(x_menos == 0){mov_x_menos();
+//            lcd.cls();      lcd.printf("X: %4.1f", coord_x);
+//            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
+//            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
             
         while(y_menos == 0){mov_y_menos();
             lcd.cls();      lcd.printf("X: %4.1f", coord_x);
@@ -190,10 +192,10 @@
             lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
             lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
 
-        while(x_mais == 0){mov_x_mais();
-            lcd.cls();      lcd.printf("X: %4.1f", coord_x);
-            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
-            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
+//        while(x_mais == 0){mov_x_mais();
+//            lcd.cls();      lcd.printf("X: %4.1f", coord_x);
+//            lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
+//            lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
             
         while(y_mais == 0){mov_y_mais();
             lcd.cls();      lcd.printf("X: %4.1f", coord_x);
@@ -362,25 +364,25 @@
             while(continuar){
                 printf("\n%c",pega_tecla()); 
                 tecla = pega_tecla();
+                lcd.locate(6,1);
                 wait(1);
                 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
-                    lcd.locate(6,1);
-                    volume = multiplicador*volume + (int)tecla;    
-                    printf("\nVolume: %d", volume);
+                    volume = multiplicador*volume + ((int)tecla-48);    
+                    lcd.printf("%c", tecla);
                 }
                 else if(tecla == 'A'){
                     lcd.locate(0,2);
-                    lcd.printf("Volume: %d", volume);
+                    printf("Volume inputado!");
                     continuar = 0;
                     wait(1);
                 }
-//############ Faz sentido apertar B e voltar para essas duas telas, ne?#################
                 else if(tecla=='B'){
                     funcao_pega1();
                     wait(1);
                     funcao_pega2();
                     status_tela = "novo";
-                    continuar = 0;}
+                    continuar = 0;
+                }
             }   
         }
         else if(tecla == '3' && status_tela == "novo"){
@@ -408,24 +410,22 @@
             tipo_pega = 1;
             tecla = pega_tecla();
             wait(1);
+            status_tela ="forma_quad";
             continuar = 1;
-            multiplicador = 10;
             comprimento_quad = 0;
             while(continuar){
                 printf("\n%c",pega_tecla()); 
                 tecla = pega_tecla();
                 wait(1);
-                status_tela ="forma_quad";
+                lcd.locate(0,2);
                 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
-                    lcd.locate(0,2);
                     comprimento_quad = multiplicador*comprimento_quad + ((int)tecla - 48);
-                    printf("\nComprimento: %d", comprimento_quad);
+                    lcd.printf("%c",tecla);
                 }
                 else if(tecla == 'A'){
-                    lcd.locate(0,2);
-                    lcd.printf("Comprimento: %d", comprimento_quad);
                     continuar = 0;
-                    wait(1);
+                    printf("Comprimento inputado!");
+                    printf("\nComprimento: %d", comprimento_quad);
                 }
                 else if(tecla=='B'){
                     funcao_pega_forma();
@@ -436,7 +436,30 @@
         else if(tecla == '2' && status_tela == "forma"){
             funcao_pega_forma_red();
             tipo_pega = 2;
-            status_tela = "forma_red";}
+            tecla = pega_tecla();
+            wait(1);
+            continuar = 1;
+            diametro = 0;
+            status_tela = "forma_red";
+            while(continuar){
+                tecla = pega_tecla();
+                wait(1);
+                lcd.locate(0,2);
+                if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
+                    diametro = multiplicador*diametro + ((int)tecla - 48);
+                    lcd.printf("%c",tecla);
+                }
+                else if(tecla == 'A'){
+                    continuar = 0;
+                    printf("Diametro inputado!");
+                    printf("Diametro: %d", diametro);
+                }
+                else if(tecla=='B'){
+                    funcao_pega_forma();
+                    status_tela = "forma";
+                    continuar = 0;}
+            }
+        }
         else if(tecla == 'B' && status_tela == "forma"){
             funcao_pega1();
             wait(1);
@@ -541,16 +564,78 @@
         tecla=pega_tecla(); 
         if(tecla == '1' && status_tela == "solta"){
             funcao_solta_dimensao();
+            continuar = 1;
+            diametro_solta = 0;
             status_tela="solta_dimensao";
-            }
+            lcd.locate(0,2);
+            while(continuar){
+                tecla = pega_tecla();
+                wait(1);
+                if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
+                    diametro_solta = multiplicador*diametro_solta + ((int)tecla - 48);
+                    lcd.printf("%c",tecla);
+                }
+                else if(tecla == 'A'){
+                    printf("Diametro do solta inputado!");
+                    printf("Diametro do solta: %d", diametro_solta);
+                    continuar = 0;
+                }
+                else if(tecla=='B'){
+                    funcao_pega_forma();
+                    status_tela = "solta";
+                    funcao_solta1();
+                    wait(3);
+                    funcao_solta2();
+                    continuar = 0;}
+                }
+        }
+
         else if(tecla == '2' && status_tela == "solta"){
             funcao_solta_vol();
+            volume_solta = 0;
+            continuar = 1;
             status_tela="solta_vol";
+            lcd.locate(0,2);
+            while(continuar){
+                tecla = pega_tecla();
+                wait(1);
+                if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
+                    volume_solta = multiplicador*volume_solta + ((int)tecla - 48);
+                    lcd.printf("%c",tecla);
+                }
+                else if(tecla == 'A'){
+                    printf("Volume solta inputado!");
+                    printf("Volume: %d", volume_solta);
+                    continuar = 0;
+                }
+                else if(tecla=='B'){
+                    funcao_pega_forma();
+                    status_tela = "solta";
+                    continuar = 0;
+                    funcao_solta1();
+                    wait(3);
+                    funcao_solta2();
+                    }
+                }
             }
         else if(tecla == '3' && status_tela == "solta"){
             funcao_solta_pos_x();
             status_tela="solta_pos_x";
+            continuar = 1;
+            while(continuar){
+                 while(x_menos == 0){mov_x_menos();
+                    lcd.cls();      
+                    lcd.printf("X: %4.1f", coord_x);}
+                 while(x_mais == 0){mov_x_mais();
+                    lcd.cls();
+                    lcd.printf("X: %4.1f", coord_x);}
+                if(tecla=='A'){
+                    continuar = 0;
+                    printf("Posicao de x salva!");
+                    printf("Posicao X: %4.1f", coord_x);
+                }
             }
+        }   
         else if(tecla == 'B' && status_tela == "solta"){
             funcao_pega1();
             if(pos_y_pega !=0){