testando

Dependencies:   mbed TextLCD2

Committer:
Hiroball
Date:
Wed Jun 03 18:56:16 2020 +0000
Revision:
72:aa3902facc8c
Parent:
71:c91c96bbed54
Child:
74:53c345d557e8
Primeira versao de acompanhamento

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>
Hiroball 72:aa3902facc8c 8 #define PI 3.14159265
amandarm 35:a8256801e9ab 9
enricoan 29:76d952358896 10 //local para a declaracao de varioveis
enricoan 30:179ceb3e5791 11 float t_motor = 0.002; //delay entre o acionamento de uma bobina do motor e a outra
enricoan 30:179ceb3e5791 12 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 13 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 14 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 15 int parado[] = {0,0,0,0}; //valores enviados às bobinas do motor para deixá-lo parado
enricoan 30:179ceb3e5791 16 char tecla; //variável que guarda a tecla apertada no teclado
enricoan 30:179ceb3e5791 17 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 18 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
Hiroball 72:aa3902facc8c 19 float coord_z = 0;
Hiroball 72:aa3902facc8c 20 float normal_z = 100; //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 21 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 22 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 23 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
Hiroball 72:aa3902facc8c 24 float altura_solta = 50;
enricoan 17:4d0b8ed791e0 25
enricoan 29:76d952358896 26 //pinos usados pelos botoes de fim de curso
enricoan 17:4d0b8ed791e0 27 DigitalIn fdc_x(PC_10);
enricoan 17:4d0b8ed791e0 28 DigitalIn fdc_y(PC_11);
enricoan 17:4d0b8ed791e0 29 DigitalIn fdc_z(PC_12);
enricoan 20:81a44a25b21d 30
enricoan 29:76d952358896 31 //Iterrupcao botao de emergência
enricoan 63:32ba7c4becfc 32 InterruptIn interrupcao(PB_11);
amandarm 25:b0db528c1985 33
enricoan 42:a6fbbe536814 34 //pinos do rele, saida digital para acionar o rele se necessario, dada uma entrada no pino da emergencia
Hiroball 72:aa3902facc8c 35 DigitalOut pipeta(PC_5);
enricoan 30:179ceb3e5791 36 DigitalOut rele2(PB_9);
amandarm 25:b0db528c1985 37
enricoan 29:76d952358896 38 //botoes para movimentacao eixo a eixo
enricoan 10:4f49e9859535 39 DigitalIn x_mais(PA_0);
enricoan 10:4f49e9859535 40 DigitalIn x_menos(PA_1);
enricoan 10:4f49e9859535 41 DigitalIn y_mais(PC_0);
enricoan 10:4f49e9859535 42 DigitalIn y_menos(PC_1);
enricoan 10:4f49e9859535 43 DigitalIn z_mais(PC_2);
enricoan 10:4f49e9859535 44 DigitalIn z_menos(PC_3);
enricoan 10:4f49e9859535 45
enricoan 10:4f49e9859535 46 //pinos da placa usados na biblioteca do LCD
enricoan 42:a6fbbe536814 47 //TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 10:4f49e9859535 48
enricoan 16:70baa0057a76 49 //pinos do teclado
enricoan 40:39263f4cf8b7 50 DigitalIn b(PC_4);
enricoan 40:39263f4cf8b7 51 DigitalIn a(PB_0);
enricoan 40:39263f4cf8b7 52 DigitalIn t_0(PC_13);
enricoan 40:39263f4cf8b7 53 DigitalIn t_1(PB_7);
enricoan 40:39263f4cf8b7 54 DigitalIn t_2(PD_2);
enricoan 41:9709891f77c5 55 DigitalIn t_3(PA_4);
enricoan 40:39263f4cf8b7 56 DigitalIn t_4(PB_12);
enricoan 40:39263f4cf8b7 57 DigitalIn t_5(PB_15);
enricoan 41:9709891f77c5 58 DigitalIn t_6(PA_7);
enricoan 40:39263f4cf8b7 59 DigitalIn t_7(PB_14);
enricoan 40:39263f4cf8b7 60 DigitalIn t_8(PA_6);
enricoan 40:39263f4cf8b7 61 DigitalIn t_9(PB_13);
enricoan 16:70baa0057a76 62
enricoan 10:4f49e9859535 63 //pinos de saída para os motores
enricoan 10:4f49e9859535 64 //eixo x
Hiroball 11:dc557e461dfd 65 BusOut eixox(PA_15,PA_14,PA_13,PA_12);
enricoan 10:4f49e9859535 66 //eixo y
Hiroball 11:dc557e461dfd 67 BusOut eixoy(PA_11,PA_10,PB_2,PB_1);
enricoan 10:4f49e9859535 68 //eixo z
Hiroball 11:dc557e461dfd 69 BusOut eixoz(PC_9,PC_8,PB_8,PC_6);
enricoan 10:4f49e9859535 70
enricoan 42:a6fbbe536814 71 //funcao para receber inputs do teclado
enricoan 43:cfc3da0299ff 72 char pega_tecla(){
enricoan 43:cfc3da0299ff 73 if (b == 0)return ('A');
enricoan 43:cfc3da0299ff 74 if (a == 0)return('B');
enricoan 43:cfc3da0299ff 75 if (t_0 == 0)return('0');
enricoan 43:cfc3da0299ff 76 if (t_1 == 0)return('1');
enricoan 43:cfc3da0299ff 77 if (t_2 == 0)return('2');
enricoan 43:cfc3da0299ff 78 if (t_3 == 0)return('3');
enricoan 43:cfc3da0299ff 79 if (t_4 == 0)return('4');
enricoan 43:cfc3da0299ff 80 if (t_5 == 0)return('5');
enricoan 43:cfc3da0299ff 81 if (t_6 == 0)return('6');
enricoan 43:cfc3da0299ff 82 if (t_7 == 0)return('7');
enricoan 43:cfc3da0299ff 83 if (t_8 == 0)return('8');
enricoan 54:74a215a1f76b 84 if (t_9 == 0)return('9');
enricoan 54:74a215a1f76b 85 return('k');}
enricoan 42:a6fbbe536814 86
enricoan 32:2a9b30e1e7ab 87 //funcao de movimentacao dos motores
enricoan 63:32ba7c4becfc 88 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 89 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 90 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 91 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 92 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 93 void mov_z_mais() {for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);coord_z += (5.625*5/32)/360;est_z = 0;}}
enricoan 32:2a9b30e1e7ab 94
Hiroball 72:aa3902facc8c 95 void go_to_posicao(float posicao_x, float posicao_y){
Hiroball 72:aa3902facc8c 96 while(coord_x < posicao_x){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
Hiroball 72:aa3902facc8c 97 mov_x_mais();
Hiroball 72:aa3902facc8c 98 }
Hiroball 72:aa3902facc8c 99 while(coord_x > posicao_x){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
Hiroball 72:aa3902facc8c 100 mov_x_menos();
Hiroball 72:aa3902facc8c 101 }
Hiroball 72:aa3902facc8c 102 while(coord_y < posicao_y){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
Hiroball 72:aa3902facc8c 103 mov_y_mais();
Hiroball 72:aa3902facc8c 104 }
Hiroball 72:aa3902facc8c 105 while(coord_y > posicao_y){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
Hiroball 72:aa3902facc8c 106 mov_y_menos();
Hiroball 72:aa3902facc8c 107 };
Hiroball 72:aa3902facc8c 108 }
Hiroball 72:aa3902facc8c 109
Hiroball 72:aa3902facc8c 110 float calcula_altura(int forma_do_pega, int dimensao, float v, int contador){
Hiroball 72:aa3902facc8c 111 if(forma_do_pega==1){//quad
Hiroball 72:aa3902facc8c 112 return (v-contador)/(dimensao*dimensao)*0.001-4;
Hiroball 72:aa3902facc8c 113 }
Hiroball 72:aa3902facc8c 114 else if(forma_do_pega==2){//red
Hiroball 72:aa3902facc8c 115 return ((v-contador)/(PI*(dimensao/2)*(dimensao/2))*0.001-4);
Hiroball 72:aa3902facc8c 116 };
Hiroball 72:aa3902facc8c 117 }
Hiroball 72:aa3902facc8c 118
Hiroball 72:aa3902facc8c 119 void go_to_z(float posicao_z){
Hiroball 72:aa3902facc8c 120 while(coord_z < posicao_z){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
Hiroball 72:aa3902facc8c 121 mov_z_mais();
Hiroball 72:aa3902facc8c 122 }
Hiroball 72:aa3902facc8c 123 while(coord_z > posicao_z){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
Hiroball 72:aa3902facc8c 124 mov_z_menos();
Hiroball 72:aa3902facc8c 125 }
Hiroball 72:aa3902facc8c 126 }
Hiroball 72:aa3902facc8c 127
enricoan 32:2a9b30e1e7ab 128 //Funcao de interrupcao
enricoan 32:2a9b30e1e7ab 129 void emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9);
Hiroball 72:aa3902facc8c 130 rele2 = 0;
amandarm 25:b0db528c1985 131 eixox = 0b0000;
amandarm 25:b0db528c1985 132 eixoy = 0b0000;
amandarm 25:b0db528c1985 133 eixoz = 0b0000;
amandarm 25:b0db528c1985 134 lcd.cls();
enricoan 29:76d952358896 135 lcd.printf("Botao Emergencia");
amandarm 25:b0db528c1985 136 lcd.locate(0,1);
amandarm 25:b0db528c1985 137 lcd.printf(" acionado ");
amandarm 25:b0db528c1985 138 lcd.locate(0,2);
amandarm 46:e73e36a20134 139 lcd.printf("Operacao pausada");
amandarm 46:e73e36a20134 140 wait(5);}
enricoan 56:e748b9bd5e3c 141
enricoan 29:76d952358896 142 //Funcao de zeramento
amandarm 27:45f8125a0c0b 143 void zeramento(){
amandarm 27:45f8125a0c0b 144 while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}}
amandarm 27:45f8125a0c0b 145 while (fdc_y != 0){for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);est_y = 1;}}
enricoan 54:74a215a1f76b 146 while (fdc_z != 0){for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);est_z = 1;}}}
enricoan 29:76d952358896 147
enricoan 54:74a215a1f76b 148 //Variaveis para operacao IHM
enricoan 29:76d952358896 149 using std::string;
enricoan 32:2a9b30e1e7ab 150 string status_tela = "zeramento";
amandarm 35:a8256801e9ab 151 int programa = 0;
enricoan 29:76d952358896 152
Hiroball 70:85daa4aee916 153 //Informações sobre o pega
amandarm 65:5a759e3014dd 154 float pos_x_pega[30];
amandarm 65:5a759e3014dd 155 float pos_y_pega [30];
amandarm 65:5a759e3014dd 156 float medida_lado_pega[30];
amandarm 65:5a759e3014dd 157 float volume_pega[30];
amandarm 65:5a759e3014dd 158 int tipo_pega[30];
amandarm 55:4d071fb49f24 159
Hiroball 70:85daa4aee916 160 //Informações sobre os solta's
amandarm 65:5a759e3014dd 161 float dimensao_solta[30];
amandarm 65:5a759e3014dd 162 float volume_solta_1[30];
amandarm 65:5a759e3014dd 163 float volume_solta_2[30];
amandarm 65:5a759e3014dd 164 float volume_solta_3[30];
amandarm 65:5a759e3014dd 165 float volume_solta_4[30];
amandarm 65:5a759e3014dd 166 float volume_solta_5[30];
amandarm 65:5a759e3014dd 167 float volume_solta_6[30];
amandarm 65:5a759e3014dd 168 float volume_solta_7[30];
amandarm 65:5a759e3014dd 169 float volume_solta_8[30];
amandarm 65:5a759e3014dd 170 float volume_solta_9[30];
amandarm 65:5a759e3014dd 171 float pos_x_solta[30];
amandarm 65:5a759e3014dd 172 float pos_y_solta[30];
amandarm 55:4d071fb49f24 173
amandarm 57:e26deee15b8f 174 //main
enricoan 29:76d952358896 175 int main() {
enricoan 67:ecd4feb40f94 176 pos_x_solta[1] = 5;
enricoan 67:ecd4feb40f94 177 pos_y_solta[1] = 5;
enricoan 67:ecd4feb40f94 178 pos_x_pega[1] = 5;
enricoan 67:ecd4feb40f94 179 pos_y_pega[1] = 5;
enricoan 56:e748b9bd5e3c 180 interrupcao.fall(&emergencia);
enricoan 54:74a215a1f76b 181 int volume;
Hiroball 61:be02d7d4e208 182 int volume_solta;
Hiroball 61:be02d7d4e208 183 int diametro_solta;
Hiroball 61:be02d7d4e208 184 int diametro;
Hiroball 59:447534f1e4f5 185 int comprimento_quad;
enricoan 54:74a215a1f76b 186 bool continuar;
Hiroball 61:be02d7d4e208 187 int multiplicador = 10;
Hiroball 70:85daa4aee916 188
Hiroball 70:85daa4aee916 189 //Pinos para ligar o display à NUCLEO
enricoan 32:2a9b30e1e7ab 190 TextLCD lcd(D4, D5, D6, D7, D8, D9);
Hiroball 70:85daa4aee916 191
Hiroball 70:85daa4aee916 192 //Tela inicial
enricoan 29:76d952358896 193 lcd.printf("Bem-vindo ao Pipemax");
enricoan 29:76d952358896 194 lcd.locate(0,1);
enricoan 29:76d952358896 195 lcd.printf("o seu sistema");
enricoan 29:76d952358896 196 lcd.locate(0,2);
enricoan 29:76d952358896 197 lcd.printf("automatizado");
enricoan 29:76d952358896 198 lcd.locate(0,3);
enricoan 29:76d952358896 199 lcd.printf("de pipetagem");
enricoan 33:a513498222c7 200 wait(3);
enricoan 28:c4733814201a 201 lcd.cls();
enricoan 29:76d952358896 202 lcd.printf("Por favor, aceite");
amandarm 27:45f8125a0c0b 203 lcd.locate(0,1);
enricoan 29:76d952358896 204 lcd.printf("o zeramento do seu");
amandarm 27:45f8125a0c0b 205 lcd.locate(0,2);
enricoan 29:76d952358896 206 lcd.printf("sistema");
amandarm 27:45f8125a0c0b 207 lcd.locate(0,3);
Hiroball 70:85daa4aee916 208 lcd.printf("A - proximo");
Hiroball 70:85daa4aee916 209
Hiroball 70:85daa4aee916 210 //Loop principal
enricoan 33:a513498222c7 211 while(1) {
Hiroball 70:85daa4aee916 212 tecla = pega_tecla();//Variável que guarda o valor da tecla apertada
Hiroball 70:85daa4aee916 213
Hiroball 70:85daa4aee916 214 //Teste para analisar se os valores estão corretos através do monitor serial
enricoan 50:cd54c98b6ef1 215 printf("\n%s",status_tela);
enricoan 50:cd54c98b6ef1 216 printf("\n%c",tecla);
Hiroball 70:85daa4aee916 217
Hiroball 70:85daa4aee916 218 //O zeramento só é feito se confirmado apertando a tecla 'A'
enricoan 29:76d952358896 219 if(tecla == 'A' && status_tela == "zeramento"){
amandarm 27:45f8125a0c0b 220 zeramento();
enricoan 33:a513498222c7 221 status_tela = "inicio";
enricoan 71:c91c96bbed54 222 funcao_inicio();}
enricoan 43:cfc3da0299ff 223
enricoan 63:32ba7c4becfc 224 // 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 225 // 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 226 // 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 227
enricoan 63:32ba7c4becfc 228 while(x_menos == 0){mov_x_menos();
enricoan 63:32ba7c4becfc 229 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 63:32ba7c4becfc 230 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 63:32ba7c4becfc 231 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 32:2a9b30e1e7ab 232
enricoan 33:a513498222c7 233 while(y_menos == 0){mov_y_menos();
enricoan 54:74a215a1f76b 234 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 32:2a9b30e1e7ab 235 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
Hiroball 70:85daa4aee916 236 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 32:2a9b30e1e7ab 237
enricoan 33:a513498222c7 238 while(z_menos == 0){mov_z_menos();
enricoan 54:74a215a1f76b 239 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 32:2a9b30e1e7ab 240 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 32:2a9b30e1e7ab 241 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 32:2a9b30e1e7ab 242
enricoan 63:32ba7c4becfc 243 while(x_mais == 0){mov_x_mais();
enricoan 63:32ba7c4becfc 244 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 63:32ba7c4becfc 245 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 63:32ba7c4becfc 246 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 33:a513498222c7 247
enricoan 33:a513498222c7 248 while(y_mais == 0){mov_y_mais();
enricoan 54:74a215a1f76b 249 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 33:a513498222c7 250 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 33:a513498222c7 251 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 33:a513498222c7 252
enricoan 33:a513498222c7 253 while(z_mais == 0){mov_z_mais();
enricoan 54:74a215a1f76b 254 lcd.cls(); lcd.printf("X: %4.1f", coord_x);
enricoan 33:a513498222c7 255 lcd.locate(0,1);lcd.printf("Y: %4.1f", coord_y);
enricoan 33:a513498222c7 256 lcd.locate(0,2);lcd.printf("Z: %4.1f", coord_z);}
enricoan 33:a513498222c7 257
Hiroball 70:85daa4aee916 258 //Caso nenhum botão esteja apertado, os motores devem permanecer parados
enricoan 33:a513498222c7 259 if(x_mais && x_menos && y_mais && y_menos && z_mais && z_menos != 0){
enricoan 16:70baa0057a76 260 for(int i = 0; i < 4; i++){eixox = parado[i];}
enricoan 16:70baa0057a76 261 for(int i = 0; i < 4; i++){eixoy = parado[i];}
enricoan 33:a513498222c7 262 for(int i = 0; i < 4; i++){eixoz = parado[i];}}
amandarm 35:a8256801e9ab 263
Hiroball 70:85daa4aee916 264 tecla = pega_tecla();//Atualiza a variável tecla
Hiroball 70:85daa4aee916 265
Hiroball 70:85daa4aee916 266 //Ações para a tela inicial
enricoan 28:c4733814201a 267 if(tecla =='1' && status_tela == "inicio"){
Hiroball 70:85daa4aee916 268 continuar = 1; //Condição de funcionamento do loop abaixo
enricoan 71:c91c96bbed54 269 while(continuar){ //Esse loop indica que há a alternação de duas telas
Hiroball 70:85daa4aee916 270 funcao_pega1();
Hiroball 70:85daa4aee916 271 wait(2);
Hiroball 70:85daa4aee916 272 funcao_pega2();
enricoan 71:c91c96bbed54 273 wait(2);
enricoan 71:c91c96bbed54 274 tecla = pega_tecla();
Hiroball 70:85daa4aee916 275 if(tecla!='k'){
enricoan 71:c91c96bbed54 276 printf("entrou no if");
Hiroball 70:85daa4aee916 277 continuar = 0;
Hiroball 70:85daa4aee916 278 }
Hiroball 70:85daa4aee916 279 }
Hiroball 70:85daa4aee916 280 status_tela = "novo";
Hiroball 70:85daa4aee916 281 }
enricoan 28:c4733814201a 282 else if(tecla == '2' && status_tela == "inicio"){
Hiroball 70:85daa4aee916 283 continuar = 1;
Hiroball 70:85daa4aee916 284 while(continuar){
Hiroball 70:85daa4aee916 285 funcao_salvo1();
Hiroball 70:85daa4aee916 286 wait(2);
Hiroball 70:85daa4aee916 287 funcao_salvo2();
enricoan 71:c91c96bbed54 288 wait(2);
enricoan 71:c91c96bbed54 289 tecla = pega_tecla();
Hiroball 70:85daa4aee916 290 if(tecla!='k'){
Hiroball 70:85daa4aee916 291 continuar = 0;
Hiroball 70:85daa4aee916 292 }
Hiroball 70:85daa4aee916 293 }
enricoan 32:2a9b30e1e7ab 294 status_tela = "salvo";}
Hiroball 70:85daa4aee916 295
Hiroball 70:85daa4aee916 296 //Ações para a tela de salvamento
Hiroball 70:85daa4aee916 297 //A variável programa remete a que programa salvo o usuário deseja acessar
enricoan 43:cfc3da0299ff 298 tecla = pega_tecla();
amandarm 35:a8256801e9ab 299 if(tecla =='1' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 300 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 301 wait(1);
amandarm 35:a8256801e9ab 302 funcao_salvo_agree2();
Hiroball 70:85daa4aee916 303 programa = 1;
amandarm 35:a8256801e9ab 304 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 305 else if(tecla =='2' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 306 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 307 wait(1);
amandarm 35:a8256801e9ab 308 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 309 programa = 2;
amandarm 35:a8256801e9ab 310 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 311 else if(tecla =='3' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 312 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 313 wait(1);
amandarm 35:a8256801e9ab 314 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 315 programa = 3;
amandarm 35:a8256801e9ab 316 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 317 else if(tecla =='4' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 318 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 319 wait(1);
amandarm 35:a8256801e9ab 320 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 321 programa = 4;
amandarm 35:a8256801e9ab 322 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 323 else if(tecla =='5' && status_tela =="salvo"){
amandarm 35:a8256801e9ab 324 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 325 wait(1);
amandarm 35:a8256801e9ab 326 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 327 programa = 5;
amandarm 35:a8256801e9ab 328 status_tela = "salvo_confirmacao";}
amandarm 44:f0b7a2fe28d9 329 else if(tecla =='6' && status_tela =="salvo"){
amandarm 44:f0b7a2fe28d9 330 funcao_salvo_agree1();
amandarm 44:f0b7a2fe28d9 331 wait(1);
amandarm 44:f0b7a2fe28d9 332 funcao_salvo_agree2();
amandarm 44:f0b7a2fe28d9 333 programa = 6;
amandarm 44:f0b7a2fe28d9 334 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 335 else if(tecla =='B' && status_tela =="salvo"){
amandarm 47:0d9c10a9f87d 336 funcao_inicio();
amandarm 35:a8256801e9ab 337 status_tela = "inicio";}
amandarm 35:a8256801e9ab 338
Hiroball 70:85daa4aee916 339 tecla = pega_tecla();//Atualiza a variável tecla
Hiroball 70:85daa4aee916 340
Hiroball 70:85daa4aee916 341 //Ações para a tela de salvo_confirmação
amandarm 35:a8256801e9ab 342 if(tecla =='1' && status_tela =="salvo_confirmacao"){
amandarm 65:5a759e3014dd 343 funcao_salvo_agree_pos_aviso(); //Tela de aviso ao usuário que a pega se deslocará na posição aduequada
amandarm 44:f0b7a2fe28d9 344 wait(3);
amandarm 68:b36bb895c8c1 345 status_tela = "salvo_confirmacao_pega_agree";
amandarm 68:b36bb895c8c1 346 }
Hiroball 70:85daa4aee916 347
Hiroball 70:85daa4aee916 348 //Ações para a tela salvo_confirmação_pega_agree
amandarm 68:b36bb895c8c1 349 if(tecla == 'A' && status_tela =="salvo_confirmacao_pega_agree"){
enricoan 67:ecd4feb40f94 350 while(coord_x < pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
amandarm 65:5a759e3014dd 351 mov_x_mais();
amandarm 65:5a759e3014dd 352 }
enricoan 67:ecd4feb40f94 353 while(coord_x > pos_x_pega[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
amandarm 65:5a759e3014dd 354 mov_x_menos();
amandarm 65:5a759e3014dd 355 }
enricoan 67:ecd4feb40f94 356 while(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
amandarm 65:5a759e3014dd 357 mov_y_mais();
amandarm 65:5a759e3014dd 358 }
enricoan 67:ecd4feb40f94 359 while(coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
amandarm 65:5a759e3014dd 360 mov_y_menos();
amandarm 65:5a759e3014dd 361 }
amandarm 65:5a759e3014dd 362 funcao_salvo_agree_pos_certo(); //Tela para o usuário confirmar se é essa a posição de fato da pega
amandarm 49:4625aaa408fc 363 status_tela="salvo_pos_certo_pega" ;}
amandarm 68:b36bb895c8c1 364 else if(tecla == 'B' && status_tela=="salvo_confirmacao_pega_agree"){
enricoan 71:c91c96bbed54 365 funcao_salvo_agree1();
amandarm 68:b36bb895c8c1 366 wait(1);
enricoan 71:c91c96bbed54 367 funcao_salvo_agree2();
amandarm 68:b36bb895c8c1 368 programa = 1;
enricoan 71:c91c96bbed54 369 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 370 else if(tecla =='2' && status_tela =="salvo_confirmacao"){
amandarm 65:5a759e3014dd 371 funcao_salvo_agree_solta_aviso(); //posicionar no local de solta para confirmação; (motor -> programa.pos_x_solta e motor -> programa.pos_y_solta)
amandarm 44:f0b7a2fe28d9 372 wait(3);
amandarm 68:b36bb895c8c1 373 status_tela = "salvo_confirmacao_solta_agree";
amandarm 68:b36bb895c8c1 374 }
Hiroball 70:85daa4aee916 375
Hiroball 70:85daa4aee916 376 //Ações para a tela confirmação_solta_agree
amandarm 68:b36bb895c8c1 377 if(tecla == 'A' && status_tela =="salvo_confirmacao_solta_agree"){
enricoan 67:ecd4feb40f94 378 while(coord_x < pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
amandarm 65:5a759e3014dd 379 mov_x_mais();
amandarm 65:5a759e3014dd 380 }
enricoan 67:ecd4feb40f94 381 while(coord_x > pos_x_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
amandarm 65:5a759e3014dd 382 mov_x_menos();
amandarm 65:5a759e3014dd 383 }
enricoan 67:ecd4feb40f94 384 while(coord_y < pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for menor o valor da referencia, gira no sentido horário para aumentar
amandarm 65:5a759e3014dd 385 mov_y_mais();
amandarm 65:5a759e3014dd 386 }
enricoan 67:ecd4feb40f94 387 while(coord_y > pos_y_solta[programa]){ //posicionar no local da pega salvo; - se for maior o valor da referencia, gira no sentido antihorário para diminuir
amandarm 65:5a759e3014dd 388 mov_y_menos();
amandarm 65:5a759e3014dd 389 }
amandarm 35:a8256801e9ab 390 funcao_salvo_agree_pos_certo();
amandarm 68:b36bb895c8c1 391 status_tela = "salvo_pos_certo_solta";}
amandarm 68:b36bb895c8c1 392 else if(tecla == 'B' && status_tela=="salvo_confirmacao_solta_agree"){
amandarm 68:b36bb895c8c1 393 funcao_salvo1();
amandarm 68:b36bb895c8c1 394 wait(1);
amandarm 68:b36bb895c8c1 395 funcao_salvo2();
amandarm 68:b36bb895c8c1 396 programa = 1;
amandarm 68:b36bb895c8c1 397 status_tela = "salvo";}
amandarm 35:a8256801e9ab 398 else if(tecla =='3' && status_tela =="salvo_confirmacao"){
amandarm 65:5a759e3014dd 399 funcao_salvo_agree_pega_vol(); //Função que imprime na tela do usuário que ele deve dar entreda no volume
amandarm 65:5a759e3014dd 400 continuar = 1;
enricoan 67:ecd4feb40f94 401 multiplicador = 10;
enricoan 67:ecd4feb40f94 402 lcd.locate(6,1);
amandarm 65:5a759e3014dd 403 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 65:5a759e3014dd 404 printf("\n%c",pega_tecla());
amandarm 65:5a759e3014dd 405 tecla = pega_tecla();
amandarm 65:5a759e3014dd 406 wait(1);
amandarm 65:5a759e3014dd 407 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 70:85daa4aee916 408 volume = multiplicador*volume + ((int)tecla-48); //
amandarm 65:5a759e3014dd 409 lcd.printf("%c", tecla);
amandarm 65:5a759e3014dd 410 }
amandarm 65:5a759e3014dd 411 else if(tecla == 'A'){
enricoan 67:ecd4feb40f94 412 volume_pega[programa]=volume; //recebe o valor que o usuário colocou no volume.
amandarm 65:5a759e3014dd 413 lcd.locate(0,2);
amandarm 65:5a759e3014dd 414 printf("Volume inputado!");
amandarm 65:5a759e3014dd 415 continuar = 0;
amandarm 65:5a759e3014dd 416 wait(1);
amandarm 65:5a759e3014dd 417 }
Hiroball 70:85daa4aee916 418 }
amandarm 65:5a759e3014dd 419 status_tela="salvo_conf_vol_pega";}
amandarm 35:a8256801e9ab 420 else if(tecla =='4' && status_tela =="salvo_confirmacao"){
amandarm 68:b36bb895c8c1 421 funcao_salvo_agree_solta_vol(); //volumes configurados por cada pipeta. (programa.vol_solta_pipeta)
enricoan 71:c91c96bbed54 422 lcd.locate(3,0);lcd.printf("%4.1f",volume_solta_1[programa]);
enricoan 71:c91c96bbed54 423 lcd.locate(8,0);lcd.printf("%4.1f",volume_solta_2[programa]);
enricoan 71:c91c96bbed54 424 lcd.locate(13,0);lcd.printf("%4.1f",volume_solta_3[programa]);
enricoan 71:c91c96bbed54 425 lcd.locate(3,1);lcd.printf("%4.1f",volume_solta_4[programa]);
enricoan 71:c91c96bbed54 426 lcd.locate(8,2);lcd.printf("%4.1f",volume_solta_5[programa]);
enricoan 71:c91c96bbed54 427 lcd.locate(13,3);lcd.printf("%4.1f",volume_solta_6[programa]);
enricoan 71:c91c96bbed54 428 lcd.locate(3,1);lcd.printf("%4.1f",volume_solta_7[programa]);
enricoan 71:c91c96bbed54 429 lcd.locate(8,2);lcd.printf("%4.1f",volume_solta_8[programa]);
enricoan 71:c91c96bbed54 430 lcd.locate(13,3);lcd.printf("%4.1f",volume_solta_9[programa]);
amandarm 35:a8256801e9ab 431 status_tela="salvo_conf_vol_solta";}
amandarm 35:a8256801e9ab 432 else if(tecla =='B' && status_tela =="salvo_confirmacao"){
amandarm 47:0d9c10a9f87d 433 funcao_salvo1();
amandarm 35:a8256801e9ab 434 wait(1);
amandarm 47:0d9c10a9f87d 435 funcao_salvo2();
amandarm 35:a8256801e9ab 436 programa = 1;
amandarm 35:a8256801e9ab 437 status_tela = "salvo";}
Hiroball 70:85daa4aee916 438
Hiroball 70:85daa4aee916 439 tecla = pega_tecla(); //Atualiza a variável tecla
Hiroball 70:85daa4aee916 440
Hiroball 70:85daa4aee916 441 //Ações para a tela de salvo_pos_certo_pega
amandarm 49:4625aaa408fc 442 if(tecla =='1' && status_tela =="salvo_pos_certo_pega"){
amandarm 48:135139e2971f 443 funcao_salvo_agree1();
amandarm 52:dca562b09080 444 lcd.locate(18,1);lcd.printf("OK");
amandarm 48:135139e2971f 445 wait(1);
amandarm 48:135139e2971f 446 funcao_salvo_agree2();
enricoan 53:1d0bb62c117f 447 status_tela = "salvo_confirmacao";
amandarm 48:135139e2971f 448 }//salva essa posição como correta
amandarm 65:5a759e3014dd 449 else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){ //Caso o usuário queria ajustar o posicionamento
enricoan 67:ecd4feb40f94 450 lcd.cls();
enricoan 67:ecd4feb40f94 451 funcao_pega_pos_x();
enricoan 67:ecd4feb40f94 452 lcd.printf("Ponha a pega em x/y");
enricoan 67:ecd4feb40f94 453 lcd.locate(0,3);
enricoan 67:ecd4feb40f94 454 lcd.printf(" B-Voltar ");
amandarm 65:5a759e3014dd 455 continuar = 1; //Inicia o loop de posicionamento
amandarm 65:5a759e3014dd 456 while(continuar){
amandarm 65:5a759e3014dd 457 tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop
amandarm 65:5a759e3014dd 458 if(x_menos == 0){mov_x_menos(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 459 lcd.cls();
amandarm 65:5a759e3014dd 460 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 461 else if(x_mais == 0){mov_x_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 462 lcd.cls();
amandarm 65:5a759e3014dd 463 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 464 else if(y_menos == 0){mov_y_menos(); //Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 465 lcd.cls();
amandarm 65:5a759e3014dd 466 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 467 else if(y_mais == 0){mov_y_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 468 lcd.cls();
amandarm 65:5a759e3014dd 469 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 470 if(tecla=='A'){
amandarm 65:5a759e3014dd 471 pos_x_pega[programa] = coord_x;
amandarm 65:5a759e3014dd 472 pos_y_pega[programa] = coord_y;
enricoan 67:ecd4feb40f94 473 lcd.cls();
amandarm 65:5a759e3014dd 474 lcd.printf("Posicao de x e y salva!");
Hiroball 70:85daa4aee916 475 lcd.locate(0,1);
Hiroball 70:85daa4aee916 476 lcd.printf("Posicao X: %4.1f", coord_x);
Hiroball 70:85daa4aee916 477 lcd.locate(0,2);
Hiroball 70:85daa4aee916 478 lcd.printf("Posicao Y: %4.1f", coord_y);
enricoan 67:ecd4feb40f94 479 funcao_salvo_agree1();
enricoan 67:ecd4feb40f94 480 wait(1);
enricoan 67:ecd4feb40f94 481 funcao_salvo_agree2();
enricoan 67:ecd4feb40f94 482 status_tela = "salvo_confirmacao";
Hiroball 70:85daa4aee916 483 continuar = 0;
amandarm 65:5a759e3014dd 484 }
amandarm 65:5a759e3014dd 485 }
amandarm 65:5a759e3014dd 486 }
amandarm 49:4625aaa408fc 487 else if(tecla =='B' && status_tela =="salvo_pos_certo_pega"){
amandarm 35:a8256801e9ab 488 funcao_salvo_agree1();
amandarm 35:a8256801e9ab 489 wait(1);
amandarm 35:a8256801e9ab 490 funcao_salvo_agree2();
amandarm 48:135139e2971f 491 status_tela = "salvo_confirmacao";}
Hiroball 70:85daa4aee916 492
Hiroball 70:85daa4aee916 493
Hiroball 70:85daa4aee916 494 //Ações para a tela salvo_conf_vol_pega
amandarm 52:dca562b09080 495 if(tecla =='A' && status_tela =="salvo_conf_vol_pega"){
amandarm 52:dca562b09080 496 funcao_salvo_agree1();
amandarm 52:dca562b09080 497 wait(1);
amandarm 52:dca562b09080 498 funcao_salvo_agree2();
amandarm 52:dca562b09080 499 lcd.locate(18,1);lcd.printf("OK");
enricoan 53:1d0bb62c117f 500 status_tela = "salvo_confirmacao";
amandarm 52:dca562b09080 501 }//salva essa posição como correta
amandarm 52:dca562b09080 502 else if(tecla =='B' && status_tela =="salvo_conf_vol_pega"){
amandarm 52:dca562b09080 503 funcao_salvo_agree1();
amandarm 52:dca562b09080 504 wait(1);
amandarm 52:dca562b09080 505 funcao_salvo_agree2();
amandarm 52:dca562b09080 506 status_tela = "salvo_confirmacao";}
Hiroball 70:85daa4aee916 507
Hiroball 70:85daa4aee916 508 //Ações para a tela de salvo_pos_certo_solta
enricoan 71:c91c96bbed54 509 if(tecla =='1' && status_tela =="salvo_pos_certo_"){
amandarm 49:4625aaa408fc 510 funcao_salvo_agree1();
amandarm 52:dca562b09080 511 lcd.locate(18,2);lcd.printf("OK");
amandarm 49:4625aaa408fc 512 wait(1);
amandarm 49:4625aaa408fc 513 funcao_salvo_agree2();
enricoan 53:1d0bb62c117f 514 status_tela = "salvo_confirmacao";
amandarm 49:4625aaa408fc 515 }//salva essa posição como correta
amandarm 65:5a759e3014dd 516 else if(tecla =='2' && status_tela =="salvo_pos_certo_solta"){
amandarm 68:b36bb895c8c1 517 lcd.cls();
amandarm 68:b36bb895c8c1 518 funcao_solta_pos_x();
amandarm 68:b36bb895c8c1 519 lcd.printf("Ponha a pega em x/y");
amandarm 68:b36bb895c8c1 520 lcd.locate(0,3);
amandarm 68:b36bb895c8c1 521 lcd.printf(" B-Voltar ");
amandarm 65:5a759e3014dd 522 continuar = 1; //Inicia o loop de posicionamento
amandarm 65:5a759e3014dd 523 while(continuar){
amandarm 65:5a759e3014dd 524 tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop
amandarm 65:5a759e3014dd 525 if(x_menos == 0){mov_x_menos(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 526 lcd.cls();
amandarm 65:5a759e3014dd 527 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 528 else if(x_mais == 0){mov_x_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 529 lcd.cls();
amandarm 65:5a759e3014dd 530 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 531 else if(y_menos == 0){mov_y_menos(); //Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 532 lcd.cls();
amandarm 65:5a759e3014dd 533 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 534 else if(y_mais == 0){mov_y_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 535 lcd.cls();
amandarm 65:5a759e3014dd 536 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 537 if(tecla=='A'){
amandarm 68:b36bb895c8c1 538 pos_x_solta[programa] = coord_x;
amandarm 68:b36bb895c8c1 539 pos_y_solta[programa] = coord_y;
amandarm 68:b36bb895c8c1 540 lcd.cls();
amandarm 65:5a759e3014dd 541 lcd.printf("Posicao de x e y salva!");
Hiroball 70:85daa4aee916 542 lcd.locate(0,1);
Hiroball 70:85daa4aee916 543 lcd.printf("Posicao X: %4.1f", coord_x);
Hiroball 70:85daa4aee916 544 lcd.locate(0,2);
Hiroball 70:85daa4aee916 545 lcd.printf("Posicao Y: %4.1f", coord_y);
amandarm 68:b36bb895c8c1 546 funcao_salvo_agree1();
amandarm 68:b36bb895c8c1 547 wait(1);
amandarm 68:b36bb895c8c1 548 funcao_salvo_agree2();
amandarm 68:b36bb895c8c1 549 status_tela = "salvo_confirmacao";
Hiroball 70:85daa4aee916 550 continuar = 0;
amandarm 65:5a759e3014dd 551 }
amandarm 68:b36bb895c8c1 552 }
amandarm 65:5a759e3014dd 553 }
amandarm 49:4625aaa408fc 554 else if(tecla =='B' && status_tela =="salvo_pos_certo_solta"){
amandarm 49:4625aaa408fc 555 funcao_salvo_agree1();
amandarm 49:4625aaa408fc 556 wait(1);
amandarm 49:4625aaa408fc 557 funcao_salvo_agree2();
amandarm 49:4625aaa408fc 558 status_tela = "salvo_confirmacao";}
Hiroball 70:85daa4aee916 559
Hiroball 70:85daa4aee916 560 //Ações para a tela salvo_conf_vol_solta
amandarm 52:dca562b09080 561 if(tecla =='A' && status_tela =="salvo_conf_vol_solta"){
amandarm 48:135139e2971f 562 funcao_salvo_agree1();
amandarm 48:135139e2971f 563 wait(1);
amandarm 48:135139e2971f 564 funcao_salvo_agree2();
amandarm 52:dca562b09080 565 lcd.locate(18,2);lcd.printf("OK");
enricoan 53:1d0bb62c117f 566 status_tela = "salvo_confirmacao";
amandarm 48:135139e2971f 567 }//salva essa posição como correta
amandarm 68:b36bb895c8c1 568 else if(tecla =='2' && status_tela =="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 569 funcao_salvo_vol_solta_modifica();
amandarm 68:b36bb895c8c1 570 wait(3);
amandarm 68:b36bb895c8c1 571 funcao_salvo_agree_solta_vol();
amandarm 68:b36bb895c8c1 572 lcd.locate(3,0);lcd.printf("%f",volume_solta_1[programa]);
amandarm 68:b36bb895c8c1 573 lcd.locate(8,0);lcd.printf("%f",volume_solta_2[programa]);
amandarm 68:b36bb895c8c1 574 lcd.locate(13,0);lcd.printf("%f",volume_solta_3[programa]);
amandarm 68:b36bb895c8c1 575 lcd.locate(3,1);lcd.printf("%f",volume_solta_4[programa]);
amandarm 68:b36bb895c8c1 576 lcd.locate(8,2);lcd.printf("%f",volume_solta_5[programa]);
amandarm 68:b36bb895c8c1 577 lcd.locate(13,3);lcd.printf("%f",volume_solta_6[programa]);
amandarm 68:b36bb895c8c1 578 lcd.locate(3,1);lcd.printf("%f",volume_solta_7[programa]);
amandarm 68:b36bb895c8c1 579 lcd.locate(8,2);lcd.printf("%f",volume_solta_8[programa]);
amandarm 68:b36bb895c8c1 580 lcd.locate(13,3);lcd.printf("%f",volume_solta_9[programa]);
amandarm 68:b36bb895c8c1 581 if(tecla=='1' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 582 continuar = 1;
amandarm 68:b36bb895c8c1 583 lcd.locate(3,0);
amandarm 68:b36bb895c8c1 584 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 585 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 586 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 587 wait(1);
amandarm 68:b36bb895c8c1 588 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 70:85daa4aee916 589 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
amandarm 68:b36bb895c8c1 590 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 591 }
amandarm 68:b36bb895c8c1 592 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 593 volume_solta_1[programa]=volume;
amandarm 68:b36bb895c8c1 594 }
amandarm 68:b36bb895c8c1 595 }
amandarm 69:8c7e1da9d315 596 }
Hiroball 70:85daa4aee916 597 else if(tecla=='2' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 598 continuar = 1;
amandarm 68:b36bb895c8c1 599 multiplicador = 10;
amandarm 68:b36bb895c8c1 600 lcd.locate(8,0);
amandarm 68:b36bb895c8c1 601 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 602 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 603 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 604 wait(1);
amandarm 68:b36bb895c8c1 605 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 606 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 607 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 608 }
amandarm 68:b36bb895c8c1 609 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 610 volume_solta_2[programa]=volume;
amandarm 68:b36bb895c8c1 611 }
amandarm 68:b36bb895c8c1 612 }
amandarm 69:8c7e1da9d315 613 }
Hiroball 70:85daa4aee916 614 else if(tecla=='3' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 615 continuar = 1;
amandarm 68:b36bb895c8c1 616 multiplicador = 10;
amandarm 68:b36bb895c8c1 617 lcd.locate(13,0);
amandarm 68:b36bb895c8c1 618 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 619 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 620 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 621 wait(1);
amandarm 68:b36bb895c8c1 622 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 623 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 624 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 625 }
amandarm 68:b36bb895c8c1 626 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 627 volume_solta_3[programa]=volume;
amandarm 68:b36bb895c8c1 628 }
amandarm 68:b36bb895c8c1 629 }
amandarm 69:8c7e1da9d315 630 }
Hiroball 70:85daa4aee916 631 else if(tecla=='4' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 632 continuar = 1;
amandarm 68:b36bb895c8c1 633 multiplicador = 10;
amandarm 68:b36bb895c8c1 634 lcd.locate(3,1);
amandarm 68:b36bb895c8c1 635 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 636 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 637 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 638 wait(1);
amandarm 68:b36bb895c8c1 639 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 640 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 641 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 642 }
amandarm 68:b36bb895c8c1 643 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 644 volume_solta_4[programa]=volume;
amandarm 68:b36bb895c8c1 645 }
amandarm 68:b36bb895c8c1 646 }
amandarm 69:8c7e1da9d315 647 }
Hiroball 70:85daa4aee916 648 else if(tecla=='5' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 649 continuar = 1;
amandarm 68:b36bb895c8c1 650 multiplicador = 10;
amandarm 68:b36bb895c8c1 651 lcd.locate(8,1);
amandarm 68:b36bb895c8c1 652 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 653 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 654 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 655 wait(1);
amandarm 68:b36bb895c8c1 656 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 657 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 658 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 659 }
amandarm 68:b36bb895c8c1 660 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 661 volume_solta_5[programa]=volume;
amandarm 68:b36bb895c8c1 662 }
amandarm 68:b36bb895c8c1 663 }
amandarm 69:8c7e1da9d315 664 }
Hiroball 70:85daa4aee916 665 else if(tecla=='6' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 666 continuar = 1;
amandarm 68:b36bb895c8c1 667 multiplicador = 10;
amandarm 68:b36bb895c8c1 668 lcd.locate(13,1);
amandarm 68:b36bb895c8c1 669 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 670 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 671 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 672 wait(1);
amandarm 68:b36bb895c8c1 673 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 674 volume = multiplicador*volume + ((int)tecla-48);
amandarm 69:8c7e1da9d315 675 lcd.printf("%c", tecla);}
amandarm 68:b36bb895c8c1 676 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 677 volume_solta_6[programa]=volume;
amandarm 68:b36bb895c8c1 678 }
amandarm 68:b36bb895c8c1 679 }
amandarm 68:b36bb895c8c1 680 }
Hiroball 70:85daa4aee916 681 else if(tecla=='7' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 682 continuar = 1;
amandarm 68:b36bb895c8c1 683 multiplicador = 10;
amandarm 68:b36bb895c8c1 684 lcd.locate(3,2);
amandarm 68:b36bb895c8c1 685 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 686 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 687 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 688 wait(1);
amandarm 68:b36bb895c8c1 689 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 690 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 691 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 692 }
amandarm 68:b36bb895c8c1 693 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 694 volume_solta_7[programa]=volume;
amandarm 68:b36bb895c8c1 695 }
amandarm 68:b36bb895c8c1 696 }
amandarm 69:8c7e1da9d315 697 }
Hiroball 70:85daa4aee916 698 else if(tecla=='8' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 699 continuar = 1;
amandarm 68:b36bb895c8c1 700 multiplicador = 10;
amandarm 68:b36bb895c8c1 701 lcd.locate(8,2);
amandarm 68:b36bb895c8c1 702 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 703 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 704 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 705 wait(1);
amandarm 68:b36bb895c8c1 706 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 707 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 708 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 709 }
amandarm 68:b36bb895c8c1 710 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 711 volume_solta_8[programa]=volume;
amandarm 68:b36bb895c8c1 712 }
amandarm 68:b36bb895c8c1 713 }
amandarm 69:8c7e1da9d315 714 }
Hiroball 70:85daa4aee916 715 else if(tecla=='9' && status_tela=="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 716 continuar = 1;
amandarm 68:b36bb895c8c1 717 multiplicador = 10;
amandarm 68:b36bb895c8c1 718 lcd.locate(13,2);
amandarm 68:b36bb895c8c1 719 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 68:b36bb895c8c1 720 printf("\n%c",pega_tecla());
amandarm 68:b36bb895c8c1 721 tecla = pega_tecla();
amandarm 68:b36bb895c8c1 722 wait(1);
amandarm 68:b36bb895c8c1 723 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 68:b36bb895c8c1 724 volume = multiplicador*volume + ((int)tecla-48);
amandarm 68:b36bb895c8c1 725 lcd.printf("%c", tecla);
amandarm 68:b36bb895c8c1 726 }
amandarm 68:b36bb895c8c1 727 else if(tecla == 'A'){
amandarm 68:b36bb895c8c1 728 volume_solta_9[programa]=volume;
amandarm 68:b36bb895c8c1 729 }
amandarm 68:b36bb895c8c1 730 }
amandarm 68:b36bb895c8c1 731 }
enricoan 71:c91c96bbed54 732 }
amandarm 48:135139e2971f 733 else if(tecla =='B' && status_tela =="salvo_conf_vol_solta"){
amandarm 48:135139e2971f 734 funcao_salvo_agree1();
amandarm 48:135139e2971f 735 wait(1);
amandarm 48:135139e2971f 736 funcao_salvo_agree2();
amandarm 35:a8256801e9ab 737 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 738
enricoan 43:cfc3da0299ff 739 tecla = pega_tecla();
Hiroball 70:85daa4aee916 740
Hiroball 70:85daa4aee916 741 //Ações para a tela novo
enricoan 32:2a9b30e1e7ab 742 if(tecla =='1' && status_tela =="novo"){
amandarm 26:4123b9462158 743 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 744 status_tela ="forma";}
Hiroball 70:85daa4aee916 745
enricoan 28:c4733814201a 746 else if(tecla =='2' && status_tela == "novo"){
enricoan 54:74a215a1f76b 747 volume = 0;
enricoan 54:74a215a1f76b 748 printf("\n%c",pega_tecla());
amandarm 65:5a759e3014dd 749 funcao_pega_volume(); // Função que permite a entreda do valor de volume pelo usuário
Hiroball 34:1b5a00c55376 750 status_tela = "volume";
enricoan 54:74a215a1f76b 751 continuar = 1;
enricoan 67:ecd4feb40f94 752 lcd.locate(6,1);
enricoan 54:74a215a1f76b 753 while(continuar){
enricoan 54:74a215a1f76b 754 printf("\n%c",pega_tecla());
enricoan 43:cfc3da0299ff 755 tecla = pega_tecla();
enricoan 54:74a215a1f76b 756 wait(1);
enricoan 54:74a215a1f76b 757 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 758 volume = multiplicador*volume + ((int)tecla-48);
Hiroball 61:be02d7d4e208 759 lcd.printf("%c", tecla);
Hiroball 34:1b5a00c55376 760 }
Hiroball 59:447534f1e4f5 761 else if(tecla == 'A'){
Hiroball 70:85daa4aee916 762 volume_pega[programa] = volume;
enricoan 53:1d0bb62c117f 763 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 764 printf("Volume inputado!");
Hiroball 34:1b5a00c55376 765 continuar = 0;
enricoan 54:74a215a1f76b 766 wait(1);
Hiroball 34:1b5a00c55376 767 }
Hiroball 59:447534f1e4f5 768 else if(tecla=='B'){
Hiroball 59:447534f1e4f5 769 funcao_pega1();
Hiroball 59:447534f1e4f5 770 wait(1);
Hiroball 59:447534f1e4f5 771 funcao_pega2();
Hiroball 59:447534f1e4f5 772 status_tela = "novo";
Hiroball 61:be02d7d4e208 773 continuar = 0;
Hiroball 61:be02d7d4e208 774 }
Hiroball 34:1b5a00c55376 775 }
Hiroball 34:1b5a00c55376 776 }
enricoan 28:c4733814201a 777 else if(tecla == '3' && status_tela == "novo"){
amandarm 26:4123b9462158 778 funcao_pega_pos_x();
enricoan 63:32ba7c4becfc 779 continuar = 1;
enricoan 63:32ba7c4becfc 780 while(continuar){
enricoan 63:32ba7c4becfc 781 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 782 if(x_menos == 0){mov_x_menos();
enricoan 63:32ba7c4becfc 783 lcd.cls();
enricoan 63:32ba7c4becfc 784 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 785 else if(x_mais == 0){mov_x_mais();
enricoan 63:32ba7c4becfc 786 lcd.cls();
enricoan 63:32ba7c4becfc 787 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 788 if(tecla=='A'){
enricoan 63:32ba7c4becfc 789 continuar = 0;
amandarm 65:5a759e3014dd 790 pos_x_pega[programa] = coord_x;
Hiroball 70:85daa4aee916 791 lcd.locate(0,1);
enricoan 63:32ba7c4becfc 792 lcd.printf("Posicao de x salva!");
enricoan 63:32ba7c4becfc 793 printf("Posicao X: %4.1f", coord_x);
Hiroball 70:85daa4aee916 794 continuar = 0;
enricoan 63:32ba7c4becfc 795 }
enricoan 63:32ba7c4becfc 796 }
enricoan 32:2a9b30e1e7ab 797 status_tela = "pos_x";}
enricoan 28:c4733814201a 798 else if(tecla == 'B' && status_tela == "novo"){
amandarm 26:4123b9462158 799 funcao_inicio();
enricoan 32:2a9b30e1e7ab 800 status_tela = "inicio";}
enricoan 28:c4733814201a 801 else if(tecla == '1' && status_tela == "salvo"){
amandarm 26:4123b9462158 802 funcao_salvo_agree1();
enricoan 32:2a9b30e1e7ab 803 status_tela = "confirmacao";}
enricoan 28:c4733814201a 804 else if(tecla =='2' && status_tela == "salvo"){
amandarm 26:4123b9462158 805 funcao_salvo_agree1();
enricoan 32:2a9b30e1e7ab 806 status_tela = "confirmacao";}
enricoan 28:c4733814201a 807 else if(tecla =='B' && status_tela == "salvo"){
amandarm 26:4123b9462158 808 funcao_inicio();
enricoan 32:2a9b30e1e7ab 809 status_tela = "inicio";}
amandarm 35:a8256801e9ab 810
enricoan 63:32ba7c4becfc 811 wait(0.5);
enricoan 43:cfc3da0299ff 812 tecla = pega_tecla();
Hiroball 70:85daa4aee916 813
Hiroball 70:85daa4aee916 814 //Ações para a tela forma (para definir o formato do recipiente de pega)
enricoan 28:c4733814201a 815 if(tecla == '1' && status_tela == "forma"){
amandarm 26:4123b9462158 816 funcao_pega_forma_quad();
enricoan 67:ecd4feb40f94 817 tipo_pega[programa] =1;
Hiroball 59:447534f1e4f5 818 tecla = pega_tecla();
Hiroball 59:447534f1e4f5 819 wait(1);
Hiroball 61:be02d7d4e208 820 status_tela ="forma_quad";
Hiroball 59:447534f1e4f5 821 continuar = 1;
Hiroball 59:447534f1e4f5 822 comprimento_quad = 0;
enricoan 63:32ba7c4becfc 823 lcd.locate(0,2);
Hiroball 59:447534f1e4f5 824 while(continuar){
Hiroball 59:447534f1e4f5 825 printf("\n%c",pega_tecla());
Hiroball 59:447534f1e4f5 826 tecla = pega_tecla();
Hiroball 59:447534f1e4f5 827 wait(1);
Hiroball 59:447534f1e4f5 828 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 60:e2c632e8dee1 829 comprimento_quad = multiplicador*comprimento_quad + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 830 lcd.printf("%c",tecla);
Hiroball 59:447534f1e4f5 831 }
Hiroball 59:447534f1e4f5 832 else if(tecla == 'A'){
Hiroball 59:447534f1e4f5 833 continuar = 0;
Hiroball 61:be02d7d4e208 834 printf("Comprimento inputado!");
Hiroball 61:be02d7d4e208 835 printf("\nComprimento: %d", comprimento_quad);
Hiroball 59:447534f1e4f5 836 }
Hiroball 59:447534f1e4f5 837 else if(tecla=='B'){
Hiroball 59:447534f1e4f5 838 funcao_pega_forma();
Hiroball 59:447534f1e4f5 839 status_tela = "forma";
Hiroball 59:447534f1e4f5 840 continuar = 0;}
Hiroball 59:447534f1e4f5 841 }
Hiroball 59:447534f1e4f5 842 }
enricoan 28:c4733814201a 843 else if(tecla == '2' && status_tela == "forma"){
amandarm 26:4123b9462158 844 funcao_pega_forma_red();
enricoan 67:ecd4feb40f94 845 tipo_pega[programa] = 2;
Hiroball 61:be02d7d4e208 846 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 847 wait(1);
Hiroball 61:be02d7d4e208 848 continuar = 1;
Hiroball 61:be02d7d4e208 849 diametro = 0;
Hiroball 61:be02d7d4e208 850 status_tela = "forma_red";
enricoan 63:32ba7c4becfc 851 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 852 while(continuar){
Hiroball 61:be02d7d4e208 853 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 854 wait(1);
Hiroball 61:be02d7d4e208 855 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 856 diametro = multiplicador*diametro + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 857 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 858 }
Hiroball 61:be02d7d4e208 859 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 860 continuar = 0;
Hiroball 61:be02d7d4e208 861 printf("Diametro inputado!");
Hiroball 61:be02d7d4e208 862 printf("Diametro: %d", diametro);
Hiroball 61:be02d7d4e208 863 }
Hiroball 61:be02d7d4e208 864 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 865 funcao_pega_forma();
Hiroball 61:be02d7d4e208 866 status_tela = "forma";
Hiroball 61:be02d7d4e208 867 continuar = 0;}
Hiroball 61:be02d7d4e208 868 }
Hiroball 61:be02d7d4e208 869 }
enricoan 28:c4733814201a 870 else if(tecla == 'B' && status_tela == "forma"){
enricoan 56:e748b9bd5e3c 871 funcao_pega1();
enricoan 56:e748b9bd5e3c 872 wait(1);
enricoan 56:e748b9bd5e3c 873 funcao_pega2();
enricoan 32:2a9b30e1e7ab 874 status_tela = "novo";}
amandarm 35:a8256801e9ab 875
enricoan 43:cfc3da0299ff 876 tecla = pega_tecla();
Hiroball 70:85daa4aee916 877
Hiroball 70:85daa4aee916 878 //Ações para a tela forma_quad, para detalhes sobre o formato quadrado
enricoan 28:c4733814201a 879 if(tecla == 'A' && status_tela == "forma_quad"){
amandarm 26:4123b9462158 880 funcao_pega1();
enricoan 67:ecd4feb40f94 881 medida_lado_pega[programa] = comprimento_quad;
enricoan 58:d573b618f45a 882 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 883 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 884 }
enricoan 58:d573b618f45a 885 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 886 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 887 }
enricoan 29:76d952358896 888 wait(1);
amandarm 26:4123b9462158 889 funcao_pega2();
enricoan 58:d573b618f45a 890 if(volume_pega !=0){
enricoan 58:d573b618f45a 891 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 892 }
enricoan 56:e748b9bd5e3c 893 status_tela ="novo";}
enricoan 28:c4733814201a 894 else if(tecla == 'B' && status_tela == "forma_quad"){
amandarm 26:4123b9462158 895 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 896 status_tela = "forma";}
enricoan 28:c4733814201a 897 else if(tecla == 'A' && status_tela == "forma_red"){
enricoan 67:ecd4feb40f94 898 medida_lado_pega[programa] = diametro;
amandarm 26:4123b9462158 899 funcao_pega1();
enricoan 58:d573b618f45a 900 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 901 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 902 }
enricoan 58:d573b618f45a 903 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 904 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 905 }
enricoan 29:76d952358896 906 wait(1);
amandarm 26:4123b9462158 907 funcao_pega2();
enricoan 58:d573b618f45a 908 if(volume_pega !=0){
enricoan 58:d573b618f45a 909 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 910 }
enricoan 56:e748b9bd5e3c 911 status_tela ="novo";}
enricoan 28:c4733814201a 912 else if(tecla == 'B' && status_tela == "forma_red"){
amandarm 26:4123b9462158 913 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 914 status_tela = "forma";}
enricoan 28:c4733814201a 915 else if(tecla == 'A' && status_tela == "volume"){
amandarm 26:4123b9462158 916 funcao_pega1();
enricoan 67:ecd4feb40f94 917 volume_pega[programa] = 12;
enricoan 58:d573b618f45a 918 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 919 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 920 }
enricoan 58:d573b618f45a 921 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 922 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 923 }
enricoan 29:76d952358896 924 wait(1);
amandarm 26:4123b9462158 925 funcao_pega2();
enricoan 58:d573b618f45a 926 if(volume_pega !=0){
enricoan 58:d573b618f45a 927 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 928 }
enricoan 56:e748b9bd5e3c 929 status_tela ="novo";}
enricoan 28:c4733814201a 930 else if( tecla == 'B' && status_tela == "volume"){
amandarm 26:4123b9462158 931 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 932 status_tela = "forma";}
enricoan 28:c4733814201a 933 else if(tecla == 'A' && status_tela == "pos_x"){
enricoan 29:76d952358896 934 funcao_pega_pos_y(); //colocar programacao que contem o posicionamento do eixo y
enricoan 67:ecd4feb40f94 935 pos_y_pega[programa] = 12.5;
enricoan 63:32ba7c4becfc 936 status_tela = "pos_y";
enricoan 63:32ba7c4becfc 937 }
enricoan 28:c4733814201a 938 else if(tecla == 'B' && status_tela == "pos_x"){
enricoan 63:32ba7c4becfc 939 funcao_pega1();
enricoan 63:32ba7c4becfc 940 wait(1);
enricoan 63:32ba7c4becfc 941 funcao_pega2();
enricoan 63:32ba7c4becfc 942 status_tela = "novo";}
amandarm 35:a8256801e9ab 943
enricoan 63:32ba7c4becfc 944 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 945 wait(0.5);
enricoan 63:32ba7c4becfc 946 //passando direto
Hiroball 70:85daa4aee916 947
Hiroball 70:85daa4aee916 948 //Ações para a tela pos_y
enricoan 28:c4733814201a 949 if(tecla == 'A' && status_tela == "pos_y"){
amandarm 26:4123b9462158 950 funcao_pega1();
enricoan 58:d573b618f45a 951 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 952 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 953 }
enricoan 58:d573b618f45a 954 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 955 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 956 }
enricoan 29:76d952358896 957 wait(1);
amandarm 26:4123b9462158 958 funcao_pega2();
enricoan 58:d573b618f45a 959 if(volume_pega !=0){
enricoan 58:d573b618f45a 960 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 961 }
enricoan 56:e748b9bd5e3c 962 wait(1);
enricoan 56:e748b9bd5e3c 963 status_tela ="novo";}
enricoan 28:c4733814201a 964 else if(tecla == 'B' && status_tela == "pos_y"){
amandarm 26:4123b9462158 965 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 966 status_tela = "forma";}
amandarm 55:4d071fb49f24 967
amandarm 55:4d071fb49f24 968
amandarm 55:4d071fb49f24 969 tecla=pega_tecla();
enricoan 71:c91c96bbed54 970 if(pos_x_pega[programa]!=0 && pos_y_pega[programa]!=0 && medida_lado_pega[programa]!=0 && volume_pega[programa] !=0 && tipo_pega[programa]!=0 && status_tela == "novo"){
amandarm 55:4d071fb49f24 971 funcao_solta1();
amandarm 55:4d071fb49f24 972 wait(3);
amandarm 55:4d071fb49f24 973 funcao_solta2();
amandarm 55:4d071fb49f24 974 wait(3);
enricoan 56:e748b9bd5e3c 975 status_tela="solta";}
amandarm 55:4d071fb49f24 976
amandarm 55:4d071fb49f24 977 tecla=pega_tecla();
Hiroball 70:85daa4aee916 978
Hiroball 70:85daa4aee916 979 //Ações para a tela "solta", para definir informações sobre os solta's
amandarm 55:4d071fb49f24 980 if(tecla == '1' && status_tela == "solta"){
amandarm 55:4d071fb49f24 981 funcao_solta_dimensao();
Hiroball 61:be02d7d4e208 982 continuar = 1;
Hiroball 61:be02d7d4e208 983 diametro_solta = 0;
amandarm 55:4d071fb49f24 984 status_tela="solta_dimensao";
Hiroball 61:be02d7d4e208 985 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 986 while(continuar){
Hiroball 61:be02d7d4e208 987 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 988 wait(1);
Hiroball 61:be02d7d4e208 989 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 990 diametro_solta = multiplicador*diametro_solta + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 991 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 992 }
Hiroball 61:be02d7d4e208 993 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 994 printf("Diametro do solta inputado!");
Hiroball 61:be02d7d4e208 995 printf("Diametro do solta: %d", diametro_solta);
Hiroball 61:be02d7d4e208 996 continuar = 0;
Hiroball 61:be02d7d4e208 997 }
Hiroball 61:be02d7d4e208 998 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 999 funcao_pega_forma();
Hiroball 61:be02d7d4e208 1000 status_tela = "solta";
Hiroball 61:be02d7d4e208 1001 funcao_solta1();
enricoan 71:c91c96bbed54 1002 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1003 lcd.locate(18,2);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1004 }
enricoan 71:c91c96bbed54 1005 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1006 lcd.locate(18,1);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1007 }
Hiroball 61:be02d7d4e208 1008 wait(3);
Hiroball 61:be02d7d4e208 1009 funcao_solta2();
enricoan 71:c91c96bbed54 1010 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1011 lcd.locate(18,1);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1012 }
Hiroball 61:be02d7d4e208 1013 continuar = 0;}
Hiroball 61:be02d7d4e208 1014 }
Hiroball 61:be02d7d4e208 1015 }
Hiroball 61:be02d7d4e208 1016
amandarm 55:4d071fb49f24 1017 else if(tecla == '2' && status_tela == "solta"){
amandarm 55:4d071fb49f24 1018 funcao_solta_vol();
Hiroball 61:be02d7d4e208 1019 volume_solta = 0;
Hiroball 61:be02d7d4e208 1020 continuar = 1;
amandarm 55:4d071fb49f24 1021 status_tela="solta_vol";
Hiroball 61:be02d7d4e208 1022 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 1023 while(continuar){
Hiroball 61:be02d7d4e208 1024 tecla = pega_tecla();
Hiroball 61:be02d7d4e208 1025 wait(1);
Hiroball 61:be02d7d4e208 1026 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 1027 volume_solta = multiplicador*volume_solta + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 1028 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 1029 }
Hiroball 61:be02d7d4e208 1030 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 1031 printf("Volume solta inputado!");
Hiroball 61:be02d7d4e208 1032 printf("Volume: %d", volume_solta);
Hiroball 61:be02d7d4e208 1033 continuar = 0;
Hiroball 61:be02d7d4e208 1034 }
Hiroball 61:be02d7d4e208 1035 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 1036 funcao_pega_forma();
Hiroball 61:be02d7d4e208 1037 status_tela = "solta";
Hiroball 61:be02d7d4e208 1038 continuar = 0;
Hiroball 61:be02d7d4e208 1039 funcao_solta1();
enricoan 71:c91c96bbed54 1040 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1041 lcd.locate(18,2);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1042 }
amandarm 69:8c7e1da9d315 1043 if(dimensao_solta !=0){
amandarm 69:8c7e1da9d315 1044 lcd.locate(18,1);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1045 }
Hiroball 61:be02d7d4e208 1046 wait(3);
Hiroball 61:be02d7d4e208 1047 funcao_solta2();
amandarm 69:8c7e1da9d315 1048 if(pos_y_solta !=0){
amandarm 69:8c7e1da9d315 1049 lcd.locate(18,1);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1050 }
Hiroball 61:be02d7d4e208 1051 }
Hiroball 61:be02d7d4e208 1052 }
amandarm 55:4d071fb49f24 1053 }
amandarm 55:4d071fb49f24 1054 else if(tecla == '3' && status_tela == "solta"){
amandarm 55:4d071fb49f24 1055 funcao_solta_pos_x();
amandarm 55:4d071fb49f24 1056 status_tela="solta_pos_x";
Hiroball 61:be02d7d4e208 1057 continuar = 1;
Hiroball 61:be02d7d4e208 1058 while(continuar){
enricoan 63:32ba7c4becfc 1059 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 1060 if(x_menos == 0){mov_x_menos();
Hiroball 61:be02d7d4e208 1061 lcd.cls();
Hiroball 61:be02d7d4e208 1062 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 1063 else if(x_mais == 0){mov_x_mais();
Hiroball 61:be02d7d4e208 1064 lcd.cls();
Hiroball 61:be02d7d4e208 1065 lcd.printf("X: %4.1f", coord_x);}
Hiroball 61:be02d7d4e208 1066 if(tecla=='A'){
Hiroball 61:be02d7d4e208 1067 continuar = 0;
Hiroball 61:be02d7d4e208 1068 printf("Posicao de x salva!");
Hiroball 61:be02d7d4e208 1069 printf("Posicao X: %4.1f", coord_x);
Hiroball 61:be02d7d4e208 1070 }
amandarm 55:4d071fb49f24 1071 }
Hiroball 61:be02d7d4e208 1072 }
amandarm 55:4d071fb49f24 1073 else if(tecla == 'B' && status_tela == "solta"){
amandarm 55:4d071fb49f24 1074 funcao_pega1();
enricoan 58:d573b618f45a 1075 if(pos_y_pega !=0){
enricoan 58:d573b618f45a 1076 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1077 }
enricoan 58:d573b618f45a 1078 if(medida_lado_pega !=0){
enricoan 58:d573b618f45a 1079 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1080 }
amandarm 55:4d071fb49f24 1081 wait(1);
amandarm 55:4d071fb49f24 1082 funcao_pega2();
enricoan 58:d573b618f45a 1083 if(volume_pega !=0){
enricoan 58:d573b618f45a 1084 lcd.locate(18,0);lcd.printf("OK");
enricoan 58:d573b618f45a 1085 }
enricoan 71:c91c96bbed54 1086 status_tela="novo";
amandarm 55:4d071fb49f24 1087 }
amandarm 55:4d071fb49f24 1088
amandarm 55:4d071fb49f24 1089 tecla=pega_tecla();
Hiroball 70:85daa4aee916 1090 //Ações para a tela solta_dimensao, para definir informações sobre a dimensão do solta
amandarm 55:4d071fb49f24 1091 if(tecla=='A' && status_tela=="solta_dimensao"){
enricoan 67:ecd4feb40f94 1092 dimensao_solta[programa] = 10;
amandarm 55:4d071fb49f24 1093 funcao_solta1();
enricoan 71:c91c96bbed54 1094 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1095 lcd.locate(18,2);lcd.printf("OK");
enricoan 58:d573b618f45a 1096 }
enricoan 71:c91c96bbed54 1097 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1098 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1099 }
amandarm 55:4d071fb49f24 1100 wait(3);
amandarm 55:4d071fb49f24 1101 funcao_solta2();
enricoan 71:c91c96bbed54 1102 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1103 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1104 }
amandarm 55:4d071fb49f24 1105 wait(3);
amandarm 55:4d071fb49f24 1106 status_tela="solta";
amandarm 55:4d071fb49f24 1107 }
amandarm 55:4d071fb49f24 1108 else if(tecla=='B' && status_tela=="solta_dimensao"){
amandarm 55:4d071fb49f24 1109 funcao_solta1();
enricoan 71:c91c96bbed54 1110 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1111 lcd.locate(18,2);lcd.printf("OK");
enricoan 58:d573b618f45a 1112 }
enricoan 71:c91c96bbed54 1113 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1114 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1115 }
amandarm 55:4d071fb49f24 1116 wait(3);
amandarm 55:4d071fb49f24 1117 funcao_solta2();
enricoan 71:c91c96bbed54 1118 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1119 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1120 }
amandarm 55:4d071fb49f24 1121 wait(3);
amandarm 55:4d071fb49f24 1122 status_tela="solta";
amandarm 55:4d071fb49f24 1123 }
amandarm 55:4d071fb49f24 1124 if(tecla=='1' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 1125 funcao_solta_vol_igual();
amandarm 55:4d071fb49f24 1126 status_tela="solta_vol_igual";
amandarm 55:4d071fb49f24 1127 }
amandarm 55:4d071fb49f24 1128 else if(tecla=='2' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 1129 funcao_solta_vol_cada();
amandarm 55:4d071fb49f24 1130 status_tela="solta_vol_dif";
amandarm 55:4d071fb49f24 1131 }
amandarm 55:4d071fb49f24 1132 else if(tecla=='B' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 1133 funcao_solta1();
enricoan 71:c91c96bbed54 1134 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1135 lcd.locate(18,2);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1136 }
amandarm 69:8c7e1da9d315 1137 if(dimensao_solta !=0){
enricoan 58:d573b618f45a 1138 lcd.locate(18,1);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1139 }
amandarm 55:4d071fb49f24 1140 wait(3);
amandarm 55:4d071fb49f24 1141 funcao_solta2();
enricoan 71:c91c96bbed54 1142 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1143 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1144 }
amandarm 55:4d071fb49f24 1145 wait(3);
amandarm 55:4d071fb49f24 1146 status_tela="solta";
amandarm 55:4d071fb49f24 1147 }
enricoan 56:e748b9bd5e3c 1148 if(tecla=='A' && status_tela=="solta_pos_x"){
amandarm 55:4d071fb49f24 1149 funcao_solta_pos_y();
enricoan 67:ecd4feb40f94 1150 pos_x_solta[programa] = 10;
enricoan 56:e748b9bd5e3c 1151 status_tela="solta_pos_y";
amandarm 55:4d071fb49f24 1152 }
enricoan 56:e748b9bd5e3c 1153 else if(tecla=='B' && status_tela=="solta_pos_x"){
amandarm 55:4d071fb49f24 1154 funcao_solta1();
enricoan 71:c91c96bbed54 1155 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1156 lcd.locate(18,2);lcd.printf("OK");
enricoan 58:d573b618f45a 1157 }
enricoan 71:c91c96bbed54 1158 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1159 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1160 }
amandarm 55:4d071fb49f24 1161 wait(3);
amandarm 55:4d071fb49f24 1162 funcao_solta2();
enricoan 71:c91c96bbed54 1163 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1164 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1165 }
amandarm 55:4d071fb49f24 1166 wait(3);
amandarm 55:4d071fb49f24 1167 status_tela="solta";
amandarm 55:4d071fb49f24 1168 }
amandarm 55:4d071fb49f24 1169
amandarm 55:4d071fb49f24 1170 tecla=pega_tecla();
amandarm 55:4d071fb49f24 1171 if(tecla=='A' && status_tela=="solta_vol_igual"){
enricoan 67:ecd4feb40f94 1172 volume_solta_1[programa]=10;
enricoan 67:ecd4feb40f94 1173 volume_solta_2[programa]=10;
enricoan 67:ecd4feb40f94 1174 volume_solta_3[programa]=10;
enricoan 67:ecd4feb40f94 1175 volume_solta_4[programa]=10;
enricoan 67:ecd4feb40f94 1176 volume_solta_5[programa]=10;
enricoan 67:ecd4feb40f94 1177 volume_solta_6[programa]=10;
enricoan 67:ecd4feb40f94 1178 volume_solta_7[programa]=10;
enricoan 67:ecd4feb40f94 1179 volume_solta_8[programa]=10;
enricoan 67:ecd4feb40f94 1180 volume_solta_9[programa]=10;
amandarm 55:4d071fb49f24 1181
amandarm 55:4d071fb49f24 1182 funcao_solta1();
enricoan 71:c91c96bbed54 1183 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1184 lcd.locate(18,2);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1185 }
enricoan 71:c91c96bbed54 1186 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1187 lcd.locate(18,1);lcd.printf("OK");
amandarm 69:8c7e1da9d315 1188 }
amandarm 55:4d071fb49f24 1189 wait(3);
amandarm 55:4d071fb49f24 1190 funcao_solta2();
enricoan 71:c91c96bbed54 1191 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1192 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1193 }
amandarm 55:4d071fb49f24 1194 wait(3);
enricoan 56:e748b9bd5e3c 1195 status_tela="solta";}
amandarm 55:4d071fb49f24 1196 else if(tecla=='B' && status_tela=="solta_vol_igual"){
amandarm 55:4d071fb49f24 1197 funcao_solta_vol();
amandarm 55:4d071fb49f24 1198 status_tela="solta_vol";
amandarm 55:4d071fb49f24 1199 }
amandarm 55:4d071fb49f24 1200 if(tecla=='1' && status_tela=="solta_vol_dif"){
enricoan 71:c91c96bbed54 1201 volume_solta_1[programa]=10;
enricoan 71:c91c96bbed54 1202 lcd.locate(12,0);lcd.printf("20");
amandarm 55:4d071fb49f24 1203 }
amandarm 55:4d071fb49f24 1204 if(tecla=='2' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1205 volume_solta_2[programa]=20;
enricoan 56:e748b9bd5e3c 1206 lcd.locate(15,0);lcd.printf("20");
amandarm 55:4d071fb49f24 1207 }
amandarm 55:4d071fb49f24 1208 if(tecla=='3' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1209 volume_solta_3[programa]=30;
enricoan 56:e748b9bd5e3c 1210 lcd.locate(18,0);lcd.printf("30");
amandarm 55:4d071fb49f24 1211 }
amandarm 55:4d071fb49f24 1212 if(tecla=='4' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1213 volume_solta_4[programa]=40;
enricoan 56:e748b9bd5e3c 1214 lcd.locate(12,1);lcd.printf("40");
amandarm 55:4d071fb49f24 1215 }
amandarm 55:4d071fb49f24 1216 if(tecla=='5' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1217 volume_solta_5[programa]=50;
enricoan 56:e748b9bd5e3c 1218 lcd.locate(15,1);lcd.printf("50");
amandarm 55:4d071fb49f24 1219 }
amandarm 55:4d071fb49f24 1220 if(tecla=='6' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1221 volume_solta_6[programa]=60;
enricoan 56:e748b9bd5e3c 1222 lcd.locate(18,1);lcd.printf("60");
amandarm 55:4d071fb49f24 1223 }
amandarm 55:4d071fb49f24 1224 if(tecla=='7' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1225 volume_solta_7[programa]=70;
enricoan 56:e748b9bd5e3c 1226 lcd.locate(12,2);lcd.printf("70");
amandarm 55:4d071fb49f24 1227 }
amandarm 55:4d071fb49f24 1228 if(tecla=='8' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1229 volume_solta_8[programa]=80;
enricoan 56:e748b9bd5e3c 1230 lcd.locate(15,2);lcd.printf("80");
amandarm 55:4d071fb49f24 1231 }
amandarm 55:4d071fb49f24 1232 if(tecla=='9' && status_tela=="solta_vol_dif"){
enricoan 67:ecd4feb40f94 1233 volume_solta_9[programa]=90;
enricoan 56:e748b9bd5e3c 1234 lcd.locate(18,2);lcd.printf("90");
amandarm 55:4d071fb49f24 1235 }
amandarm 55:4d071fb49f24 1236 if(tecla=='A' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 1237 funcao_solta1();
enricoan 71:c91c96bbed54 1238 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1239 lcd.locate(18,2);lcd.printf("OK");
enricoan 58:d573b618f45a 1240 }
enricoan 71:c91c96bbed54 1241 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1242 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1243 }
amandarm 55:4d071fb49f24 1244 wait(3);
amandarm 55:4d071fb49f24 1245 funcao_solta2();
amandarm 69:8c7e1da9d315 1246 if(pos_y_solta !=0){
amandarm 69:8c7e1da9d315 1247 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1248 }
amandarm 55:4d071fb49f24 1249 wait(3);
amandarm 55:4d071fb49f24 1250 status_tela="solta";
amandarm 55:4d071fb49f24 1251 }
amandarm 55:4d071fb49f24 1252 else if(tecla=='B' && status_tela=="solta_vol_dif"){
amandarm 55:4d071fb49f24 1253 funcao_solta_vol();
amandarm 55:4d071fb49f24 1254 status_tela="solta_vol";
amandarm 55:4d071fb49f24 1255 }
enricoan 56:e748b9bd5e3c 1256 if(tecla=='A' && status_tela=="solta_pos_y"){
amandarm 55:4d071fb49f24 1257 funcao_solta1();
enricoan 71:c91c96bbed54 1258 if(volume_solta_9[programa] !=0){
amandarm 69:8c7e1da9d315 1259 lcd.locate(18,2);lcd.printf("OK");
enricoan 58:d573b618f45a 1260 }
enricoan 71:c91c96bbed54 1261 if(dimensao_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1262 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1263 }
amandarm 55:4d071fb49f24 1264 wait(3);
amandarm 55:4d071fb49f24 1265 funcao_solta2();
enricoan 71:c91c96bbed54 1266 if(pos_y_solta[programa] !=0){
amandarm 69:8c7e1da9d315 1267 lcd.locate(18,1);lcd.printf("OK");
enricoan 58:d573b618f45a 1268 }
enricoan 67:ecd4feb40f94 1269 pos_y_solta[programa] = 10;
amandarm 55:4d071fb49f24 1270 wait(3);
amandarm 55:4d071fb49f24 1271 status_tela="solta";
amandarm 55:4d071fb49f24 1272 }
enricoan 56:e748b9bd5e3c 1273 else if(tecla=='B' && status_tela=="solta_pos_y"){
amandarm 55:4d071fb49f24 1274 funcao_solta1();
enricoan 71:c91c96bbed54 1275 if(volume_solta_9[programa] !=0){lcd.locate(18,2);lcd.printf("OK");}
enricoan 71:c91c96bbed54 1276 if(dimensao_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
amandarm 55:4d071fb49f24 1277 funcao_solta2();
enricoan 71:c91c96bbed54 1278 if(pos_y_solta[programa] !=0){lcd.locate(18,1);lcd.printf("OK");}
enricoan 67:ecd4feb40f94 1279 pos_y_solta[programa] = 10;
amandarm 55:4d071fb49f24 1280 wait(3);
enricoan 71:c91c96bbed54 1281 status_tela="solta";}
Hiroball 72:aa3902facc8c 1282 //Ações para a tela acompanhamento (execução do programa)
Hiroball 72:aa3902facc8c 1283 //MAtriz 3x3 (6x6cm)
Hiroball 72:aa3902facc8c 1284 if(pos_x_solta[programa]!=0 && pos_y_solta[programa]!=0 && volume_solta_9[programa]!=0 && dimensao_solta[programa]!=0 && status_tela[programa]=='solta'){
Hiroball 72:aa3902facc8c 1285 funcao_acomp();
Hiroball 72:aa3902facc8c 1286 status_tela="acompanhamento";
Hiroball 72:aa3902facc8c 1287 int cont_pipeta = 0;
Hiroball 72:aa3902facc8c 1288 float altura;
Hiroball 72:aa3902facc8c 1289
Hiroball 72:aa3902facc8c 1290 float pos1[2] = {pos_x_solta[programa], pos_y_solta[programa]} ;
Hiroball 72:aa3902facc8c 1291 float pos2[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]} ;
Hiroball 72:aa3902facc8c 1292 float pos3[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]} ;
Hiroball 72:aa3902facc8c 1293 float pos4[2] = {pos_x_solta[programa], pos_y_solta[programa]+2} ;
Hiroball 72:aa3902facc8c 1294 float pos5[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+2} ;
Hiroball 72:aa3902facc8c 1295 float pos6[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+2} ;
Hiroball 72:aa3902facc8c 1296 float pos7[2] = {pos_x_solta[programa], pos_y_solta[programa]+4} ;
Hiroball 72:aa3902facc8c 1297 float pos8[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+4} ;
Hiroball 72:aa3902facc8c 1298 float pos9[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+4};
Hiroball 72:aa3902facc8c 1299
Hiroball 72:aa3902facc8c 1300 //Calcular a altura do pega com base no tipo do pega
Hiroball 72:aa3902facc8c 1301 for(int i; i<volume_solta_1[programa];i++){
Hiroball 72:aa3902facc8c 1302 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1303 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1304 wait(1);
Hiroball 72:aa3902facc8c 1305 go_to_z(altura);
Hiroball 72:aa3902facc8c 1306 wait(1);
Hiroball 72:aa3902facc8c 1307 pipeta = 0;
Hiroball 72:aa3902facc8c 1308 wait(1);
Hiroball 72:aa3902facc8c 1309 pipeta = 1;
Hiroball 72:aa3902facc8c 1310 wait(1);
Hiroball 72:aa3902facc8c 1311 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1312 wait(1);
Hiroball 72:aa3902facc8c 1313 go_to_posicao(pos1[0],pos1[1]);
Hiroball 72:aa3902facc8c 1314 wait(1);
Hiroball 72:aa3902facc8c 1315 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1316 wait(1);
Hiroball 72:aa3902facc8c 1317 pipeta = 0;
Hiroball 72:aa3902facc8c 1318 wait(1);
Hiroball 72:aa3902facc8c 1319 pipeta = 1;
Hiroball 72:aa3902facc8c 1320 wait(1);
Hiroball 72:aa3902facc8c 1321 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1322 wait(1);
Hiroball 72:aa3902facc8c 1323 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1324 }
Hiroball 72:aa3902facc8c 1325 for(int i; i<volume_solta_2[programa];i++){
Hiroball 72:aa3902facc8c 1326 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1327 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1328 wait(1);
Hiroball 72:aa3902facc8c 1329 go_to_z(altura);
Hiroball 72:aa3902facc8c 1330 wait(1);
Hiroball 72:aa3902facc8c 1331 pipeta = 0;
Hiroball 72:aa3902facc8c 1332 wait(1);
Hiroball 72:aa3902facc8c 1333 pipeta = 1;
Hiroball 72:aa3902facc8c 1334 wait(1);
Hiroball 72:aa3902facc8c 1335 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1336 wait(1);
Hiroball 72:aa3902facc8c 1337 go_to_posicao(pos2[0],pos2[1]);
Hiroball 72:aa3902facc8c 1338 wait(1);
Hiroball 72:aa3902facc8c 1339 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1340 wait(1);
Hiroball 72:aa3902facc8c 1341 pipeta = 0;
Hiroball 72:aa3902facc8c 1342 wait(1);
Hiroball 72:aa3902facc8c 1343 pipeta = 1;
Hiroball 72:aa3902facc8c 1344 wait(1);
Hiroball 72:aa3902facc8c 1345 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1346 wait(1);
Hiroball 72:aa3902facc8c 1347 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1348 }
Hiroball 72:aa3902facc8c 1349 for(int i; i<volume_solta_3[programa];i++){
Hiroball 72:aa3902facc8c 1350 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1351 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1352 wait(1);
Hiroball 72:aa3902facc8c 1353 go_to_z(altura);
Hiroball 72:aa3902facc8c 1354 wait(1);
Hiroball 72:aa3902facc8c 1355 pipeta = 0;
Hiroball 72:aa3902facc8c 1356 wait(1);
Hiroball 72:aa3902facc8c 1357 pipeta = 1;
Hiroball 72:aa3902facc8c 1358 wait(1);
Hiroball 72:aa3902facc8c 1359 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1360 wait(1);
Hiroball 72:aa3902facc8c 1361 go_to_posicao(pos3[0],pos3[1]);
Hiroball 72:aa3902facc8c 1362 wait(1);
Hiroball 72:aa3902facc8c 1363 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1364 wait(1);
Hiroball 72:aa3902facc8c 1365 pipeta = 0;
Hiroball 72:aa3902facc8c 1366 wait(1);
Hiroball 72:aa3902facc8c 1367 pipeta = 1;
Hiroball 72:aa3902facc8c 1368 wait(1);
Hiroball 72:aa3902facc8c 1369 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1370 wait(1);
Hiroball 72:aa3902facc8c 1371 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1372
Hiroball 72:aa3902facc8c 1373 }
Hiroball 72:aa3902facc8c 1374 for(int i; i<volume_solta_4[programa];i++){
Hiroball 72:aa3902facc8c 1375 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1376 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1377 go_to_z(altura);
Hiroball 72:aa3902facc8c 1378 pipeta = 0;
Hiroball 72:aa3902facc8c 1379 wait(1);
Hiroball 72:aa3902facc8c 1380 pipeta = 1;
Hiroball 72:aa3902facc8c 1381 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1382 go_to_posicao(pos4[0],pos4[1]);
Hiroball 72:aa3902facc8c 1383 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1384 pipeta = 0;
Hiroball 72:aa3902facc8c 1385 wait(1);
Hiroball 72:aa3902facc8c 1386 pipeta = 1;
Hiroball 72:aa3902facc8c 1387 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1388 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1389 }
Hiroball 72:aa3902facc8c 1390 for(int i; i<volume_solta_5[programa];i++){
Hiroball 72:aa3902facc8c 1391 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1392 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1393 go_to_z(altura);
Hiroball 72:aa3902facc8c 1394 pipeta = 0;
Hiroball 72:aa3902facc8c 1395 wait(1);
Hiroball 72:aa3902facc8c 1396 pipeta = 1;
Hiroball 72:aa3902facc8c 1397 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1398 go_to_posicao(pos5[0],pos5[1]);
Hiroball 72:aa3902facc8c 1399 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1400 pipeta = 0;
Hiroball 72:aa3902facc8c 1401 wait(1);
Hiroball 72:aa3902facc8c 1402 pipeta = 1;
Hiroball 72:aa3902facc8c 1403 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1404 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1405
Hiroball 72:aa3902facc8c 1406 }
Hiroball 72:aa3902facc8c 1407 for(int i; i<volume_solta_6[programa];i++){
Hiroball 72:aa3902facc8c 1408 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1409 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1410 go_to_z(altura);
Hiroball 72:aa3902facc8c 1411 pipeta = 0;
Hiroball 72:aa3902facc8c 1412 wait(1);
Hiroball 72:aa3902facc8c 1413 pipeta = 1;
Hiroball 72:aa3902facc8c 1414 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1415 go_to_posicao(pos6[0],pos6[1]);
Hiroball 72:aa3902facc8c 1416 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1417 pipeta = 0;
Hiroball 72:aa3902facc8c 1418 wait(1);
Hiroball 72:aa3902facc8c 1419 pipeta = 1;
Hiroball 72:aa3902facc8c 1420 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1421 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1422
Hiroball 72:aa3902facc8c 1423 }
Hiroball 72:aa3902facc8c 1424 for(int i; i<volume_solta_7[programa];i++){
Hiroball 72:aa3902facc8c 1425 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1426 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1427 go_to_z(altura);
Hiroball 72:aa3902facc8c 1428 pipeta = 0;
Hiroball 72:aa3902facc8c 1429 wait(1);
Hiroball 72:aa3902facc8c 1430 pipeta = 1;
Hiroball 72:aa3902facc8c 1431 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1432 go_to_posicao(pos7[0],pos7[1]);
Hiroball 72:aa3902facc8c 1433 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1434 pipeta = 0;
Hiroball 72:aa3902facc8c 1435 wait(1);
Hiroball 72:aa3902facc8c 1436 pipeta = 1;
Hiroball 72:aa3902facc8c 1437 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1438 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1439
Hiroball 72:aa3902facc8c 1440 }
Hiroball 72:aa3902facc8c 1441 for(int i; i<volume_solta_8[programa];i++){
Hiroball 72:aa3902facc8c 1442 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1443 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1444 go_to_z(altura);
Hiroball 72:aa3902facc8c 1445 pipeta = 0;
Hiroball 72:aa3902facc8c 1446 wait(1);
Hiroball 72:aa3902facc8c 1447 pipeta = 1;
Hiroball 72:aa3902facc8c 1448 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1449 go_to_posicao(pos8[0],pos8[1]);
Hiroball 72:aa3902facc8c 1450 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1451 pipeta = 0;
Hiroball 72:aa3902facc8c 1452 wait(1);
Hiroball 72:aa3902facc8c 1453 pipeta = 1;
Hiroball 72:aa3902facc8c 1454 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1455 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1456 }
Hiroball 72:aa3902facc8c 1457 for(int i; i<volume_solta_9[programa];i++){
Hiroball 72:aa3902facc8c 1458 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1459 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1460 go_to_z(altura);
Hiroball 72:aa3902facc8c 1461 pipeta = 0;
Hiroball 72:aa3902facc8c 1462 wait(1);
Hiroball 72:aa3902facc8c 1463 pipeta = 1;
Hiroball 72:aa3902facc8c 1464 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1465 go_to_posicao(pos9[0],pos9[1]);
Hiroball 72:aa3902facc8c 1466 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1467 pipeta = 0;
Hiroball 72:aa3902facc8c 1468 wait(1);
Hiroball 72:aa3902facc8c 1469 pipeta = 1;
Hiroball 72:aa3902facc8c 1470 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1471 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1472 }
Hiroball 72:aa3902facc8c 1473
Hiroball 72:aa3902facc8c 1474 }
amandarm 55:4d071fb49f24 1475 }
enricoan 71:c91c96bbed54 1476 }