testando

Dependencies:   mbed TextLCD2

Revision:
70:85daa4aee916
Parent:
69:8c7e1da9d315
Child:
71:c91c96bbed54
--- a/main_PM.cpp	Wed Jun 03 11:54:19 2020 +0000
+++ b/main_PM.cpp	Wed Jun 03 12:59:00 2020 +0000
@@ -104,7 +104,6 @@
         wait(5);}
 
 //Funcao de zeramento 
-
 void zeramento(){
     while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}}
     while (fdc_y != 0){for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);est_y = 1;}}
@@ -115,14 +114,15 @@
 string status_tela = "zeramento";
 int programa = 0;
 
+//Informações sobre o pega
 float pos_x_pega[30];
 float pos_y_pega [30];
 float medida_lado_pega[30];
 float volume_pega[30];
 int tipo_pega[30];
 
+//Informações sobre os solta's
 float dimensao_solta[30];
-
 float volume_solta_1[30];
 float volume_solta_2[30];
 float volume_solta_3[30];
@@ -132,14 +132,10 @@
 float volume_solta_7[30];
 float volume_solta_8[30];
 float volume_solta_9[30];
-
 float pos_x_solta[30];
 float pos_y_solta[30];
 
-
-
 //main
-
 int main() {
         pos_x_solta[1] = 5;
         pos_y_solta[1] = 5;
@@ -153,7 +149,11 @@
         int comprimento_quad;
         bool continuar;
         int multiplicador = 10;
+        
+        //Pinos para ligar o display à NUCLEO
         TextLCD lcd(D4, D5, D6, D7, D8, D9); 
+        
+        //Tela inicial 
         lcd.printf("Bem-vindo ao Pipemax");
         lcd.locate(0,1);
         lcd.printf("o seu sistema");
@@ -169,15 +169,22 @@
         lcd.locate(0,2);
         lcd.printf("sistema");
         lcd.locate(0,3);
-        lcd.printf("A - proximo");         
+        lcd.printf("A - proximo");    
+             
+    //Loop principal
     while(1) {
-        tecla = pega_tecla();         
+        tecla = pega_tecla();//Variável que guarda o valor da tecla apertada       
+        
+        //Teste para analisar se os valores estão corretos através do monitor serial
         printf("\n%s",status_tela);
         printf("\n%c",tecla);
+        
+        //O zeramento só é feito se confirmado apertando a tecla 'A'
         if(tecla == 'A' && status_tela == "zeramento"){
             zeramento();
             status_tela = "inicio";
-            funcao_inicio();}
+            funcao_inicio();
+        }
 
 //      if (x_mais == 0 && est_x == 1){for(int i = 0; i < 4; i++){eixox = parado[i];wait(t_motor);coord_x += 0;lcd.cls();lcd.printf("Limite de x atingido");}}
 //      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");}}
@@ -191,7 +198,7 @@
         while(y_menos == 0){mov_y_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);}
+             lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
             
         while(z_menos == 0){mov_z_menos();
             lcd.cls();      lcd.printf("X: %4.1f", coord_x);
@@ -213,29 +220,48 @@
             lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
             lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
 
+        //Caso nenhum botão esteja apertado, os motores devem permanecer parados
         if(x_mais && x_menos && y_mais && y_menos && z_mais && z_menos != 0){
             for(int i = 0; i < 4; i++){eixox = parado[i];}
             for(int i = 0; i < 4; i++){eixoy = parado[i];}
             for(int i = 0; i < 4; i++){eixoz = parado[i];}}
     
-        tecla = pega_tecla();
+        tecla = pega_tecla();//Atualiza a variável tecla
+        
+        //Ações para a tela inicial
         if(tecla =='1' && status_tela == "inicio"){
-            funcao_pega1();
-            wait(1);
-            funcao_pega2();
-            status_tela = "novo";}
+            
+            continuar = 1; //Condição de funcionamento do loop abaixo
+            while(continuar){ //Esse loop indica que há a alternação de duas telas 
+                funcao_pega1();
+                wait(2);
+                funcao_pega2();
+                if(tecla!='k'){
+                    continuar = 0;
+                }
+            }
+             status_tela = "novo";
+        }
         else if(tecla == '2' && status_tela == "inicio"){
-            funcao_salvo1();
-            wait(1);
-            funcao_salvo2();
+            continuar = 1;
+            while(continuar){
+                funcao_salvo1();
+                wait(2);
+                funcao_salvo2();
+                if(tecla!='k'){
+                    continuar = 0;
+                }
+            }
             status_tela = "salvo";}
-        
+    
+    //Ações para a tela de salvamento
+    //A variável programa remete a que programa salvo o usuário deseja acessar 
         tecla = pega_tecla();    
         if(tecla =='1' && status_tela =="salvo"){
             funcao_salvo_agree1();
             wait(1);
             funcao_salvo_agree2();
-            programa = 1;
+            programa = 1; 
             status_tela = "salvo_confirmacao";}
         else if(tecla =='2' && status_tela =="salvo"){
             funcao_salvo_agree1();
@@ -271,12 +297,16 @@
             funcao_inicio();
             status_tela = "inicio";}      
         
