Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main_PM.cpp
- Revision:
- 79:b9e2d020240c
- Parent:
- 78:e1dfd20407fc
- Child:
- 80:3a69b08e062f
diff -r e1dfd20407fc -r b9e2d020240c main_PM.cpp
--- a/main_PM.cpp Fri Jun 05 13:36:38 2020 +0000
+++ b/main_PM.cpp Sat Jun 06 21:34:03 2020 +0000
@@ -125,7 +125,7 @@
//Funcao que será chamada na interrupcao da queda do botao de emergencia
void emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9);
- rele2 = 0; //desligamento eletrico dos motores
+ rele2 = 0; //desligamento eletrico dos motores
eixox = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas
eixoy = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas
eixoz = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas
@@ -155,6 +155,12 @@
float medida_lado_pega[30];
float volume_pega[30];
int tipo_pega[30];
+int nome_programa[30];
+//parametros que são de confirmação
+int confirmacao_vol_solta[30];
+int confirmacao_vol_pega[30];
+int confirmacao_pos_solta[30];
+int confirmacao_pos_pega[30];
//Informações sobre os solta's a serem armazenadas no array do programa que está sendo construido pelo usuário
float dimensao_solta[30];
@@ -238,6 +244,9 @@
funcao_pega1();
wait(2);
funcao_pega2();
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
wait(2);
tecla = pega_tecla();
if(tecla!='k'){
@@ -251,8 +260,20 @@
continuar = 1;
while(continuar){
funcao_salvo1();
+ if(confirma_pos_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(confirma_pos_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(2);
funcao_salvo2();
+ if(confirma_vol_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(confirma_vol_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(2);
tecla = pega_tecla();
if(tecla!='k'){
@@ -359,8 +380,20 @@
status_tela = "salvo_pos_certo_solta";}
else if(tecla == 'B' && status_tela=="salvo_confirmacao_solta_agree"){
funcao_salvo1();
+ if(confirma_pos_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(confirma_pos_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(1);
funcao_salvo2();
+ if(confirma_vol_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(confirma_vol_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
programa = 1;
status_tela = "salvo";}
else if(tecla =='3' && status_tela =="salvo_confirmacao"){
@@ -381,6 +414,7 @@
lcd.locate(0,2);
printf("Volume inputado!");
continuar = 0;
+ confirmacao_vol_pega[programa]=1;
wait(1);
}
}
@@ -399,8 +433,20 @@
status_tela="salvo_conf_vol_solta";}
else if(tecla =='B' && status_tela =="salvo_confirmacao"){
funcao_salvo1();
+ if(confirma_pos_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(confirma_pos_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(1);
funcao_salvo2();
+ if(confirma_vol_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(confirma_vol_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
programa = 1;
status_tela = "salvo";}
@@ -408,6 +454,7 @@
//Ações para a tela de salvo_pos_certo_pega
if(tecla =='1' && status_tela =="salvo_pos_certo_pega"){
+ confirmacao_pos_pega[programa]=1;
funcao_salvo_agree1();
lcd.locate(18,1);lcd.printf("OK");
wait(1);
@@ -449,6 +496,7 @@
funcao_salvo_agree2();
status_tela = "salvo_confirmacao";
continuar = 0;
+ confirmacao_pos_pega[programa]=1;
}
}
}
@@ -461,6 +509,7 @@
//Ações para a tela salvo_conf_vol_pega
if(tecla =='A' && status_tela =="salvo_conf_vol_pega"){
+ confirmacao_vol_pega[programa]=1;
funcao_salvo_agree1();
wait(1);
funcao_salvo_agree2();
@@ -475,6 +524,7 @@
//Ações para a tela de salvo_pos_certo_solta
if(tecla =='1' && status_tela =="salvo_pos_certo_"){
+ confirmacao_vol_solta[programa]=1; //Tag que indica que o usuário confirmou a posição salva
funcao_salvo_agree1();
lcd.locate(18,2);lcd.printf("OK");
wait(1);
@@ -515,6 +565,7 @@
wait(1);
funcao_salvo_agree2();
status_tela = "salvo_confirmacao";
+ confirmacao_pos_solta[programa]=1; //Flag que mostra que o usuário setou a posição conforme ele queria e está confirmado.
continuar = 0;
}
}
@@ -527,6 +578,7 @@
//Ações para a tela salvo_conf_vol_solta
if(tecla =='A' && status_tela =="salvo_conf_vol_solta"){
+ confirmacao_vol_solta[programa]=1;
funcao_salvo_agree1();
wait(1);
funcao_salvo_agree2();
@@ -537,15 +589,15 @@
funcao_salvo_vol_solta_modifica();
wait(3);
funcao_salvo_agree_solta_vol();
- lcd.locate(3,0);lcd.printf("%f",volume_solta_1[programa]);
- lcd.locate(8,0);lcd.printf("%f",volume_solta_2[programa]);
- lcd.locate(13,0);lcd.printf("%f",volume_solta_3[programa]);
- lcd.locate(3,1);lcd.printf("%f",volume_solta_4[programa]);
- lcd.locate(8,2);lcd.printf("%f",volume_solta_5[programa]);
- lcd.locate(13,3);lcd.printf("%f",volume_solta_6[programa]);
- lcd.locate(3,1);lcd.printf("%f",volume_solta_7[programa]);
- lcd.locate(8,2);lcd.printf("%f",volume_solta_8[programa]);
- lcd.locate(13,3);lcd.printf("%f",volume_solta_9[programa]);
+ lcd.locate(3,0);lcd.printf("%4.1f",volume_solta_1[programa]);
+ lcd.locate(8,0);lcd.printf("%4.1f",volume_solta_2[programa]);
+ lcd.locate(13,0);lcd.printf("%4.1f",volume_solta_3[programa]);
+ lcd.locate(3,1);lcd.printf("%4.1f",volume_solta_4[programa]);
+ lcd.locate(8,2);lcd.printf("%4.1f",volume_solta_5[programa]);
+ lcd.locate(13,3);lcd.printf("%4.1f",volume_solta_6[programa]);
+ lcd.locate(3,1);lcd.printf("%4.1f",volume_solta_7[programa]);
+ lcd.locate(8,2);lcd.printf("%4.1f",volume_solta_8[programa]);
+ lcd.locate(13,3);lcd.printf("%4.1f",volume_solta_9[programa]);
if(tecla=='1' && status_tela=="salvo_conf_vol_solta"){
continuar = 1;
lcd.locate(3,0);
@@ -697,20 +749,24 @@
}
}
}
- }
+ confirmacao_vol_solta[programa]=1;}
else if(tecla =='B' && status_tela =="salvo_conf_vol_solta"){
funcao_salvo_agree1();
wait(1);
funcao_salvo_agree2();
status_tela = "salvo_confirmacao";}
- tecla = pega_tecla();
+ tecla = pega_tecla();
+ if(confirmacao_vol_solta[programa]==1 && confirmacao_vol_pega[programa]==1 && confirmacao_pos_pega[programa]==1 && confirmacao_pos_solta[programa]==1;){
+ funcao_acomp();
+ status_tela="acompanhamento";
+ }
//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());
@@ -735,8 +791,17 @@
}
else if(tecla=='B'){
funcao_pega1();
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(1);
funcao_pega2();
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
status_tela = "novo";
continuar = 0;
}
@@ -837,8 +902,17 @@
}
else if(tecla == 'B' && status_tela == "forma"){
funcao_pega1();
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(1);
funcao_pega2();
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
status_tela = "novo";}
tecla = pega_tecla();
@@ -847,16 +921,16 @@
if(tecla == 'A' && status_tela == "forma_quad"){
funcao_pega1();
medida_lado_pega[programa] = comprimento_quad;
- if(pos_y_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
- if(medida_lado_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
}
wait(1);
funcao_pega2();
- if(volume_pega !=0){
- lcd.locate(18,0);lcd.printf("OK");
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
status_tela ="novo";}
else if(tecla == 'B' && status_tela == "forma_quad"){
@@ -865,11 +939,11 @@
else if(tecla == 'A' && status_tela == "forma_red"){
medida_lado_pega[programa] = diametro;
funcao_pega1();
- if(pos_y_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
- if(medida_lado_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
}
wait(1);
funcao_pega2();
@@ -883,30 +957,56 @@
else if(tecla == 'A' && status_tela == "volume"){
funcao_pega1();
volume_pega[programa] = 12;
- if(pos_y_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
- if(medida_lado_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
}
wait(1);
funcao_pega2();
- if(volume_pega !=0){
- lcd.locate(18,0);lcd.printf("OK");
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
status_tela ="novo";}
else if( tecla == 'B' && status_tela == "volume"){
funcao_pega_forma();
status_tela = "forma";}
- else if(tecla == 'A' && status_tela == "pos_x"){
+ else if(tecla == 'A' && status_tela == "pos_x"){ //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
funcao_pega_pos_y(); //colocar programacao que contem o posicionamento do eixo y
- pos_y_pega[programa] = 12.5;
+ continuar = 1;
+ while(continuar){
+ tecla = pega_tecla();
+ if(y_menos == 0){mov_y_menos();
+ lcd.cls();
+ lcd.printf("Y: %4.1f", coord_y);}
+ else if(y_mais == 0){mov_y_mais();
+ lcd.cls();
+ lcd.printf("Y: %4.1f", coord_y);}
+ if(tecla=='A'){
+ continuar = 0;
+ pos_y_pega[programa] = coord_x;
+ lcd.locate(0,1);
+ lcd.printf("Posicao de Y salva!");
+ printf("Posicao Y: %4.1f", coord_x);
+ continuar = 0;
+ }
+ }
status_tela = "pos_y";
}
- else if(tecla == 'B' && status_tela == "pos_x"){
+ else if(tecla == 'B' && status_tela == "pos_x"){ ///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
funcao_pega1();
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
+ }
wait(1);
funcao_pega2();
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
+ }
status_tela = "novo";}
tecla = pega_tecla();
@@ -916,23 +1016,40 @@
//Ações para a tela pos_y
if(tecla == 'A' && status_tela == "pos_y"){
funcao_pega1();
- if(pos_y_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
- if(medida_lado_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
}
wait(1);
funcao_pega2();
- if(volume_pega !=0){
- lcd.locate(18,0);lcd.printf("OK");
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
wait(1);
status_tela ="novo";}
else if(tecla == 'B' && status_tela == "pos_y"){
- funcao_pega_forma();
- status_tela = "forma";}
-
+ funcao_pega_pos_x();
+ continuar = 1;
+ while(continuar){
+ tecla = pega_tecla();
+ if(x_menos == 0){mov_x_menos();
+ lcd.cls();
+ lcd.printf("X: %4.1f", coord_x);}
+ else if(x_mais == 0){mov_x_mais();
+ lcd.cls();
+ lcd.printf("X: %4.1f", coord_x);}
+ 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";}
tecla=pega_tecla();
if(pos_x_pega[programa]!=0 && pos_y_pega[programa]!=0 && medida_lado_pega[programa]!=0 && volume_pega[programa] !=0 && tipo_pega[programa]!=0 && status_tela == "novo"){
@@ -1040,16 +1157,16 @@
}
else if(tecla == 'B' && status_tela == "solta"){
funcao_pega1();
- if(pos_y_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(medida_lado_pega !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
- if(medida_lado_pega !=0){
- lcd.locate(18,1);lcd.printf("OK");
+ if(volume_pega !=0){
+ lcd.locate(18,2);lcd.printf("OK");
}
wait(1);
funcao_pega2();
- if(volume_pega !=0){
- lcd.locate(18,0);lcd.printf("OK");
+ if(pos_y_pega[programa] !=0){
+ lcd.locate(18,1);lcd.printf("OK");
}
status_tela="novo";
}
@@ -1250,8 +1367,43 @@
//Ações para a tela acompanhamento (execução do programa)
//MAtriz 3x3 (6x6cm)
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";
+ funcao_nome_prog()
+ status_tela="nome_programa";}
+ else if(tecla=='B' && status_tela=="nome_programa"){
+ funcao_solta1();
+ if(volume_solta_9[programa] !=0){lcd.locate(18,2);lcd.printf("OK");}
+ if(dimensao_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
+ funcao_solta2();
+ if(pos_y_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
+ pos_y_solta[programa] = 10;
+ wait(3);
+ status_tela="solta";
+ }
+ if(tecla=='A' && status_tela=="nome_programa"){
+ //!!!!!!!!!!!!!! colocar o códgio de pegar o valor do usuário
+ nome=1;
+ continuar=1;
+ while(continuar){
+ tecla = pega_tecla();
+ wait(1);
+ if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
+ nome = multiplicador*nome + ((int)tecla - 48);
+ lcd.printf("%c",tecla);
+ }
+ else if(tecla == 'A'){
+ printf("nome inserido");
+ printf("nome: %d", nome);
+ funcao_acomp();
+ status_tela="acompanhamento";
+ continuar = 0;
+ nome_programa[programa]=nome;
+ confirmacao_pos_pega[programa]=0;
+ confirmacao_pos_solta[programa]=0;
+ confirmacao_vol_pega[programa]=0;
+ confirmacao_pos_solta[programa]=0;
+ }
+ }
+
int cont_pipeta = 0;
float altura;