testando

Dependencies:   mbed TextLCD2

Revision:
67:ecd4feb40f94
Parent:
65:5a759e3014dd
Child:
68:b36bb895c8c1
--- a/main_PM.cpp	Tue Jun 02 12:50:43 2020 +0000
+++ b/main_PM.cpp	Tue Jun 02 14:51:06 2020 +0000
@@ -136,10 +136,15 @@
 float pos_x_solta[30];
 float pos_y_solta[30];
 
+
+
 //main
 
 int main() {
-        
+        pos_x_solta[1] = 5;
+        pos_y_solta[1] = 5;
+        pos_x_pega[1] = 5;
+        pos_y_pega[1] = 5;
         interrupcao.fall(&emergencia);    
         int volume;
         int volume_solta;
@@ -270,16 +275,16 @@
         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);
-            if(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
+            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();                
             }  
-            if (coord_x > pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
+            while(coord_x > pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
                 mov_x_menos();    
             }  
-            if(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
+            while(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
                 mov_y_mais();                
             }  
-            if (coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
+            while(coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
                 mov_y_menos();    
             }      
             funcao_salvo_agree_pos_certo(); //Tela para o usuário confirmar se é essa a posição de fato da pega 
@@ -287,16 +292,16 @@
         else if(tecla =='2' && status_tela =="salvo_confirmacao"){
              funcao_salvo_agree_solta_aviso();   //posicionar no local de solta para confirmação; (motor -> programa.pos_x_solta e motor -> programa.pos_y_solta)
              wait(3);
-             if(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
+             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();                
              }  
-             if (coord_x > pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
+             while(coord_x > pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
                 mov_x_menos();    
              }   
-             if(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
+             while(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
                 mov_y_mais();                
              }  
-             if (coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
+             while(coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
                 mov_y_menos();    
              }     
              funcao_salvo_agree_pos_certo();
@@ -304,18 +309,18 @@
         else if(tecla =='3' && status_tela =="salvo_confirmacao"){
              funcao_salvo_agree_pega_vol();   //Função que imprime na tela do usuário que ele deve dar entreda no volume
              continuar = 1;
-             multiplicador = 10; 
+             multiplicador = 10;
+             lcd.locate(6,1); 
             while(continuar){ // Pega o valor imputado pelo usuário
                 printf("\n%c",pega_tecla()); 
                 tecla = pega_tecla();
-                lcd.locate(6,1);
                 wait(1);
                 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
                     volume = multiplicador*volume + ((int)tecla-48);    
                     lcd.printf("%c", tecla);
                 }
                 else if(tecla == 'A'){
-                    volume_pega[programa]=volume  //recebe o valor que o usuário colocou no volume.
+                    volume_pega[programa]=volume;  //recebe o valor que o usuário colocou no volume.
                     lcd.locate(0,2);
                     printf("Volume inputado!");
                     continuar = 0;
@@ -343,6 +348,11 @@
             status_tela = "salvo_confirmacao";
             }//salva essa posição como correta
         else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){ //Caso o usuário queria ajustar o posicionamento
+            lcd.cls();
+            funcao_pega_pos_x();
+            lcd.printf("Ponha a pega em x/y");
+            lcd.locate(0,3);
+            lcd.printf("      B-Voltar      ");
             continuar = 1; //Inicia o loop de posicionamento
             while(continuar){
                  tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop
@@ -362,9 +372,14 @@
                     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);
+                    funcao_salvo_agree1();
+                    wait(1);
+                    funcao_salvo_agree2(); 
+                    status_tela = "salvo_confirmacao";
                 }
             }
         }
@@ -452,10 +467,10 @@
             status_tela = "volume";
             continuar = 1;
             multiplicador = 10;
+            lcd.locate(6,1);
             while(continuar){
                 printf("\n%c",pega_tecla()); 
                 tecla = pega_tecla();
-                lcd.locate(6,1);
                 wait(1);
                 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
                     volume = multiplicador*volume + ((int)tecla-48);    
@@ -513,7 +528,7 @@
         tecla = pega_tecla();    
         if(tecla == '1' && status_tela == "forma"){
             funcao_pega_forma_quad();
-            tipo_pega = 1;
+            tipo_pega[programa] =1;
             tecla = pega_tecla();
             wait(1);
             status_tela ="forma_quad";
@@ -541,7 +556,7 @@
             }
         else if(tecla == '2' && status_tela == "forma"){
             funcao_pega_forma_red();
-            tipo_pega = 2;
+            tipo_pega[programa] = 2;
             tecla = pega_tecla();
             wait(1);
             continuar = 1;
@@ -575,7 +590,7 @@
         tecla = pega_tecla();
         if(tecla == 'A' && status_tela == "forma_quad"){
             funcao_pega1();
-            medida_lado_pega = comprimento_quad;
+            medida_lado_pega[programa] = comprimento_quad;
             if(pos_y_pega !=0){
             lcd.locate(18,1);lcd.printf("OK");   
             }
@@ -592,7 +607,7 @@
             funcao_pega_forma();
             status_tela = "forma";}
         else if(tecla == 'A' && status_tela == "forma_red"){
-            medida_lado_pega = diametro;
+            medida_lado_pega[programa] = diametro;
             funcao_pega1();
             if(pos_y_pega !=0){
             lcd.locate(18,1);lcd.printf("OK");   
@@ -611,7 +626,7 @@
             status_tela = "forma";}
         else if(tecla == 'A' && status_tela == "volume"){
             funcao_pega1();
-            volume_pega = 12;
+            volume_pega[programa] = 12;
             if(pos_y_pega !=0){
             lcd.locate(18,1);lcd.printf("OK");   
             }
@@ -629,7 +644,7 @@
             status_tela = "forma";}
         else if(tecla == 'A' && status_tela == "pos_x"){
             funcao_pega_pos_y();  //colocar programacao que contem o posicionamento do eixo y
-            pos_y_pega = 12.5;
+            pos_y_pega[programa] = 12.5;
             status_tela = "pos_y";
             }
         else if(tecla == 'B' && status_tela == "pos_x"){
@@ -766,7 +781,7 @@
         
         tecla=pega_tecla();
         if(tecla=='A' && status_tela=="solta_dimensao"){
-            dimensao_solta = 10;
+            dimensao_solta[programa] = 10;
             funcao_solta1();
             if(pos_y_solta !=0){
             lcd.locate(18,1);lcd.printf("OK");   
@@ -824,7 +839,7 @@
             }
         if(tecla=='A' && status_tela=="solta_pos_x"){
             funcao_solta_pos_y();
-            pos_x_solta = 10;
+            pos_x_solta[programa] = 10;
             status_tela="solta_pos_y";
             }
         else if(tecla=='B' && status_tela=="solta_pos_x"){
@@ -846,15 +861,15 @@
             
         tecla=pega_tecla();
         if(tecla=='A' && status_tela=="solta_vol_igual"){
-            volume_solta_1=10;
-            volume_solta_2=10;
-            volume_solta_3=10;
-            volume_solta_4=10;
-            volume_solta_5=10;
-            volume_solta_6=10;
-            volume_solta_7=10;
-            volume_solta_8=10;
-            volume_solta_9=10;
+            volume_solta_1[programa]=10;
+            volume_solta_2[programa]=10;
+            volume_solta_3[programa]=10;
+            volume_solta_4[programa]=10;
+            volume_solta_5[programa]=10;
+            volume_solta_6[programa]=10;
+            volume_solta_7[programa]=10;
+            volume_solta_8[programa]=10;
+            volume_solta_9[programa]=10;
             
             funcao_solta1();
         if(pos_y_solta !=0){
@@ -875,39 +890,39 @@
             status_tela="solta_vol";
             }
         if(tecla=='1' && status_tela=="solta_vol_dif"){
-            volume_solta_1=10;
+            volume_solta_1[programa]=10;
             lcd.locate(12,0);lcd.printf("10");
             }
         if(tecla=='2' && status_tela=="solta_vol_dif"){
-            volume_solta_2=20;
+            volume_solta_2[programa]=20;
             lcd.locate(15,0);lcd.printf("20");
             }
         if(tecla=='3' && status_tela=="solta_vol_dif"){
-            volume_solta_3=30;
+            volume_solta_3[programa]=30;
             lcd.locate(18,0);lcd.printf("30");
             }
         if(tecla=='4' && status_tela=="solta_vol_dif"){
-            volume_solta_4=40;
+            volume_solta_4[programa]=40;
             lcd.locate(12,1);lcd.printf("40");
             }
         if(tecla=='5' && status_tela=="solta_vol_dif"){
-            volume_solta_5=50;
+            volume_solta_5[programa]=50;
             lcd.locate(15,1);lcd.printf("50");
             }
         if(tecla=='6' && status_tela=="solta_vol_dif"){
-            volume_solta_6=60;
+            volume_solta_6[programa]=60;
             lcd.locate(18,1);lcd.printf("60");
             }
         if(tecla=='7' && status_tela=="solta_vol_dif"){
-            volume_solta_7=70;
+            volume_solta_7[programa]=70;
             lcd.locate(12,2);lcd.printf("70");
             }
         if(tecla=='8' && status_tela=="solta_vol_dif"){
-            volume_solta_8=80;
+            volume_solta_8[programa]=80;
             lcd.locate(15,2);lcd.printf("80");
             }
         if(tecla=='9' && status_tela=="solta_vol_dif"){
-            volume_solta_9=90;
+            volume_solta_9[programa]=90;
             lcd.locate(18,2);lcd.printf("90");
             }
         if(tecla=='A' && status_tela=="solta_vol_dif"){
@@ -943,7 +958,7 @@
             if(volume_solta_9 !=0){
             lcd.locate(18,0);lcd.printf("OK");    
             }
-            pos_y_solta = 10;
+            pos_y_solta[programa] = 10;
             wait(3);
             status_tela="solta"; 
             }
@@ -960,12 +975,12 @@
             if(volume_solta_9 !=0){
             lcd.locate(18,0);lcd.printf("OK");    
             }
-            pos_y_solta = 10;
+            pos_y_solta[programa] = 10;
             wait(3);
             status_tela="solta"; 
             }
         
-        if(pos_x_solta!=0 && pos_y_solta!=0 && volume_solta_9!=0 && dimensao_solta!=0 && status_tela=="solta"){
+        if(pos_x_solta[programa]!=0 && pos_y_solta[programa]!=0 && volume_solta_9[programa]!=0 && dimensao_solta[programa]!=0 && status_tela[programa]=='solta'){
            funcao_acomp();
            status_tela="acompanhamento"; 
             };