-        tecla = pega_tecla();    
+        tecla = pega_tecla();//Atualiza a variável tecla
+        
+        //Ações para a tela de salvo_confirmação
         if(tecla =='1' && status_tela =="salvo_confirmacao"){  
             funcao_salvo_agree_pos_aviso(); //Tela de aviso ao usuário que a pega se deslocará na posição aduequada
             wait(3);
             status_tela = "salvo_confirmacao_pega_agree";
             }
+        
+        //Ações para a tela salvo_confirmação_pega_agree
         if(tecla == 'A' && status_tela =="salvo_confirmacao_pega_agree"){
             while(coord_x < pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
                 mov_x_mais();                
@@ -303,6 +333,8 @@
              wait(3);
              status_tela = "salvo_confirmacao_solta_agree";
             }
+        
+        //Ações para a tela confirmação_solta_agree
         if(tecla == 'A' && status_tela =="salvo_confirmacao_solta_agree"){  
              while(coord_x < pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
                 mov_x_mais();                
@@ -334,7 +366,7 @@
                 tecla = pega_tecla();
                 wait(1);
                 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
-                    volume = multiplicador*volume + ((int)tecla-48);    
+                    volume = multiplicador*volume + ((int)tecla-48); //  
                     lcd.printf("%c", tecla);
                 }
                 else if(tecla == 'A'){
@@ -344,7 +376,7 @@
                     continuar = 0;
                     wait(1);
                 }
-            }                                  
+            }                                 
             status_tela="salvo_conf_vol_pega";}     
         else if(tecla =='4' && status_tela =="salvo_confirmacao"){
              funcao_salvo_agree_solta_vol();  //volumes configurados por cada pipeta. (programa.vol_solta_pipeta)
@@ -364,8 +396,10 @@
             funcao_salvo2();
             programa = 1;
             status_tela = "salvo";}   
-            
-        tecla = pega_tecla(); 
+        
+        tecla = pega_tecla(); //Atualiza a variável tecla
+        
+        //Ações para a tela de salvo_pos_certo_pega
         if(tecla =='1' && status_tela =="salvo_pos_certo_pega"){
             funcao_salvo_agree1();
             lcd.locate(18,1);lcd.printf("OK");
@@ -395,17 +429,19 @@
                     lcd.cls();      
                     lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
                 if(tecla=='A'){
-                    continuar = 0;
                     pos_x_pega[programa] = coord_x;
                     pos_y_pega[programa] = coord_y;
                     lcd.cls();
                     lcd.printf("Posicao de x e y salva!");
-                    printf("Posicao X: %4.1f", coord_x);
-                    printf("Posicao Y: %4.1f", coord_y);
+                    lcd.locate(0,1);
+                    lcd.printf("Posicao X: %4.1f", coord_x);
+                    lcd.locate(0,2);
+                    lcd.printf("Posicao Y: %4.1f", coord_y);
                     funcao_salvo_agree1();
                     wait(1);
                     funcao_salvo_agree2(); 
                     status_tela = "salvo_confirmacao";
+                    continuar = 0;
                 }
             }
         }
@@ -414,7 +450,9 @@
             wait(1);
             funcao_salvo_agree2(); 
             status_tela = "salvo_confirmacao";}  
-            
+        
+        
+        //Ações para a tela salvo_conf_vol_pega
         if(tecla =='A' && status_tela =="salvo_conf_vol_pega"){
             funcao_salvo_agree1();
             wait(1);
@@ -427,7 +465,8 @@
             wait(1);
             funcao_salvo_agree2(); 
             status_tela = "salvo_confirmacao";}  
-            
+        
+        //Ações para a tela de salvo_pos_certo_solta
         if(tecla =='1' && status_tela =="salvo_pos_certo_solta"){
             funcao_salvo_agree1();
             lcd.locate(18,2);lcd.printf("OK");
@@ -457,17 +496,19 @@
                     lcd.cls();      
                     lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
                 if(tecla=='A'){
-                    continuar = 0;
                     pos_x_solta[programa] = coord_x;
                     pos_y_solta[programa] = coord_y;
                     lcd.cls();
                     lcd.printf("Posicao de x e y salva!");
-                    printf("Posicao X: %4.1f", coord_x);
-                    printf("Posicao Y: %4.1f", coord_y);
+                    lcd.locate(0,1);
+                    lcd.printf("Posicao X: %4.1f", coord_x);
+                    lcd.locate(0,2);
+                    lcd.printf("Posicao Y: %4.1f", coord_y);
                     funcao_salvo_agree1();
                     wait(1);
                     funcao_salvo_agree2(); 
                     status_tela = "salvo_confirmacao";
+                    continuar = 0;
                 }
             }
         }
@@ -476,7 +517,8 @@
             wait(1);
             funcao_salvo_agree2(); 
             status_tela = "salvo_confirmacao";}      
