Projeto Mecatrônico
/
ProjetoMecatronico
testando
Diff: main_PM.cpp
- 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"; };