testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Fri Jun 05 11:50:13 2020 +0000
Revision:
76:e8f994ca108f
Parent:
73:6c5f3c9cc90e
Child:
77:61eb73d3c9dd
versao com interrucoes: fdc pronto, falta o rele da emergencia

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