-            
+        
+        //Ações para a tela salvo_conf_vol_solta
         if(tecla =='A' && status_tela =="salvo_conf_vol_solta"){
             funcao_salvo_agree1();
             wait(1);
@@ -499,14 +541,13 @@
              lcd.locate(13,3);lcd.printf("%f",volume_solta_9[programa]); 
             if(tecla=='1' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
-                 multiplicador = 10;
                  lcd.locate(3,0); 
                 while(continuar){ // Pega o valor imputado pelo usuário
                     printf("\n%c",pega_tecla()); 
                     tecla = pega_tecla();
                     wait(1);
                     if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
-                        volume = multiplicador*volume + ((int)tecla-48);    
+                        volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro    
                         lcd.printf("%c", tecla);
                     }
                     else if(tecla == 'A'){
@@ -514,7 +555,7 @@
                     }
                 }
             }
-            if(tecla=='2' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='2' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(8,0); 
@@ -531,7 +572,7 @@
                     }
                 }
             }
-            if(tecla=='3' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='3' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(13,0); 
@@ -548,7 +589,7 @@
                     }
                 }
             }
-            if(tecla=='4' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='4' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(3,1); 
@@ -565,7 +606,7 @@
                     }
                 }
             }
-            if(tecla=='5' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='5' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(8,1); 
@@ -582,7 +623,7 @@
                     }
                 }
             }
-            if(tecla=='6' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='6' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(13,1); 
@@ -598,7 +639,7 @@
                         }
                     }
                 }
-            if(tecla=='7' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='7' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(3,2); 
@@ -615,7 +656,7 @@
                     }
                 }
             }
-            if(tecla=='8' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='8' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(8,2); 
@@ -632,7 +673,7 @@
                     }
                 }
             }
-            if(tecla=='9' && status_tela=="salvo_conf_vol_solta"){
+            else if(tecla=='9' && status_tela=="salvo_conf_vol_solta"){
                  continuar = 1;
                  multiplicador = 10;
                  lcd.locate(13,2); 
@@ -656,17 +697,18 @@
             status_tela = "salvo_confirmacao";}          
                       
         tecla = pega_tecla();    
+        
+        //Ações para a tela novo
         if(tecla =='1' && status_tela =="novo"){
             funcao_pega_forma();
             status_tela ="forma";}
-            
+        
         else if(tecla =='2' && status_tela == "novo"){
             volume = 0;
             printf("\n%c",pega_tecla());
             funcao_pega_volume(); // Função que permite a entreda do valor de volume pelo usuário
             status_tela = "volume";
             continuar = 1;
-            multiplicador = 10;
             lcd.locate(6,1);
             while(continuar){
                 printf("\n%c",pega_tecla()); 
@@ -677,7 +719,7 @@
                     lcd.printf("%c", tecla);
                 }
                 else if(tecla == 'A'){
-                    volume_pega[programa]=volume;
+                    volume_pega[programa] = volume;
                     lcd.locate(0,2);
                     printf("Volume inputado!");
                     continuar = 0;
@@ -706,8 +748,10 @@
                 if(tecla=='A'){
                     continuar = 0;
                     pos_x_pega[programa] = coord_x;
+                    lcd.locate(0,1);
                     lcd.printf("Posicao de x salva!");
                     printf("Posicao X: %4.1f", coord_x);
+                    continuar = 0;
                 }
             }
             status_tela = "pos_x";}
@@ -726,6 +770,8 @@
             
         wait(0.5);
         tecla = pega_tecla();    
+        
+        //Ações para a tela forma (para definir o formato do recipiente de pega)
         if(tecla == '1' && status_tela == "forma"){
             funcao_pega_forma_quad();
             tipo_pega[programa] =1;
@@ -788,6 +834,8 @@
             status_tela = "novo";}
         
         tecla = pega_tecla();
+        
+        //Ações para a tela forma_quad, para detalhes sobre o formato quadrado
         if(tecla == 'A' && status_tela == "forma_quad"){
             funcao_pega1();
             medida_lado_pega[programa] = comprimento_quad;
@@ -856,6 +904,8 @@
         tecla = pega_tecla();
         wait(0.5);
         //passando direto
+        
+        //Ações para a tela pos_y
         if(tecla == 'A' && status_tela == "pos_y"){
             funcao_pega1();
             if(pos_y_pega !=0){
@@ -885,6 +935,8 @@
             status_tela="solta";}
         
         tecla=pega_tecla(); 
+        
+        //Ações para a tela "solta", para definir informações sobre os solta's
         if(tecla == '1' && status_tela == "solta"){
             funcao_solta_dimensao();
             continuar = 1;
@@ -995,6 +1047,7 @@
             }
         
         tecla=pega_tecla();
+        //Ações para a tela solta_dimensao, para definir informações sobre a dimensão do solta
         if(tecla=='A' && status_tela=="solta_dimensao"){
             dimensao_solta[programa] = 10;
             funcao_solta1();