testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Tue Jun 02 13:53:13 2020 +0000
Revision:
66:ebc2a21cd514
Parent:
63:32ba7c4becfc
Child:
73:6c5f3c9cc90e
emergencia mais avancada mas piscando

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