testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Mon Jun 01 20:03:17 2020 +0000
Revision:
63:32ba7c4becfc
Parent:
61:be02d7d4e208
Child:
65:5a759e3014dd
Child:
66:ebc2a21cd514
mais manutencao

Who changed what in which revision?

UserRevisionLine numberNew contents of line
enricoan 29:76d952358896 1 //local para inclusao de bibliotecas
enricoan 10:4f49e9859535 2 #include "mbed.h"
enricoan 10:4f49e9859535 3 #include "TextLCD.h"
amandarm 31:acb062a05984 4 #include "funcoes_ihm.h"
amandarm 38:2a0e12322e72 5 #include "classe.h"
enricoan 33:a513498222c7 6 #include <stdio.h>
enricoan 33:a513498222c7 7 #include <string>
amandarm 35:a8256801e9ab 8
enricoan 29:76d952358896 9 //local para a declaracao de varioveis
enricoan 30:179ceb3e5791 10 float t_motor = 0.002; //delay entre o acionamento de uma bobina do motor e a outra
enricoan 30:179ceb3e5791 11 float t_teclado = 0.01; //delay entre a leitura de um botão do teclado, necessário para que um click nao gere mais de uma saída
enricoan 24:38820e43b9fe 12 int hor[] = {12,6,3,9}; //valores que, ao serem convertidos em binário, geram a sequência de acionamento do motor no sentido horário enviando a sequência de 0's e 1's às bobinas
enricoan 24:38820e43b9fe 13 int antihor[] = {3,6,12,9}; //valores que, ao serem convertidos em binário, geram a sequência de acionamento do motor no sentido anti-horário enviando a sequência de 0's e 1's às bobinas
enricoan 24:38820e43b9fe 14 int parado[] = {0,0,0,0}; //valores enviados às bobinas do motor para deixá-lo parado
enricoan 30:179ceb3e5791 15 char tecla; //variável que guarda a tecla apertada no teclado
enricoan 30:179ceb3e5791 16 float coord_x = 0; //variável que guardará a posição linear do eixo x, ela é incrementada com a conta do deslocamento linear dado um deslocamento angular sempre que o eixo é movimentado depois do referencimaneto
enricoan 30:179ceb3e5791 17 float coord_y = 0; //variável que guardará a posição linear do eixo y, ela é incrementada com a conta do deslocamento linear dado um deslocamento angular sempre que o eixo é movimentado depois do referencimaneto
enricoan 30:179ceb3e5791 18 float coord_z = 0; //variável que guardará a posição linear do eixo z, ela é incrementada com a conta do deslocamento linear dado um deslocamento angular sempre que o eixo é movimentado depois do referencimaneto
enricoan 30:179ceb3e5791 19 int est_x = 0; //variável que indicará o estado do eixo x, pemitindo ou não que ele possa ser avançado depois de atingir o fim de curso
enricoan 30:179ceb3e5791 20 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
enricoan 30:179ceb3e5791 21 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
enricoan 17:4d0b8ed791e0 22
enricoan 29:76d952358896 23 //pinos usados pelos botoes de fim de curso
enricoan 17:4d0b8ed791e0 24 DigitalIn fdc_x(PC_10);
enricoan 17:4d0b8ed791e0 25 DigitalIn fdc_y(PC_11);
enricoan 17:4d0b8ed791e0 26 DigitalIn fdc_z(PC_12);
enricoan 20:81a44a25b21d 27
enricoan 29:76d952358896 28 //Iterrupcao botao de emergência
enricoan 63:32ba7c4becfc 29 InterruptIn interrupcao(PB_11);
amandarm 25:b0db528c1985 30
enricoan 42:a6fbbe536814 31 //pinos do rele, saida digital para acionar o rele se necessario, dada uma entrada no pino da emergencia
enricoan 30:179ceb3e5791 32 DigitalOut rele1(PC_5);
enricoan 30:179ceb3e5791 33 DigitalOut rele2(PB_9);
amandarm 25:b0db528c1985 34
enricoan 29:76d952358896 35 //botoes para movimentacao eixo a eixo
enricoan 10:4f49e9859535 36 DigitalIn x_mais(PA_0);
enricoan 10:4f49e9859535 37 DigitalIn x_menos(PA_1);
enricoan 10:4f49e9859535 38 DigitalIn y_mais(PC_0);
enricoan 10:4f49e9859535 39 DigitalIn y_menos(PC_1);
enricoan 10:4f49e9859535 40 DigitalIn z_mais(PC_2);
enricoan 10:4f49e9859535 41 DigitalIn z_menos(PC_3);
enricoan 10:4f49e9859535 42
enricoan 10:4f49e9859535 43 //pinos da placa usados na biblioteca do LCD
enricoan 42:a6fbbe536814 44 //TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 10:4f49e9859535 45
enricoan 16:70baa0057a76 46 //pinos do teclado
enricoan 40:39263f4cf8b7 47 DigitalIn b(PC_4);
enricoan 40:39263f4cf8b7 48 DigitalIn a(PB_0);
enricoan 40:39263f4cf8b7 49 DigitalIn t_0(PC_13);
enricoan 40:39263f4cf8b7 50 DigitalIn t_1(PB_7);
enricoan 40:39263f4cf8b7 51 DigitalIn t_2(PD_2);
enricoan 41:9709891f77c5 52 DigitalIn t_3(PA_4);
enricoan 40:39263f4cf8b7 53 DigitalIn t_4(PB_12);
enricoan 40:39263f4cf8b7 54 DigitalIn t_5(PB_15);
enricoan 41:9709891f77c5 55 DigitalIn t_6(PA_7);
enricoan 40:39263f4cf8b7 56 DigitalIn t_7(PB_14);
enricoan 40:39263f4cf8b7 57 DigitalIn t_8(PA_6);
enricoan 40:39263f4cf8b7 58 DigitalIn t_9(PB_13);
enricoan 16:70baa0057a76 59
enricoan 10:4f49e9859535 60 //pinos de saída para os motores
enricoan 10:4f49e9859535 61 //eixo x
Hiroball 11:dc557e461dfd 62 BusOut eixox(PA_15,PA_14,PA_13,PA_12);
enricoan 10:4f49e9859535 63 //eixo y
Hiroball 11:dc557e461dfd 64 BusOut eixoy(PA_11,PA_10,PB_2,PB_1);
enricoan 10:4f49e9859535 65 //eixo z
Hiroball 11:dc557e461dfd 66 BusOut eixoz(PC_9,PC_8,PB_8,PC_6);
enricoan 10:4f49e9859535 67
enricoan 42:a6fbbe536814 68 //funcao para receber inputs do teclado
enricoan 43:cfc3da0299ff 69 char pega_tecla(){
enricoan 43:cfc3da0299ff 70 if (b == 0)return ('A');
enricoan 43:cfc3da0299ff 71 if (a == 0)return('B');
enricoan 43:cfc3da0299ff 72 if (t_0 == 0)return('0');
enricoan 43:cfc3da0299ff 73 if (t_1 == 0)return('1');
enricoan 43:cfc3da0299ff 74 if (t_2 == 0)return('2');
enricoan 43:cfc3da0299ff 75 if (t_3 == 0)return('3');
enricoan 43:cfc3da0299ff 76 if (t_4 == 0)return('4');
enricoan 43:cfc3da0299ff 77 if (t_5 == 0)return('5');
enricoan 43:cfc3da0299ff 78 if (t_6 == 0)return('6');
enricoan 43:cfc3da0299ff 79 if (t_7 == 0)return('7');
enricoan 43:cfc3da0299ff 80 if (t_8 == 0)return('8');
enricoan 54:74a215a1f76b 81 if (t_9 == 0)return('9');
enricoan 54:74a215a1f76b 82 return('k');}
enricoan 42:a6fbbe536814 83
enricoan 32:2a9b30e1e7ab 84 //funcao de movimentacao dos motores
enricoan 63:32ba7c4becfc 85 void mov_x_menos(){for(int i = 0; i < 4; i++){eixox = antihor[i];wait(t_motor);coord_x -= (5.625*5/32)/360;}}
enricoan 32:2a9b30e1e7ab 86 void mov_y_menos(){for(int i = 0; i < 4; i++){eixoy = antihor[i];wait(t_motor);coord_y -= (5.625*5/32)/360;est_y = 0;}}
enricoan 32:2a9b30e1e7ab 87 void mov_z_menos(){for(int i = 0; i < 4; i++){eixoz = antihor[i];wait(t_motor);coord_z -= (5.625*5/32)/360;est_z = 0;}}
enricoan 63:32ba7c4becfc 88 void mov_x_mais() {for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);coord_x += (5.625*5/32)/360;}}
enricoan 32:2a9b30e1e7ab 89 void mov_y_mais() {for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);coord_y += (5.625*5/32)/360;est_y = 0;}}
enricoan 32:2a9b30e1e7ab 90 void mov_z_mais() {for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);coord_z += (5.625*5/32)/360;est_z = 0;}}
enricoan 32:2a9b30e1e7ab 91
enricoan 32:2a9b30e1e7ab 92 //Funcao de interrupcao
enricoan 32:2a9b30e1e7ab 93 void emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 32:2a9b30e1e7ab 94 rele1 = 0;
amandarm 25:b0db528c1985 95 eixox = 0b0000;
amandarm 25:b0db528c1985 96 eixoy = 0b0000;
amandarm 25:b0db528c1985 97 eixoz = 0b0000;
amandarm 25:b0db528c1985 98 lcd.cls();
enricoan 29:76d952358896 99 lcd.printf("Botao Emergencia");
amandarm 25:b0db528c1985 100 lcd.locate(0,1);
amandarm 25:b0db528c1985 101 lcd.printf(" acionado ");
amandarm 25:b0db528c1985 102 lcd.locate(0,2);
amandarm 46:e73e36a20134 103 lcd.printf("Operacao pausada");
amandarm 46:e73e36a20134 104 wait(5);}
enricoan 56:e748b9bd5e3c 105
enricoan 29:76d952358896 106 //Funcao de zeramento
amandarm 57:e26deee15b8f 107
amandarm 27:45f8125a0c0b 108 void zeramento(){
amandarm 27:45f8125a0c0b 109 while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}}
amandarm 27:45f8125a0c0b 110 while (fdc_y != 0){for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);est_y = 1;}}
enricoan 54:74a215a1f76b 111 while (fdc_z != 0){for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);est_z = 1;}}}
enricoan 29:76d952358896 112
enricoan 54:74a215a1f76b 113 //Variaveis para operacao IHM
enricoan 29:76d952358896 114 using std::string;
enricoan 32:2a9b30e1e7ab 115 string status_tela = "zeramento";
amandarm 35:a8256801e9ab 116 int programa = 0;
enricoan 29:76d952358896 117
amandarm 55:4d071fb49f24 118 float pos_x_pega = 0;
amandarm 55:4d071fb49f24 119 float pos_y_pega = 0;
amandarm 55:4d071fb49f24 120 float medida_lado_pega=0;
amandarm 55:4d071fb49f24 121 float volume_pega = 0;
amandarm 55:4d071fb49f24 122 int tipo_pega=0;
amandarm 55:4d071fb49f24 123
amandarm 55:4d071fb49f24 124 float dimensao_solta=0;
amandarm 55:4d071fb49f24 125
amandarm 55:4d071fb49f24 126 float volume_solta_1=0;
amandarm 55:4d071fb49f24 127 float volume_solta_2=0;
amandarm 55:4d071fb49f24 128 float volume_solta_3=0;
amandarm 55:4d071fb49f24 129 float volume_solta_4=0;
amandarm 55:4d071fb49f24 130 float volume_solta_5=0;
amandarm 55:4d071fb49f24 131 float volume_solta_6=0;
amandarm 55:4d071fb49f24 132 float volume_solta_7=0;
amandarm 55:4d071fb49f24 133 float volume_solta_8=0;
amandarm 55:4d071fb49f24 134 float volume_solta_9=0;
amandarm 55:4d071fb49f24 135
amandarm 55:4d071fb49f24 136 float pos_x_solta=0;
amandarm 55:4d071fb49f24 137 float pos_y_solta=0;
amandarm 55:4d071fb49f24 138
amandarm 57:e26deee15b8f 139 //main
amandarm 57:e26deee15b8f 140
enricoan 29:76d952358896 141 int main() {
enricoan 63:32ba7c4becfc 142
enricoan 56:e748b9bd5e3c 143 interrupcao.fall(&emergencia);
enricoan 54:74a215a1f76b 144 int volume;
Hiroball 61:be02d7d4e208 145 int volume_solta;
Hiroball 61:be02d7d4e208 146 int diametro_solta;
Hiroball 61:be02d7d4e208 147 int diametro;
Hiroball 59:447534f1e4f5 148 int comprimento_quad;
enricoan 54:74a215a1f76b 149 bool continuar;
Hiroball 61:be02d7d4e208 150 int multiplicador = 10;
enricoan 32:2a9b30e1e7ab 151 TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 29:76d952358896 152 lcd.printf("Bem-vindo ao Pipemax");
enricoan 29:76d952358896 153 lcd.locate(0,1);
enricoan 29:76d952358896 154 lcd.printf("o seu sistema");
enricoan 29:76d952358896 155 lcd.locate(0,2);
enricoan 29:76d952358896 156 lcd.printf("automatizado");
enricoan 29:76d952358896 157 lcd.locate(0,3);
enricoan 29:76d952358896 158 lcd.printf("de pipetagem");
enricoan 33:a513498222c7 159 wait(3);
enricoan 28:c4733814201a 160 lcd.cls();
enricoan 29:76d952358896 161 lcd.printf("Por favor, aceite");
amandarm 27:45f8125a0c0b 162 lcd.locate(0,1);
enricoan 29:76d952358896 163 lcd.printf("o zeramento do seu");
amandarm 27:45f8125a0c0b 164 lcd.locate(0,2);
enricoan 29:76d952358896 165 lcd.printf("sistema");
amandarm 27:45f8125a0c0b 166 lcd.locate(0,3);
enricoan 56:e748b9bd5e3c 167 lcd.printf("A - proximo");
enricoan 33:a513498222c7 168 while(1) {
enricoan 50:cd54c98b6ef1 169 tecla = pega_tecla();
enricoan 50:cd54c98b6ef1 170 printf("\n%s",status_tela);
enricoan 50:cd54c98b6ef1 171 printf("\n%c",tecla);
enricoan 29:76d952358896 172 if(tecla == 'A' && status_tela == "zeramento"){
amandarm 27:45f8125a0c0b 173 zeramento();
enricoan 33:a513498222c7 174 status_tela = "inicio";
enricoan 29:76d952358896 175 funcao_inicio();}
enricoan 43:cfc3da0299ff 176
enricoan 63:32ba7c4becfc 177 // 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");}}
enricoan 63:32ba7c4becfc 178 // 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");}}
enricoan 63:32ba7c4becfc 179 // 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");}}
amandarm 27:45f8125a0c0b 180
enricoan 63:32ba7c4becfc 181 while(x_menos == 0){mov_x_menos();
enricoan 63:32ba7c4becfc 182 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 63:32ba7c4becfc 183 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 63:32ba7c4becfc 184 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 32:2a9b30e1e7ab 185
enricoan 33:a513498222c7 186 while(y_menos == 0){mov_y_menos();
enricoan 54:74a215a1f76b 187 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 32:2a9b30e1e7ab 188 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 32:2a9b30e1e7ab 189 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 32:2a9b30e1e7ab 190
enricoan 33:a513498222c7 191 while(z_menos == 0){mov_z_menos();
enricoan 54:74a215a1f76b 192 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 32:2a9b30e1e7ab 193 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 32:2a9b30e1e7ab 194 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 32:2a9b30e1e7ab 195
enricoan 63:32ba7c4becfc 196 while(x_mais == 0){mov_x_mais();
enricoan 63:32ba7c4becfc 197 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 63:32ba7c4becfc 198 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 63:32ba7c4becfc 199 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 33:a513498222c7 200
enricoan 33:a513498222c7 201 while(y_mais == 0){mov_y_mais();
enricoan 54:74a215a1f76b 202 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 33:a513498222c7 203 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 33:a513498222c7 204 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 33:a513498222c7 205
enricoan 33:a513498222c7 206 while(z_mais == 0){mov_z_mais();
enricoan 54:74a215a1f76b 207 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 33:a513498222c7 208 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 33:a513498222c7 209 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 33:a513498222c7 210
enricoan 33:a513498222c7 211 if(x_mais && x_menos && y_mais && y_menos && z_mais && z_menos != 0){
enricoan 16:70baa0057a76 212 for(int i = 0; i < 4; i++){eixox = parado[i];}
enricoan 16:70baa0057a76 213 for(int i = 0; i < 4; i++){eixoy = parado[i];}
enricoan 33:a513498222c7 214 for(int i = 0; i < 4; i++){eixoz = parado[i];}}
amandarm 35:a8256801e9ab 215
enricoan 43:cfc3da0299ff 216 tecla = pega_tecla();
enricoan 28:c4733814201a 217 if(tecla =='1' && status_tela == "inicio"){
amandarm 26:4123b9462158 218 funcao_pega1();
enricoan 29:76d952358896 219 wait(1);
amandarm 26:4123b9462158 220 funcao_pega2();
enricoan 32:2a9b30e1e7ab 221 status_tela = "novo";}
enricoan 28:c4733814201a 222 else if(tecla == '2' && status_tela == "inicio"){
amandarm 26:4123b9462158 223 funcao_salvo1();
enricoan 29:76d952358896 224 wait(1);
amandarm 26:4123b9462158 225 funcao_salvo2();
enricoan 32:2a9b30e1e7ab 226 status_tela = "salvo";}
amandarm 35:a8256801e9ab 227
enricoan 43:cfc3da0299ff 228 tecla = pega_tecla();
amandarm 35:a8256801e9ab 229 if(tecla =='1' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 230 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 231 wait(1);
amandarm 35:a8256801e9ab 232 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 233 programa = 1;
amandarm 35:a8256801e9ab 234 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 235 else if(tecla =='2' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 236 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 237 wait(1);
amandarm 35:a8256801e9ab 238 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 239 programa = 2;
amandarm 35:a8256801e9ab 240 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 241 else if(tecla =='3' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 242 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 243 wait(1);
amandarm 35:a8256801e9ab 244 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 245 programa = 3;
amandarm 35:a8256801e9ab 246 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 247 else if(tecla =='4' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 248 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 249 wait(1);
amandarm 35:a8256801e9ab 250 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 251 programa = 4;
amandarm 35:a8256801e9ab 252 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 253 else if(tecla =='5' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 254 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 255 wait(1);
amandarm 35:a8256801e9ab 256 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 257 programa = 5;
amandarm 35:a8256801e9ab 258 status_tela = "salvo_confirmacao";}
amandarm 44:f0b7a2fe28d9 259 else if(tecla =='6' && status_tela =="salvo"){
amandarm 44:f0b7a2fe28d9 260 funcao_salvo_agree1();
amandarm 44:f0b7a2fe28d9 261 wait(1);
amandarm 44:f0b7a2fe28d9 262 funcao_salvo_agree2();
amandarm 44:f0b7a2fe28d9 263 programa = 6;
amandarm 44:f0b7a2fe28d9 264 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 265 else if(tecla =='B' && status_tela =="salvo"){
amandarm 47:0d9c10a9f87d 266 funcao_inicio();
amandarm 35:a8256801e9ab 267 status_tela = "inicio";}
amandarm 35:a8256801e9ab 268
enricoan 43:cfc3da0299ff 269 tecla = pega_tecla();
amandarm 35:a8256801e9ab 270 if(tecla =='1' && status_tela =="salvo_confirmacao"){
amandarm 35:a8256801e9ab 271 funcao_salvo_agree_pos_aviso();
amandarm 44:f0b7a2fe28d9 272 wait(3);
amandarm 36:12c0f6dfb3dc 273 //posicionar no local da pega salvo; (motor -> programa.pos_x_pega e motor -> programa.pos_y_pega)
amandarm 35:a8256801e9ab 274 funcao_salvo_agree_pos_certo();
amandarm 49:4625aaa408fc 275 status_tela="salvo_pos_certo_pega" ;}
amandarm 35:a8256801e9ab 276 else if(tecla =='2' && status_tela =="salvo_confirmacao"){
amandarm 35:a8256801e9ab 277 funcao_salvo_agree_solta_aviso();
amandarm 44:f0b7a2fe28d9 278 wait(3);
amandarm 36:12c0f6dfb3dc 279 //posicionar no local de solta para confirmação; (motor -> programa.pos_x_solta e motor -> programa.pos_y_solta)
amandarm 35:a8256801e9ab 280 funcao_salvo_agree_pos_certo();
amandarm 49:4625aaa408fc 281 status_tela = "salvo_pos_certo_solta";}
amandarm 35:a8256801e9ab 282 else if(tecla =='3' && status_tela =="salvo_confirmacao"){
amandarm 35:a8256801e9ab 283 funcao_salvo_agree_pega_vol();
amandarm 36:12c0f6dfb3dc 284 //programação de volume igual da de cima (programa.vol_pega)
amandarm 52:dca562b09080 285 status_tela="salvo_conf_vol_pega";}
amandarm 35:a8256801e9ab 286 else if(tecla =='4' && status_tela =="salvo_confirmacao"){
amandarm 35:a8256801e9ab 287 funcao_salvo_agree_solta_vol();
amandarm 36:12c0f6dfb3dc 288 //volumes configurados por cada pipeta. (programa.vol_solta_pipeta)
amandarm 35:a8256801e9ab 289 status_tela="salvo_conf_vol_solta";}
amandarm 35:a8256801e9ab 290 else if(tecla =='B' && status_tela =="salvo_confirmacao"){
amandarm 47:0d9c10a9f87d 291 funcao_salvo1();
amandarm 35:a8256801e9ab 292 wait(1);
amandarm 47:0d9c10a9f87d 293 funcao_salvo2();
amandarm 35:a8256801e9ab 294 programa = 1;
amandarm 35:a8256801e9ab 295 status_tela = "salvo";}
amandarm 35:a8256801e9ab 296
enricoan 43:cfc3da0299ff 297 tecla = pega_tecla();
amandarm 49:4625aaa408fc 298 if(tecla =='1' && status_tela =="salvo_pos_certo_pega"){
amandarm 48:135139e2971f 299 funcao_salvo_agree1();
amandarm 52:dca562b09080 300 lcd.locate(18,1);lcd.printf("OK");
amandarm 48:135139e2971f 301 wait(1);
amandarm 48:135139e2971f 302 funcao_salvo_agree2();
enricoan 53:1d0bb62c117f 303 status_tela = "salvo_confirmacao";
amandarm 48:135139e2971f 304 }//salva essa posição como correta
amandarm 49:4625aaa408fc 305 else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){}
amandarm 49:4625aaa408fc 306 else if(tecla =='B' && status_tela =="salvo_pos_certo_pega"){
amandarm 35:a8256801e9ab 307 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 308 wait(1);
amandarm 35:a8256801e9ab 309 funcao_salvo_agree2();
amandarm 48:135139e2971f 310 status_tela = "salvo_confirmacao";}
amandarm 48:135139e2971f 311
amandarm 52:dca562b09080 312 if(tecla =='A' && status_tela =="salvo_conf_vol_pega"){
amandarm 52:dca562b09080 313 funcao_salvo_agree1();
amandarm 52:dca562b09080 314 wait(1);
amandarm 52:dca562b09080 315 funcao_salvo_agree2();
amandarm 52:dca562b09080 316 lcd.locate(18,1);lcd.printf("OK");
enricoan 53:1d0bb62c117f 317 status_tela = "salvo_confirmacao";
amandarm 52:dca562b09080 318 }//salva essa posição como correta
amandarm 52:dca562b09080 319 else if(tecla =='B' && status_tela =="salvo_conf_vol_pega"){
amandarm 52:dca562b09080 320 funcao_salvo_agree1();
amandarm 52:dca562b09080 321 wait(1);
amandarm 52:dca562b09080 322 funcao_salvo_agree2();
amandarm 52:dca562b09080 323 status_tela = "salvo_confirmacao";}
amandarm 52:dca562b09080 324
amandarm 49:4625aaa408fc 325 if(tecla =='1' && status_tela =="salvo_pos_certo_solta"){
amandarm 49:4625aaa408fc 326 funcao_salvo_agree1();
amandarm 52:dca562b09080 327 lcd.locate(18,2);lcd.printf("OK");
amandarm 49:4625aaa408fc 328 wait(1);
amandarm 49:4625aaa408fc 329 funcao_salvo_agree2();
enricoan 53:1d0bb62c117f 330 status_tela = "salvo_confirmacao";
amandarm 49:4625aaa408fc 331 }//salva essa posição como correta
amandarm 49:4625aaa408fc 332 else if(tecla =='2' && status_tela =="salvo_pos_certo_solta"){}
amandarm 49:4625aaa408fc 333 else if(tecla =='B' && status_tela =="salvo_pos_certo_solta"){
amandarm 49:4625aaa408fc 334 funcao_salvo_agree1();
amandarm 49:4625aaa408fc 335 wait(1);
amandarm 49:4625aaa408fc 336 funcao_salvo_agree2();
amandarm 49:4625aaa408fc 337 status_tela = "salvo_confirmacao";}
amandarm 49:4625aaa408fc 338
amandarm 52:dca562b09080 339 if(tecla =='A' && status_tela =="salvo_conf_vol_solta"){
amandarm 48:135139e2971f 340 funcao_salvo_agree1();
amandarm 48:135139e2971f 341 wait(1);
amandarm 48:135139e2971f 342 funcao_salvo_agree2();
amandarm 52:dca562b09080 343 lcd.locate(18,2);lcd.printf("OK");
enricoan 53:1d0bb62c117f 344 status_tela = "salvo_confirmacao";
amandarm 48:135139e2971f 345 }//salva essa posição como correta
amandarm 48:135139e2971f 346 else if(tecla =='2' && status_tela =="salvo_conf_vol_solta"){}
amandarm 48:135139e2971f 347 else if(tecla =='B' && status_tela =="salvo_conf_vol_solta"){
amandarm 48:135139e2971f 348 funcao_salvo_agree1();
amandarm 48:135139e2971f 349 wait(1);
amandarm 48:135139e2971f 350 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 351 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 352
enricoan 43:cfc3da0299ff 353 tecla = pega_tecla();
enricoan 32:2a9b30e1e7ab 354 if(tecla =='1' && status_tela =="novo"){
amandarm 26:4123b9462158 355 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 356 status_tela ="forma";}
enricoan 53:1d0bb62c117f 357
enricoan 28:c4733814201a 358 else if(tecla =='2' && status_tela == "novo"){
enricoan 54:74a215a1f76b 359 volume = 0;
enricoan 54:74a215a1f76b 360 printf("\n%c",pega_tecla());
enricoan 53:1d0bb62c117f 361 funcao_pega_volume(); //!!!!!!!!!!!!!!!!!!!!!!!!!!!WTFFFFF
Hiroball 34:1b5a00c55376 362 status_tela = "volume";
enricoan 54:74a215a1f76b 363 continuar = 1;
enricoan 54:74a215a1f76b 364 multiplicador = 10;
enricoan 54:74a215a1f76b 365 while(continuar){
enricoan 54:74a215a1f76b 366 printf("\n%c",pega_tecla());
enricoan 43:cfc3da0299ff 367 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 368 lcd.locate(6,1);
enricoan 54:74a215a1f76b 369 wait(1);
enricoan 54:74a215a1f76b 370 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 371 volume = multiplicador*volume + ((int)tecla-48);
Hiroball 61:be02d7d4e208 372 lcd.printf("%c", tecla);
Hiroball 34:1b5a00c55376 373 }
Hiroball 59:447534f1e4f5 374 else if(tecla == 'A'){
enricoan 53:1d0bb62c117f 375 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 376 printf("Volume inputado!");
Hiroball 34:1b5a00c55376 377 continuar = 0;
enricoan 54:74a215a1f76b 378 wait(1);
Hiroball 34:1b5a00c55376 379 }
Hiroball 59:447534f1e4f5 380 else if(tecla=='B'){
Hiroball 59:447534f1e4f5 381 funcao_pega1();
Hiroball 59:447534f1e4f5 382 wait(1);
Hiroball 59:447534f1e4f5 383 funcao_pega2();
Hiroball 59:447534f1e4f5 384 status_tela = "novo";
Hiroball 61:be02d7d4e208 385 continuar = 0;
Hiroball 61:be02d7d4e208 386 }
Hiroball 34:1b5a00c55376 387 }
Hiroball 34:1b5a00c55376 388 }
enricoan 28:c4733814201a 389 else if(tecla == '3' && status_tela == "novo"){
amandarm 26:4123b9462158 390 funcao_pega_pos_x();
enricoan 63:32ba7c4becfc 391 pos_x_pega = coord_x;
enricoan 63:32ba7c4becfc 392 continuar = 1;
enricoan 63:32ba7c4becfc 393 while(continuar){
enricoan 63:32ba7c4becfc 394 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 395 if(x_menos == 0){mov_x_menos();
enricoan 63:32ba7c4becfc 396 lcd.cls();
enricoan 63:32ba7c4becfc 397 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 398 else if(x_mais == 0){mov_x_mais();
enricoan 63:32ba7c4becfc 399 lcd.cls();
enricoan 63:32ba7c4becfc 400 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 401 if(tecla=='A'){
enricoan 63:32ba7c4becfc 402 continuar = 0;
enricoan 63:32ba7c4becfc 403 lcd.printf("Posicao de x salva!");
enricoan 63:32ba7c4becfc 404 printf("Posicao X: %4.1f", coord_x);
enricoan 63:32ba7c4becfc 405 }
enricoan 63:32ba7c4becfc 406 }
enricoan 32:2a9b30e1e7ab 407 status_tela = "pos_x";}
enricoan 28:c4733814201a 408 else if(tecla == 'B' && status_tela == "novo"){
amandarm 26:4123b9462158 409 funcao_inicio();
enricoan 32:2a9b30e1e7ab 410 status_tela = "inicio";}
enricoan 28:c4733814201a 411 else if(tecla == '1' && status_tela == "salvo"){
amandarm 26:4123b9462158 412 funcao_salvo_agree1();
enricoan 32:2a9b30e1e7ab 413 status_tela = "confirmacao";}
enricoan 28:c4733814201a 414 else if(tecla =='2' && status_tela == "salvo"){
amandarm 26:4123b9462158 415 funcao_salvo_agree1();
enricoan 32:2a9b30e1e7ab 416 status_tela = "confirmacao";}
enricoan 28:c4733814201a 417 else if(tecla =='B' && status_tela == "salvo"){
amandarm 26:4123b9462158 418 funcao_inicio();
enricoan 32:2a9b30e1e7ab 419 status_tela = "inicio";}
amandarm 35:a8256801e9ab 420
enricoan 63:32ba7c4becfc 421 wait(0.5);
enricoan 43:cfc3da0299ff 422 tecla = pega_tecla();
enricoan 28:c4733814201a 423 if(tecla == '1' && status_tela == "forma"){
amandarm 26:4123b9462158 424 funcao_pega_forma_quad();
amandarm 55:4d071fb49f24 425 tipo_pega = 1;
Hiroball 59:447534f1e4f5 426 tecla = pega_tecla();
Hiroball 59:447534f1e4f5 427 wait(1);
Hiroball 61:be02d7d4e208 428 status_tela ="forma_quad";
Hiroball 59:447534f1e4f5 429 continuar = 1;
Hiroball 59:447534f1e4f5 430 comprimento_quad = 0;
enricoan 63:32ba7c4becfc 431 lcd.locate(0,2);
Hiroball 59:447534f1e4f5 432 while(continuar){
Hiroball 59:447534f1e4f5 433 printf("\n%c",pega_tecla());
Hiroball 59:447534f1e4f5 434 tecla = pega_tecla();
Hiroball 59:447534f1e4f5 435 wait(1);
Hiroball 59:447534f1e4f5 436 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 60:e2c632e8dee1 437 comprimento_quad = multiplicador*comprimento_quad + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 438 lcd.printf("%c",tecla);
Hiroball 59:447534f1e4f5 439 }
Hiroball 59:447534f1e4f5 440 else if(tecla == 'A'){
Hiroball 59:447534f1e4f5 441 continuar = 0;
Hiroball 61:be02d7d4e208 442 printf("Comprimento inputado!");
Hiroball 61:be02d7d4e208 443 printf("\nComprimento: %d", comprimento_quad);
Hiroball 59:447534f1e4f5 444 }
Hiroball 59:447534f1e4f5 445 else if(tecla=='B'){
Hiroball 59:447534f1e4f5 446 funcao_pega_forma();
Hiroball 59:447534f1e4f5 447 status_tela = "forma";
Hiroball 59:447534f1e4f5 448 continuar = 0;}
Hiroball 59:447534f1e4f5 449 }
Hiroball 59:447534f1e4f5 450 }
enricoan 28:c4733814201a 451 else if(tecla == '2' && status_tela == "forma"){
amandarm 26:4123b9462158 452 funcao_pega_forma_red();
enricoan 56:e748b9bd5e3c 453 tipo_pega = 2;
Hiroball 61:be02d7d4e208 454 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 455 wait(1);
Hiroball 61:be02d7d4e208 456 continuar = 1;
Hiroball 61:be02d7d4e208 457 diametro = 0;
Hiroball 61:be02d7d4e208 458 status_tela = "forma_red";
enricoan 63:32ba7c4becfc 459 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 460 while(continuar){
Hiroball 61:be02d7d4e208 461 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 462 wait(1);
Hiroball 61:be02d7d4e208 463 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 464 diametro = multiplicador*diametro + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 465 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 466 }
Hiroball 61:be02d7d4e208 467 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 468 continuar = 0;
Hiroball 61:be02d7d4e208 469 printf("Diametro inputado!");
Hiroball 61:be02d7d4e208 470 printf("Diametro: %d", diametro);
Hiroball 61:be02d7d4e208 471 }
Hiroball 61:be02d7d4e208 472 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 473 funcao_pega_forma();
Hiroball 61:be02d7d4e208 474 status_tela = "forma";
Hiroball 61:be02d7d4e208 475 continuar = 0;}
Hiroball 61:be02d7d4e208 476 }
Hiroball 61:be02d7d4e208 477 }
enricoan 28:c4733814201a 478 else if(tecla == 'B' && status_tela == "forma"){
enricoan 56:e748b9bd5e3c 479 funcao_pega1();
enricoan 56:e748b9bd5e3c 480 wait(1);
enricoan 56:e748b9bd5e3c 481 funcao_pega2();
enricoan 32:2a9b30e1e7ab 482 status_tela = "novo";}
amandarm 35:a8256801e9ab 483
enricoan 43:cfc3da0299ff 484 tecla = pega_tecla();
enricoan 28:c4733814201a 485 if(tecla == 'A' && status_tela == "forma_quad"){
amandarm 26:4123b9462158 486 funcao_pega1();
enricoan 63:32ba7c4becfc 487 medida_lado_pega = comprimento_quad;
enricoan 58:d573b618f45a 488 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 489 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 490 }
enricoan 58:d573b618f45a 491 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 492 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 493 }
enricoan 29:76d952358896 494 wait(1);
amandarm 26:4123b9462158 495 funcao_pega2();
enricoan 58:d573b618f45a 496 if(volume_pega !=0){
enricoan 58:d573b618f45a 497 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 498 }
enricoan 56:e748b9bd5e3c 499 status_tela ="novo";}
enricoan 28:c4733814201a 500 else if(tecla == 'B' && status_tela == "forma_quad"){
amandarm 26:4123b9462158 501 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 502 status_tela = "forma";}
enricoan 28:c4733814201a 503 else if(tecla == 'A' && status_tela == "forma_red"){
enricoan 63:32ba7c4becfc 504 medida_lado_pega = diametro;
amandarm 26:4123b9462158 505 funcao_pega1();
enricoan 58:d573b618f45a 506 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 507 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 508 }
enricoan 58:d573b618f45a 509 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 510 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 511 }
enricoan 29:76d952358896 512 wait(1);
amandarm 26:4123b9462158 513 funcao_pega2();
enricoan 58:d573b618f45a 514 if(volume_pega !=0){
enricoan 58:d573b618f45a 515 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 516 }
enricoan 56:e748b9bd5e3c 517 status_tela ="novo";}
enricoan 28:c4733814201a 518 else if(tecla == 'B' && status_tela == "forma_red"){
amandarm 26:4123b9462158 519 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 520 status_tela = "forma";}
enricoan 28:c4733814201a 521 else if(tecla == 'A' && status_tela == "volume"){
amandarm 26:4123b9462158 522 funcao_pega1();
amandarm 55:4d071fb49f24 523 volume_pega = 12;
enricoan 58:d573b618f45a 524 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 525 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 526 }
enricoan 58:d573b618f45a 527 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 528 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 529 }
enricoan 29:76d952358896 530 wait(1);
amandarm 26:4123b9462158 531 funcao_pega2();
enricoan 58:d573b618f45a 532 if(volume_pega !=0){
enricoan 58:d573b618f45a 533 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 534 }
enricoan 56:e748b9bd5e3c 535 status_tela ="novo";}
enricoan 28:c4733814201a 536 else if( tecla == 'B' && status_tela == "volume"){
amandarm 26:4123b9462158 537 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 538 status_tela = "forma";}
enricoan 28:c4733814201a 539 else if(tecla == 'A' && status_tela == "pos_x"){
enricoan 29:76d952358896 540 funcao_pega_pos_y(); //colocar programacao que contem o posicionamento do eixo y
amandarm 55:4d071fb49f24 541 pos_y_pega = 12.5;
enricoan 63:32ba7c4becfc 542 status_tela = "pos_y";
enricoan 63:32ba7c4becfc 543 }
enricoan 28:c4733814201a 544 else if(tecla == 'B' && status_tela == "pos_x"){
enricoan 63:32ba7c4becfc 545 funcao_pega1();
enricoan 63:32ba7c4becfc 546 wait(1);
enricoan 63:32ba7c4becfc 547 funcao_pega2();
enricoan 63:32ba7c4becfc 548 status_tela = "novo";}
amandarm 35:a8256801e9ab 549
enricoan 63:32ba7c4becfc 550 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 551 wait(0.5);
enricoan 63:32ba7c4becfc 552 //passando direto
enricoan 28:c4733814201a 553 if(tecla == 'A' && status_tela == "pos_y"){
amandarm 26:4123b9462158 554 funcao_pega1();
enricoan 58:d573b618f45a 555 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 556 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 557 }
enricoan 58:d573b618f45a 558 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 559 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 560 }
enricoan 29:76d952358896 561 wait(1);
amandarm 26:4123b9462158 562 funcao_pega2();
enricoan 58:d573b618f45a 563 if(volume_pega !=0){
enricoan 58:d573b618f45a 564 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 565 }
enricoan 56:e748b9bd5e3c 566 wait(1);
enricoan 56:e748b9bd5e3c 567 status_tela ="novo";}
enricoan 28:c4733814201a 568 else if(tecla == 'B' && status_tela == "pos_y"){
amandarm 26:4123b9462158 569 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 570 status_tela = "forma";}
amandarm 55:4d071fb49f24 571
amandarm 55:4d071fb49f24 572
amandarm 55:4d071fb49f24 573 tecla=pega_tecla();
enricoan 56:e748b9bd5e3c 574 if(pos_x_pega!=0 && pos_y_pega!=0 && medida_lado_pega!=0 && volume_pega !=0 && tipo_pega!=0 && status_tela == "novo"){
amandarm 55:4d071fb49f24 575 funcao_solta1();
amandarm 55:4d071fb49f24 576 wait(3);
amandarm 55:4d071fb49f24 577 funcao_solta2();
enricoan 58:d573b618f45a 578 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 579 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 580 }
amandarm 55:4d071fb49f24 581 wait(3);
enricoan 56:e748b9bd5e3c 582 status_tela="solta";}
amandarm 55:4d071fb49f24 583
amandarm 55:4d071fb49f24 584 tecla=pega_tecla();
amandarm 55:4d071fb49f24 585 if(tecla == '1' && status_tela == "solta"){
amandarm 55:4d071fb49f24 586 funcao_solta_dimensao();
Hiroball 61:be02d7d4e208 587 continuar = 1;
Hiroball 61:be02d7d4e208 588 diametro_solta = 0;
amandarm 55:4d071fb49f24 589 status_tela="solta_dimensao";
Hiroball 61:be02d7d4e208 590 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 591 while(continuar){
Hiroball 61:be02d7d4e208 592 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 593 wait(1);
Hiroball 61:be02d7d4e208 594 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 595 diametro_solta = multiplicador*diametro_solta + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 596 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 597 }
Hiroball 61:be02d7d4e208 598 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 599 printf("Diametro do solta inputado!");
Hiroball 61:be02d7d4e208 600 printf("Diametro do solta: %d", diametro_solta);
Hiroball 61:be02d7d4e208 601 continuar = 0;
Hiroball 61:be02d7d4e208 602 }
Hiroball 61:be02d7d4e208 603 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 604 funcao_pega_forma();
Hiroball 61:be02d7d4e208 605 status_tela = "solta";
Hiroball 61:be02d7d4e208 606 funcao_solta1();
Hiroball 61:be02d7d4e208 607 wait(3);
Hiroball 61:be02d7d4e208 608 funcao_solta2();
Hiroball 61:be02d7d4e208 609 continuar = 0;}
Hiroball 61:be02d7d4e208 610 }
Hiroball 61:be02d7d4e208 611 }
Hiroball 61:be02d7d4e208 612
amandarm 55:4d071fb49f24 613 else if(tecla == '2' && status_tela == "solta"){
amandarm 55:4d071fb49f24 614 funcao_solta_vol();
Hiroball 61:be02d7d4e208 615 volume_solta = 0;
Hiroball 61:be02d7d4e208 616 continuar = 1;
amandarm 55:4d071fb49f24 617 status_tela="solta_vol";
Hiroball 61:be02d7d4e208 618 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 619 while(continuar){
Hiroball 61:be02d7d4e208 620 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 621 wait(1);
Hiroball 61:be02d7d4e208 622 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 623 volume_solta = multiplicador*volume_solta + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 624 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 625 }
Hiroball 61:be02d7d4e208 626 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 627 printf("Volume solta inputado!");
Hiroball 61:be02d7d4e208 628 printf("Volume: %d", volume_solta);
Hiroball 61:be02d7d4e208 629 continuar = 0;
Hiroball 61:be02d7d4e208 630 }
Hiroball 61:be02d7d4e208 631 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 632 funcao_pega_forma();
Hiroball 61:be02d7d4e208 633 status_tela = "solta";
Hiroball 61:be02d7d4e208 634 continuar = 0;
Hiroball 61:be02d7d4e208 635 funcao_solta1();
Hiroball 61:be02d7d4e208 636 wait(3);
Hiroball 61:be02d7d4e208 637 funcao_solta2();
Hiroball 61:be02d7d4e208 638 }
Hiroball 61:be02d7d4e208 639 }
amandarm 55:4d071fb49f24 640 }
amandarm 55:4d071fb49f24 641 else if(tecla == '3' && status_tela == "solta"){
amandarm 55:4d071fb49f24 642 funcao_solta_pos_x();
amandarm 55:4d071fb49f24 643 status_tela="solta_pos_x";
Hiroball 61:be02d7d4e208 644 continuar = 1;
Hiroball 61:be02d7d4e208 645 while(continuar){
enricoan 63:32ba7c4becfc 646 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 647 if(x_menos == 0){mov_x_menos();
Hiroball 61:be02d7d4e208 648 lcd.cls();
Hiroball 61:be02d7d4e208 649 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 650 else if(x_mais == 0){mov_x_mais();
Hiroball 61:be02d7d4e208 651 lcd.cls();
Hiroball 61:be02d7d4e208 652 lcd.printf("X: %4.1f", coord_x);}
Hiroball 61:be02d7d4e208 653 if(tecla=='A'){
Hiroball 61:be02d7d4e208 654 continuar = 0;
Hiroball 61:be02d7d4e208 655 printf("Posicao de x salva!");
Hiroball 61:be02d7d4e208 656 printf("Posicao X: %4.1f", coord_x);
Hiroball 61:be02d7d4e208 657 }
amandarm 55:4d071fb49f24 658 }
Hiroball 61:be02d7d4e208 659 }
amandarm 55:4d071fb49f24 660 else if(tecla == 'B' && status_tela == "solta"){
amandarm 55:4d071fb49f24 661 funcao_pega1();
enricoan 58:d573b618f45a 662 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 663 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 664 }
enricoan 58:d573b618f45a 665 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 666 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 667 }
amandarm 55:4d071fb49f24 668 wait(1);
amandarm 55:4d071fb49f24 669 funcao_pega2();
enricoan 58:d573b618f45a 670 if(volume_pega !=0){
enricoan 58:d573b618f45a 671 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 672 }
amandarm 55:4d071fb49f24 673 status_tela="inicio";
amandarm 55:4d071fb49f24 674 }
amandarm 55:4d071fb49f24 675
amandarm 55:4d071fb49f24 676 tecla=pega_tecla();
amandarm 55:4d071fb49f24 677 if(tecla=='A' && status_tela=="solta_dimensao"){
amandarm 55:4d071fb49f24 678 dimensao_solta = 10;
amandarm 55:4d071fb49f24 679 funcao_solta1();
enricoan 58:d573b618f45a 680 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 681 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 682 }
enricoan 58:d573b618f45a 683 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 684 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 685 }
amandarm 55:4d071fb49f24 686 wait(3);
amandarm 55:4d071fb49f24 687 funcao_solta2();
enricoan 58:d573b618f45a 688 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 689 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 690 }
amandarm 55:4d071fb49f24 691 wait(3);
amandarm 55:4d071fb49f24 692 status_tela="solta";
amandarm 55:4d071fb49f24 693 }
amandarm 55:4d071fb49f24 694 else if(tecla=='B' && status_tela=="solta_dimensao"){
amandarm 55:4d071fb49f24 695 funcao_solta1();
enricoan 58:d573b618f45a 696 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 697 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 698 }
enricoan 58:d573b618f45a 699 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 700 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 701 }
amandarm 55:4d071fb49f24 702 wait(3);
amandarm 55:4d071fb49f24 703 funcao_solta2();
enricoan 58:d573b618f45a 704 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 705 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 706 }
amandarm 55:4d071fb49f24 707 wait(3);
amandarm 55:4d071fb49f24 708 status_tela="solta";
amandarm 55:4d071fb49f24 709 }
amandarm 55:4d071fb49f24 710 if(tecla=='1' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 711 funcao_solta_vol_igual();
amandarm 55:4d071fb49f24 712 status_tela="solta_vol_igual";
amandarm 55:4d071fb49f24 713 }
amandarm 55:4d071fb49f24 714 else if(tecla=='2' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 715 funcao_solta_vol_cada();
amandarm 55:4d071fb49f24 716 status_tela="solta_vol_dif";
amandarm 55:4d071fb49f24 717 }
amandarm 55:4d071fb49f24 718 else if(tecla=='B' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 719 funcao_solta1();
enricoan 58:d573b618f45a 720 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 721 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 722 }
enricoan 58:d573b618f45a 723 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 724 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 725 }
amandarm 55:4d071fb49f24 726 wait(3);
amandarm 55:4d071fb49f24 727 funcao_solta2();
enricoan 58:d573b618f45a 728 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 729 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 730 }
amandarm 55:4d071fb49f24 731 wait(3);
amandarm 55:4d071fb49f24 732 status_tela="solta";
amandarm 55:4d071fb49f24 733 }
enricoan 56:e748b9bd5e3c 734 if(tecla=='A' && status_tela=="solta_pos_x"){
amandarm 55:4d071fb49f24 735 funcao_solta_pos_y();
amandarm 55:4d071fb49f24 736 pos_x_solta = 10;
enricoan 56:e748b9bd5e3c 737 status_tela="solta_pos_y";
amandarm 55:4d071fb49f24 738 }
enricoan 56:e748b9bd5e3c 739 else if(tecla=='B' && status_tela=="solta_pos_x"){
amandarm 55:4d071fb49f24 740 funcao_solta1();
enricoan 58:d573b618f45a 741 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 742 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 743 }
enricoan 58:d573b618f45a 744 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 745 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 746 }
amandarm 55:4d071fb49f24 747 wait(3);
amandarm 55:4d071fb49f24 748 funcao_solta2();
enricoan 58:d573b618f45a 749 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 750 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 751 }
amandarm 55:4d071fb49f24 752 wait(3);
amandarm 55:4d071fb49f24 753 status_tela="solta";
amandarm 55:4d071fb49f24 754 }
amandarm 55:4d071fb49f24 755
amandarm 55:4d071fb49f24 756 tecla=pega_tecla();
amandarm 55:4d071fb49f24 757 if(tecla=='A' && status_tela=="solta_vol_igual"){
amandarm 55:4d071fb49f24 758 volume_solta_1=10;
amandarm 55:4d071fb49f24 759 volume_solta_2=10;
amandarm 55:4d071fb49f24 760 volume_solta_3=10;
amandarm 55:4d071fb49f24 761 volume_solta_4=10;
amandarm 55:4d071fb49f24 762 volume_solta_5=10;
amandarm 55:4d071fb49f24 763 volume_solta_6=10;
amandarm 55:4d071fb49f24 764 volume_solta_7=10;
amandarm 55:4d071fb49f24 765 volume_solta_8=10;
amandarm 55:4d071fb49f24 766 volume_solta_9=10;
amandarm 55:4d071fb49f24 767
amandarm 55:4d071fb49f24 768 funcao_solta1();
enricoan 58:d573b618f45a 769 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 770 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 771 }
enricoan 58:d573b618f45a 772 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 773 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 774 }
amandarm 55:4d071fb49f24 775 wait(3);
amandarm 55:4d071fb49f24 776 funcao_solta2();
enricoan 58:d573b618f45a 777 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 778 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 779 }
amandarm 55:4d071fb49f24 780 wait(3);
enricoan 56:e748b9bd5e3c 781 status_tela="solta";}
amandarm 55:4d071fb49f24 782 else if(tecla=='B' && status_tela=="solta_vol_igual"){
amandarm 55:4d071fb49f24 783 funcao_solta_vol();
amandarm 55:4d071fb49f24 784 status_tela="solta_vol";
amandarm 55:4d071fb49f24 785 }
amandarm 55:4d071fb49f24 786 if(tecla=='1' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 787 volume_solta_1=10;
enricoan 56:e748b9bd5e3c 788 lcd.locate(12,0);lcd.printf("10");
amandarm 55:4d071fb49f24 789 }
amandarm 55:4d071fb49f24 790 if(tecla=='2' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 791 volume_solta_2=20;
enricoan 56:e748b9bd5e3c 792 lcd.locate(15,0);lcd.printf("20");
amandarm 55:4d071fb49f24 793 }
amandarm 55:4d071fb49f24 794 if(tecla=='3' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 795 volume_solta_3=30;
enricoan 56:e748b9bd5e3c 796 lcd.locate(18,0);lcd.printf("30");
amandarm 55:4d071fb49f24 797 }
amandarm 55:4d071fb49f24 798 if(tecla=='4' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 799 volume_solta_4=40;
enricoan 56:e748b9bd5e3c 800 lcd.locate(12,1);lcd.printf("40");
amandarm 55:4d071fb49f24 801 }
amandarm 55:4d071fb49f24 802 if(tecla=='5' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 803 volume_solta_5=50;
enricoan 56:e748b9bd5e3c 804 lcd.locate(15,1);lcd.printf("50");
amandarm 55:4d071fb49f24 805 }
amandarm 55:4d071fb49f24 806 if(tecla=='6' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 807 volume_solta_6=60;
enricoan 56:e748b9bd5e3c 808 lcd.locate(18,1);lcd.printf("60");
amandarm 55:4d071fb49f24 809 }
amandarm 55:4d071fb49f24 810 if(tecla=='7' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 811 volume_solta_7=70;
enricoan 56:e748b9bd5e3c 812 lcd.locate(12,2);lcd.printf("70");
amandarm 55:4d071fb49f24 813 }
amandarm 55:4d071fb49f24 814 if(tecla=='8' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 815 volume_solta_8=80;
enricoan 56:e748b9bd5e3c 816 lcd.locate(15,2);lcd.printf("80");
amandarm 55:4d071fb49f24 817 }
amandarm 55:4d071fb49f24 818 if(tecla=='9' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 819 volume_solta_9=90;
enricoan 56:e748b9bd5e3c 820 lcd.locate(18,2);lcd.printf("90");
amandarm 55:4d071fb49f24 821 }
amandarm 55:4d071fb49f24 822 if(tecla=='A' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 823 funcao_solta1();
enricoan 58:d573b618f45a 824 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 825 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 826 }
enricoan 58:d573b618f45a 827 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 828 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 829 }
amandarm 55:4d071fb49f24 830 wait(3);
amandarm 55:4d071fb49f24 831 funcao_solta2();
enricoan 58:d573b618f45a 832 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 833 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 834 }
amandarm 55:4d071fb49f24 835 wait(3);
amandarm 55:4d071fb49f24 836 status_tela="solta";
amandarm 55:4d071fb49f24 837 }
amandarm 55:4d071fb49f24 838 else if(tecla=='B' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 839 funcao_solta_vol();
amandarm 55:4d071fb49f24 840 status_tela="solta_vol";
amandarm 55:4d071fb49f24 841 }
enricoan 56:e748b9bd5e3c 842 if(tecla=='A' && status_tela=="solta_pos_y"){
amandarm 55:4d071fb49f24 843 funcao_solta1();
enricoan 58:d573b618f45a 844 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 845 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 846 }
enricoan 58:d573b618f45a 847 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 848 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 849 }
amandarm 55:4d071fb49f24 850 wait(3);
amandarm 55:4d071fb49f24 851 funcao_solta2();
enricoan 58:d573b618f45a 852 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 853 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 854 }
amandarm 55:4d071fb49f24 855 pos_y_solta = 10;
amandarm 55:4d071fb49f24 856 wait(3);
amandarm 55:4d071fb49f24 857 status_tela="solta";
amandarm 55:4d071fb49f24 858 }
enricoan 56:e748b9bd5e3c 859 else if(tecla=='B' && status_tela=="solta_pos_y"){
amandarm 55:4d071fb49f24 860 funcao_solta1();
enricoan 58:d573b618f45a 861 if(pos_y_solta !=0){
enricoan 58:d573b618f45a 862 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 863 }
enricoan 58:d573b618f45a 864 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 865 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 866 }
amandarm 55:4d071fb49f24 867 wait(3);
amandarm 55:4d071fb49f24 868 funcao_solta2();
enricoan 58:d573b618f45a 869 if(volume_solta_9 !=0){
enricoan 58:d573b618f45a 870 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 871 }
amandarm 55:4d071fb49f24 872 pos_y_solta = 10;
amandarm 55:4d071fb49f24 873 wait(3);
amandarm 55:4d071fb49f24 874 status_tela="solta";
amandarm 55:4d071fb49f24 875 }
amandarm 55:4d071fb49f24 876
amandarm 55:4d071fb49f24 877 if(pos_x_solta!=0 && pos_y_solta!=0 && volume_solta_9!=0 && dimensao_solta!=0 && status_tela=="solta"){
amandarm 55:4d071fb49f24 878 funcao_acomp();
amandarm 55:4d071fb49f24 879 status_tela="acompanhamento";
amandarm 55:4d071fb49f24 880 };
amandarm 55:4d071fb49f24 881 }
enricoan 10:4f49e9859535 882 }