testando

Dependencies:   mbed TextLCD2

Committer:
Hiroball
Date:
Wed Jun 10 01:29:38 2020 +0000
Revision:
99:409a77673f2d
Parent:
98:712ac6d10522
Child:
100:bbaf114eab93
Child:
102:d8e9cb7f3725
Funcao de teste: exec e solta;

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 94:0b6ac1cdab84 10 //local para a declaracao de variaveis
enricoan 30:179ceb3e5791 11 float t_motor = 0.002; //delay entre o acionamento de uma bobina do motor e a outra
enricoan 89:bc51c6bbe2a6 12 float t_teclado = 0.15; //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;
enricoan 98:712ac6d10522 20 float normal_z = 10; //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 90:388071e54291 25 string est_ihm = "novo";
enricoan 29:76d952358896 26 //pinos usados pelos botoes de fim de curso
enricoan 87:6bba4ab5a623 27 InterruptIn fdc_x(PC_10);
enricoan 87:6bba4ab5a623 28 InterruptIn fdc_y(PC_11);
enricoan 87:6bba4ab5a623 29 InterruptIn 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 78:e1dfd20407fc 34 //pinos do rele, saida digital para acionar o rele se necessario
enricoan 78:e1dfd20407fc 35 //dada uma entrada no pino da emergencia ou um comando de acionamento da pipeta
enricoan 74:53c345d557e8 36 DigitalOut pipeta(PC_5, 1);
enricoan 74:53c345d557e8 37 DigitalOut rele2(PB_9, 1);
amandarm 25:b0db528c1985 38
enricoan 29:76d952358896 39 //botoes para movimentacao eixo a eixo
enricoan 10:4f49e9859535 40 DigitalIn x_mais(PA_0);
enricoan 10:4f49e9859535 41 DigitalIn x_menos(PA_1);
enricoan 10:4f49e9859535 42 DigitalIn y_mais(PC_0);
enricoan 10:4f49e9859535 43 DigitalIn y_menos(PC_1);
enricoan 10:4f49e9859535 44 DigitalIn z_mais(PC_2);
enricoan 10:4f49e9859535 45 DigitalIn z_menos(PC_3);
enricoan 10:4f49e9859535 46
enricoan 16:70baa0057a76 47 //pinos do teclado
enricoan 40:39263f4cf8b7 48 DigitalIn b(PC_4);
enricoan 40:39263f4cf8b7 49 DigitalIn a(PB_0);
enricoan 40:39263f4cf8b7 50 DigitalIn t_0(PC_13);
enricoan 40:39263f4cf8b7 51 DigitalIn t_1(PB_7);
enricoan 40:39263f4cf8b7 52 DigitalIn t_2(PD_2);
enricoan 41:9709891f77c5 53 DigitalIn t_3(PA_4);
enricoan 40:39263f4cf8b7 54 DigitalIn t_4(PB_12);
enricoan 40:39263f4cf8b7 55 DigitalIn t_5(PB_15);
enricoan 41:9709891f77c5 56 DigitalIn t_6(PA_7);
enricoan 40:39263f4cf8b7 57 DigitalIn t_7(PB_14);
enricoan 40:39263f4cf8b7 58 DigitalIn t_8(PA_6);
enricoan 40:39263f4cf8b7 59 DigitalIn t_9(PB_13);
enricoan 16:70baa0057a76 60
enricoan 10:4f49e9859535 61 //pinos de saída para os motores
enricoan 10:4f49e9859535 62 //eixo x
Hiroball 11:dc557e461dfd 63 BusOut eixox(PA_15,PA_14,PA_13,PA_12);
enricoan 10:4f49e9859535 64 //eixo y
Hiroball 11:dc557e461dfd 65 BusOut eixoy(PA_11,PA_10,PB_2,PB_1);
enricoan 10:4f49e9859535 66 //eixo z
Hiroball 11:dc557e461dfd 67 BusOut eixoz(PC_9,PC_8,PB_8,PC_6);
enricoan 10:4f49e9859535 68
enricoan 42:a6fbbe536814 69 //funcao para receber inputs do teclado
enricoan 43:cfc3da0299ff 70 char pega_tecla(){
enricoan 43:cfc3da0299ff 71 if (b == 0)return ('A');
enricoan 43:cfc3da0299ff 72 if (a == 0)return('B');
enricoan 43:cfc3da0299ff 73 if (t_0 == 0)return('0');
enricoan 43:cfc3da0299ff 74 if (t_1 == 0)return('1');
enricoan 43:cfc3da0299ff 75 if (t_2 == 0)return('2');
enricoan 43:cfc3da0299ff 76 if (t_3 == 0)return('3');
enricoan 43:cfc3da0299ff 77 if (t_4 == 0)return('4');
enricoan 43:cfc3da0299ff 78 if (t_5 == 0)return('5');
enricoan 43:cfc3da0299ff 79 if (t_6 == 0)return('6');
enricoan 43:cfc3da0299ff 80 if (t_7 == 0)return('7');
enricoan 43:cfc3da0299ff 81 if (t_8 == 0)return('8');
enricoan 54:74a215a1f76b 82 if (t_9 == 0)return('9');
enricoan 54:74a215a1f76b 83 return('k');}
enricoan 87:6bba4ab5a623 84
enricoan 87:6bba4ab5a623 85 //funcoes de fim de curso por interrupção
enricoan 87:6bba4ab5a623 86 void lim_x(){for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 87:6bba4ab5a623 87 eixox = parado[i];wait(t_motor);
enricoan 87:6bba4ab5a623 88 lcd.cls();lcd.printf("Limite de x atingido");
enricoan 87:6bba4ab5a623 89 lcd.locate(0,2);lcd.printf("Pressione 0 para continuar");
enricoan 87:6bba4ab5a623 90 est_x = 1;}}
enricoan 87:6bba4ab5a623 91
enricoan 87:6bba4ab5a623 92 void lim_y(){for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 87:6bba4ab5a623 93 eixoy = parado[i];wait(t_motor);
enricoan 87:6bba4ab5a623 94 lcd.cls();lcd.printf("Limite de y atingido");
enricoan 87:6bba4ab5a623 95 lcd.locate(0,2);lcd.printf("Pressione 0 para continuar");
enricoan 87:6bba4ab5a623 96 est_y = 1;}}
enricoan 87:6bba4ab5a623 97
enricoan 87:6bba4ab5a623 98 void lim_z(){for(int i = 0; i < 4; i++){TextLCD lcd(D4, D5, D6, D7, D8, D9);
enricoan 87:6bba4ab5a623 99 eixoz = parado[i];wait(t_motor);
enricoan 87:6bba4ab5a623 100 lcd.cls();lcd.printf("Limite de z atingido");
enricoan 87:6bba4ab5a623 101 lcd.locate(0,2);lcd.printf("Pressione 0 para continuar");
enricoan 87:6bba4ab5a623 102 est_z = 1;}}
enricoan 87:6bba4ab5a623 103 void reseta_eixo(){est_x = 0;est_y = 0;est_z = 0;}
enricoan 42:a6fbbe536814 104
enricoan 32:2a9b30e1e7ab 105 //funcao de movimentacao dos motores
enricoan 63:32ba7c4becfc 106 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 107 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 108 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 109 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 110 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 111 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 112
Hiroball 72:aa3902facc8c 113 void go_to_posicao(float posicao_x, float posicao_y){
Hiroball 72:aa3902facc8c 114 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 115 mov_x_mais();
Hiroball 72:aa3902facc8c 116 }
Hiroball 72:aa3902facc8c 117 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 118 mov_x_menos();
Hiroball 72:aa3902facc8c 119 }
Hiroball 72:aa3902facc8c 120 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 121 mov_y_mais();
Hiroball 72:aa3902facc8c 122 }
Hiroball 72:aa3902facc8c 123 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 124 mov_y_menos();
Hiroball 72:aa3902facc8c 125 };
Hiroball 72:aa3902facc8c 126 }
Hiroball 72:aa3902facc8c 127
Hiroball 72:aa3902facc8c 128 float calcula_altura(int forma_do_pega, int dimensao, float v, int contador){
Hiroball 72:aa3902facc8c 129 if(forma_do_pega==1){//quad
Hiroball 72:aa3902facc8c 130 return (v-contador)/(dimensao*dimensao)*0.001-4;
Hiroball 72:aa3902facc8c 131 }
Hiroball 72:aa3902facc8c 132 else if(forma_do_pega==2){//red
Hiroball 72:aa3902facc8c 133 return ((v-contador)/(PI*(dimensao/2)*(dimensao/2))*0.001-4);
Hiroball 72:aa3902facc8c 134 };
Hiroball 72:aa3902facc8c 135 }
Hiroball 72:aa3902facc8c 136
Hiroball 72:aa3902facc8c 137 void go_to_z(float posicao_z){
Hiroball 72:aa3902facc8c 138 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 139 mov_z_mais();
Hiroball 72:aa3902facc8c 140 }
Hiroball 72:aa3902facc8c 141 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 142 mov_z_menos();
Hiroball 72:aa3902facc8c 143 }
Hiroball 72:aa3902facc8c 144 }
Hiroball 72:aa3902facc8c 145
Hiroball 99:409a77673f2d 146 //Funcao de colocar;modificar volume no solta
Hiroball 99:409a77673f2d 147 void modifica_solta(bool condicao, int volume, int posicao_cursor_0, int posicao_cursor_1, int volume_do_solta){
Hiroball 99:409a77673f2d 148 TextLCD lcd(D4, D5, D6, D7, D8, D9);
Hiroball 99:409a77673f2d 149 while(condicao){ // Pega o valor imputado pelo usuário
Hiroball 99:409a77673f2d 150 tecla = pega_tecla();
Hiroball 99:409a77673f2d 151 wait(t_teclado);
Hiroball 99:409a77673f2d 152 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 99:409a77673f2d 153 if(volume*10<100)
Hiroball 99:409a77673f2d 154 {
Hiroball 99:409a77673f2d 155 volume =10*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
Hiroball 99:409a77673f2d 156 lcd.printf("%c", tecla);
Hiroball 99:409a77673f2d 157 }
Hiroball 99:409a77673f2d 158 else
Hiroball 99:409a77673f2d 159 {
Hiroball 99:409a77673f2d 160 volume = 0;
Hiroball 99:409a77673f2d 161 lcd.locate(posicao_cursor_0,posicao_cursor_1);
Hiroball 99:409a77673f2d 162 }
Hiroball 99:409a77673f2d 163 }
Hiroball 99:409a77673f2d 164 else if(tecla == 'A'){
Hiroball 99:409a77673f2d 165 tecla = 'k';
Hiroball 99:409a77673f2d 166 condicao = 0;
Hiroball 99:409a77673f2d 167 volume_do_solta = volume;
Hiroball 99:409a77673f2d 168 printf("SAIUU");
Hiroball 99:409a77673f2d 169 }
Hiroball 99:409a77673f2d 170 }
Hiroball 99:409a77673f2d 171 }
Hiroball 99:409a77673f2d 172
Hiroball 99:409a77673f2d 173 //Funcao da torina de execucao
Hiroball 99:409a77673f2d 174 void rotina_pino(float volume_solta, int tipo_do_pega, float medida_do_pega, float volume_do_pega, int contador, float pos_pino_x, float pos_pino_y){
Hiroball 99:409a77673f2d 175 printf("Entrou na funcao de exec!");
Hiroball 99:409a77673f2d 176 for(int i; i < volume_solta; i++){
Hiroball 99:409a77673f2d 177 float altura = calcula_altura(tipo_do_pega,medida_do_pega, volume_do_pega, contador);
Hiroball 99:409a77673f2d 178 go_to_z(altura);
Hiroball 99:409a77673f2d 179 pipeta = 0;
Hiroball 99:409a77673f2d 180 wait(1);
Hiroball 99:409a77673f2d 181 pipeta = 1;
Hiroball 99:409a77673f2d 182 go_to_z(normal_z);
Hiroball 99:409a77673f2d 183 go_to_posicao(pos_pino_x,pos_pino_y);
Hiroball 99:409a77673f2d 184 go_to_z(altura_solta);
Hiroball 99:409a77673f2d 185 pipeta = 0;
Hiroball 99:409a77673f2d 186 wait(1);
Hiroball 99:409a77673f2d 187 pipeta = 1;
Hiroball 99:409a77673f2d 188 go_to_z(normal_z);
Hiroball 99:409a77673f2d 189 contador+=1;
Hiroball 99:409a77673f2d 190 }
Hiroball 99:409a77673f2d 191 printf("SAIU EXECC!!");
Hiroball 99:409a77673f2d 192 }
Hiroball 99:409a77673f2d 193
Hiroball 81:aa3f095fd82a 194 //Função que troca de tela
Hiroball 85:10dec681c389 195 void troca_tela(bool cond, void telas1(), void telas2(), float valort11, float valort12, float valort21, float valort22, int argumento){
Hiroball 81:aa3f095fd82a 196 TextLCD lcd(D4, D5, D6, D7, D8, D9);
Hiroball 99:409a77673f2d 197 printf("Entrou funcao modifica solta!");
Hiroball 81:aa3f095fd82a 198 while(cond){
Hiroball 85:10dec681c389 199 telas1();
Hiroball 85:10dec681c389 200 if(argumento == 1){
Hiroball 85:10dec681c389 201 if(valort11 !=0){
Hiroball 85:10dec681c389 202 lcd.locate(18,1);
Hiroball 85:10dec681c389 203 lcd.printf("OK");
Hiroball 85:10dec681c389 204 }
Hiroball 85:10dec681c389 205 }
Hiroball 85:10dec681c389 206 else if(argumento >= 2){
Hiroball 85:10dec681c389 207 if(valort11!=0){
Hiroball 85:10dec681c389 208 lcd.locate(18,1);lcd.printf("OK");
Hiroball 85:10dec681c389 209 }
Hiroball 85:10dec681c389 210 if(valort12 !=0){
Hiroball 85:10dec681c389 211 lcd.locate(18,2);lcd.printf("OK");
Hiroball 85:10dec681c389 212 }
Hiroball 85:10dec681c389 213 }
Hiroball 81:aa3f095fd82a 214 wait(2);
enricoan 94:0b6ac1cdab84 215 tecla = pega_tecla();
enricoan 94:0b6ac1cdab84 216 if(tecla!='k'){
enricoan 94:0b6ac1cdab84 217 printf("entrou no if");
enricoan 94:0b6ac1cdab84 218 cond = 0;
enricoan 94:0b6ac1cdab84 219 }
Hiroball 85:10dec681c389 220 telas2();
Hiroball 85:10dec681c389 221 if(argumento == 3){
Hiroball 85:10dec681c389 222 if(valort21!=0){
Hiroball 85:10dec681c389 223 lcd.locate(18,1);lcd.printf("OK");
Hiroball 85:10dec681c389 224 }
Hiroball 85:10dec681c389 225 }
Hiroball 85:10dec681c389 226 else if(argumento == 4){
Hiroball 85:10dec681c389 227 if(valort21!=0){
Hiroball 85:10dec681c389 228 lcd.locate(18,1);lcd.printf("OK");
Hiroball 85:10dec681c389 229 }
Hiroball 85:10dec681c389 230 if(valort22 !=0){
Hiroball 85:10dec681c389 231 lcd.locate(18,2);lcd.printf("OK");
Hiroball 85:10dec681c389 232 }
Hiroball 81:aa3f095fd82a 233 }
Hiroball 81:aa3f095fd82a 234 wait(2);
Hiroball 81:aa3f095fd82a 235 tecla = pega_tecla();
Hiroball 81:aa3f095fd82a 236 if(tecla!='k'){
Hiroball 81:aa3f095fd82a 237 printf("entrou no if");
Hiroball 81:aa3f095fd82a 238 cond = 0;
Hiroball 81:aa3f095fd82a 239 }
Hiroball 81:aa3f095fd82a 240 };
Hiroball 81:aa3f095fd82a 241 }
enricoan 78:e1dfd20407fc 242 //Funcao que será chamada na interrupcao da queda do botao de emergencia
enricoan 32:2a9b30e1e7ab 243 void emergencia(){TextLCD lcd(D4, D5, D6, D7, D8, D9);
amandarm 79:b9e2d020240c 244 rele2 = 0; //desligamento eletrico dos motores
enricoan 78:e1dfd20407fc 245 eixox = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas
enricoan 78:e1dfd20407fc 246 eixoy = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas
enricoan 78:e1dfd20407fc 247 eixoz = 0b0000; //desligamento do motor do eixo x a partir do zeramento do estado de todas as suas bobinas
enricoan 78:e1dfd20407fc 248 lcd.cls();lcd.printf("EMERGENCIA ACIONADA"); //aviso da situacao de emergencia da maquina
enricoan 74:53c345d557e8 249 lcd.locate(0,1);lcd.printf("Desarme o botao");
enricoan 74:53c345d557e8 250 lcd.locate(0,2);lcd.printf("e pressione B para");
enricoan 74:53c345d557e8 251 lcd.locate(0,3);lcd.printf("prosseguir");
enricoan 74:53c345d557e8 252 wait(1);}
enricoan 56:e748b9bd5e3c 253
enricoan 78:e1dfd20407fc 254 //Funcao de zeramento, chamada assim que a maquina liga e impede que o codigo entre no while(1) enquanto nao for 100% executada.
enricoan 78:e1dfd20407fc 255 //Ela aciona os motores ate que o fim de curso seja atingido e pressionado, além de zerar todas as coordenadas dos eixos quando os fins de curso são acionados.
amandarm 27:45f8125a0c0b 256 void zeramento(){
amandarm 27:45f8125a0c0b 257 while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}}
amandarm 27:45f8125a0c0b 258 while (fdc_y != 0){for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);est_y = 1;}}
enricoan 54:74a215a1f76b 259 while (fdc_z != 0){for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);est_z = 1;}}}
enricoan 29:76d952358896 260
enricoan 54:74a215a1f76b 261 //Variaveis para operacao IHM
enricoan 29:76d952358896 262 using std::string;
enricoan 78:e1dfd20407fc 263 string status_tela = "zeramento"; //variavel para guardar o estado atual da tela e situar o programa, juntamente aos botoes apertados, a respeito de onde ele está.
enricoan 78:e1dfd20407fc 264 //Neste sentido, ao longo de todo o programa, esta variavel sera usada seguindo a lógica de "se estou na tela x e o usuario apertou o botao
enricoan 78:e1dfd20407fc 265 //y, vou para a tela z"
enricoan 78:e1dfd20407fc 266 int programa = 0; //A variável programa remete a que programa salvo o usuário deseja acessar
enricoan 29:76d952358896 267
enricoan 78:e1dfd20407fc 268 //Informações sobre o pega a serem armazenadas no array do programa que está sendo construido pelo usuário
amandarm 65:5a759e3014dd 269 float pos_x_pega[30];
amandarm 65:5a759e3014dd 270 float pos_y_pega [30];
amandarm 65:5a759e3014dd 271 float medida_lado_pega[30];
amandarm 65:5a759e3014dd 272 float volume_pega[30];
amandarm 65:5a759e3014dd 273 int tipo_pega[30];
amandarm 79:b9e2d020240c 274 int nome_programa[30];
amandarm 82:b8b6374ce1e6 275
amandarm 79:b9e2d020240c 276 //parametros que são de confirmação
amandarm 79:b9e2d020240c 277 int confirmacao_vol_solta[30];
amandarm 79:b9e2d020240c 278 int confirmacao_vol_pega[30];
amandarm 79:b9e2d020240c 279 int confirmacao_pos_solta[30];
amandarm 79:b9e2d020240c 280 int confirmacao_pos_pega[30];
amandarm 55:4d071fb49f24 281
enricoan 78:e1dfd20407fc 282 //Informações sobre os solta's a serem armazenadas no array do programa que está sendo construido pelo usuário
amandarm 65:5a759e3014dd 283 float dimensao_solta[30];
amandarm 65:5a759e3014dd 284 float volume_solta_1[30];
amandarm 65:5a759e3014dd 285 float volume_solta_2[30];
amandarm 65:5a759e3014dd 286 float volume_solta_3[30];
amandarm 65:5a759e3014dd 287 float volume_solta_4[30];
amandarm 65:5a759e3014dd 288 float volume_solta_5[30];
amandarm 65:5a759e3014dd 289 float volume_solta_6[30];
amandarm 65:5a759e3014dd 290 float volume_solta_7[30];
amandarm 65:5a759e3014dd 291 float volume_solta_8[30];
amandarm 65:5a759e3014dd 292 float volume_solta_9[30];
amandarm 65:5a759e3014dd 293 float pos_x_solta[30];
amandarm 65:5a759e3014dd 294 float pos_y_solta[30];
amandarm 55:4d071fb49f24 295
amandarm 83:824e811b9f49 296 //Função que coloca OK nas telas de salvo_agree1()
amandarm 83:824e811b9f49 297 void ok_agree1(){
amandarm 83:824e811b9f49 298 TextLCD lcd(D4, D5, D6, D7, D8, D9);
amandarm 83:824e811b9f49 299 if(confirmacao_pos_pega[programa] != 0){
amandarm 83:824e811b9f49 300 lcd.locate(18,1);lcd.printf("OK");
amandarm 83:824e811b9f49 301 }
Hiroball 85:10dec681c389 302 if(confirmacao_pos_solta[programa] != 0){
amandarm 83:824e811b9f49 303 lcd.locate(18,2);lcd.printf("OK");
amandarm 83:824e811b9f49 304 }
amandarm 83:824e811b9f49 305 }
amandarm 83:824e811b9f49 306
amandarm 83:824e811b9f49 307 //Função que coloca OK nas telas de salvo_agree2()
amandarm 83:824e811b9f49 308 void ok_agree2(){
amandarm 83:824e811b9f49 309 TextLCD lcd(D4, D5, D6, D7, D8, D9);
amandarm 83:824e811b9f49 310 if(confirmacao_vol_pega[programa] != 0){ //
amandarm 83:824e811b9f49 311 lcd.locate(18,1);lcd.printf("OK");
amandarm 83:824e811b9f49 312 }
Hiroball 85:10dec681c389 313 if(confirmacao_vol_solta[programa] != 0){
amandarm 83:824e811b9f49 314 lcd.locate(18,2);lcd.printf("OK");
amandarm 83:824e811b9f49 315 }
amandarm 83:824e811b9f49 316 }
amandarm 83:824e811b9f49 317
amandarm 57:e26deee15b8f 318 //main
enricoan 29:76d952358896 319 int main() {
enricoan 87:6bba4ab5a623 320 interrupcao.fall(&emergencia);
enricoan 87:6bba4ab5a623 321 fdc_x.fall(&lim_x);
enricoan 87:6bba4ab5a623 322 fdc_y.fall(&lim_y);
enricoan 87:6bba4ab5a623 323 fdc_z.fall(&lim_z);
enricoan 87:6bba4ab5a623 324 fdc_x.rise(&reseta_eixo);
enricoan 87:6bba4ab5a623 325 fdc_y.rise(&reseta_eixo);
enricoan 87:6bba4ab5a623 326 fdc_z.rise(&reseta_eixo);
amandarm 82:b8b6374ce1e6 327 int volume; //variaveis que precisam ser construídas de modo global
Hiroball 61:be02d7d4e208 328 int volume_solta;
Hiroball 61:be02d7d4e208 329 int diametro_solta;
Hiroball 61:be02d7d4e208 330 int diametro;
Hiroball 59:447534f1e4f5 331 int comprimento_quad;
enricoan 54:74a215a1f76b 332 bool continuar;
Hiroball 61:be02d7d4e208 333 int multiplicador = 10;
enricoan 78:e1dfd20407fc 334 TextLCD lcd(D4, D5, D6, D7, D8, D9); //Pinos para ligar o display à NUCLEO
Hiroball 70:85daa4aee916 335
Hiroball 70:85daa4aee916 336 //Tela inicial
enricoan 29:76d952358896 337 lcd.printf("Bem-vindo ao Pipemax");
enricoan 78:e1dfd20407fc 338 lcd.locate(3,1);
enricoan 29:76d952358896 339 lcd.printf("o seu sistema");
enricoan 78:e1dfd20407fc 340 lcd.locate(4,2);
enricoan 29:76d952358896 341 lcd.printf("automatizado");
enricoan 78:e1dfd20407fc 342 lcd.locate(3,3);
enricoan 29:76d952358896 343 lcd.printf("de pipetagem");
enricoan 33:a513498222c7 344 wait(3);
enricoan 28:c4733814201a 345 lcd.cls();
enricoan 78:e1dfd20407fc 346 //tela de espera do zeramento do sistema, enquanto ele não for aceito, a maquina nao pode operar
enricoan 29:76d952358896 347 lcd.printf("Por favor, aceite");
amandarm 27:45f8125a0c0b 348 lcd.locate(0,1);
enricoan 29:76d952358896 349 lcd.printf("o zeramento do seu");
amandarm 27:45f8125a0c0b 350 lcd.locate(0,2);
enricoan 29:76d952358896 351 lcd.printf("sistema");
amandarm 27:45f8125a0c0b 352 lcd.locate(0,3);
Hiroball 70:85daa4aee916 353 lcd.printf("A - proximo");
Hiroball 70:85daa4aee916 354
Hiroball 70:85daa4aee916 355 //Loop principal
enricoan 33:a513498222c7 356 while(1) {
enricoan 94:0b6ac1cdab84 357 printf("\n ihm: %s",est_ihm);
enricoan 78:e1dfd20407fc 358 rele2 = 1;
enricoan 78:e1dfd20407fc 359 tecla = pega_tecla();//Variável que guarda o valor da tecla apertada, é chamada diversas vezes ao longo do código
enricoan 78:e1dfd20407fc 360 //para atualizar o valor mais rapidamente e sempre que necessário
Hiroball 70:85daa4aee916 361
Hiroball 70:85daa4aee916 362 //Teste para analisar se os valores estão corretos através do monitor serial
enricoan 94:0b6ac1cdab84 363 printf("\n tela: %s",status_tela);
enricoan 50:cd54c98b6ef1 364 printf("\n%c",tecla);
Hiroball 70:85daa4aee916 365 //O zeramento só é feito se confirmado apertando a tecla 'A'
enricoan 29:76d952358896 366 if(tecla == 'A' && status_tela == "zeramento"){
amandarm 27:45f8125a0c0b 367 zeramento();
enricoan 33:a513498222c7 368 status_tela = "inicio";
enricoan 71:c91c96bbed54 369 funcao_inicio();}
enricoan 43:cfc3da0299ff 370
Hiroball 70:85daa4aee916 371 //Caso nenhum botão esteja apertado, os motores devem permanecer parados
enricoan 33:a513498222c7 372 if(x_mais && x_menos && y_mais && y_menos && z_mais && z_menos != 0){
enricoan 16:70baa0057a76 373 for(int i = 0; i < 4; i++){eixox = parado[i];}
enricoan 16:70baa0057a76 374 for(int i = 0; i < 4; i++){eixoy = parado[i];}
enricoan 33:a513498222c7 375 for(int i = 0; i < 4; i++){eixoz = parado[i];}}
amandarm 35:a8256801e9ab 376
Hiroball 70:85daa4aee916 377 tecla = pega_tecla();//Atualiza a variável tecla
Hiroball 70:85daa4aee916 378
Hiroball 70:85daa4aee916 379 //Ações para a tela inicial
enricoan 78:e1dfd20407fc 380 if(tecla == '1' && status_tela == "inicio"){
enricoan 90:388071e54291 381 est_ihm = "pega";
Hiroball 70:85daa4aee916 382 continuar = 1; //Condição de funcionamento do loop abaixo
Hiroball 85:10dec681c389 383 status_tela = "novo";
enricoan 94:0b6ac1cdab84 384 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
enricoan 90:388071e54291 385
amandarm 82:b8b6374ce1e6 386 else if(tecla == '2' && status_tela == "inicio"){ //Ações para a tela inicial quando o usuário seleciona programas salvos
Hiroball 70:85daa4aee916 387 continuar = 1;
Hiroball 70:85daa4aee916 388 while(continuar){
Hiroball 70:85daa4aee916 389 funcao_salvo1();
amandarm 88:bae82f6f91b9 390 if(nome_programa[1] != 0){lcd.locate(2,0);lcd.printf("%d",nome_programa[1]);}
amandarm 88:bae82f6f91b9 391 if(nome_programa[2] != 0){lcd.locate(2,1);lcd.printf("%d",nome_programa[2]);}
amandarm 88:bae82f6f91b9 392 if(nome_programa[3] != 0){lcd.locate(2,2);lcd.printf("%d",nome_programa[3]);}
enricoan 80:3a69b08e062f 393 wait(2);
enricoan 80:3a69b08e062f 394 funcao_salvo2();
amandarm 88:bae82f6f91b9 395 if(nome_programa[4] != 0){lcd.locate(2,0);lcd.printf("%d",nome_programa[4]);}
amandarm 88:bae82f6f91b9 396 if(nome_programa[5] != 0){lcd.locate(2,1);lcd.printf("%d",nome_programa[5]);}
amandarm 88:bae82f6f91b9 397 if(nome_programa[6] != 0){lcd.locate(2,2);lcd.printf("%d",nome_programa[6]);}
amandarm 88:bae82f6f91b9 398
enricoan 71:c91c96bbed54 399 wait(2);
enricoan 71:c91c96bbed54 400 tecla = pega_tecla();
Hiroball 70:85daa4aee916 401 if(tecla!='k'){
Hiroball 70:85daa4aee916 402 continuar = 0;
Hiroball 70:85daa4aee916 403 }
Hiroball 70:85daa4aee916 404 }
enricoan 90:388071e54291 405 status_tela = "salvo";
enricoan 90:388071e54291 406 est_ihm = "salvo";}
enricoan 90:388071e54291 407 if(est_ihm == "salvo"){
Hiroball 70:85daa4aee916 408 //Ações para a tela de salvamento
Hiroball 70:85daa4aee916 409 //A variável programa remete a que programa salvo o usuário deseja acessar
enricoan 43:cfc3da0299ff 410 tecla = pega_tecla();
amandarm 35:a8256801e9ab 411 if(tecla =='1' && status_tela =="salvo"){
Hiroball 85:10dec681c389 412 continuar = 1;
Hiroball 85:10dec681c389 413 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 414 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
Hiroball 70:85daa4aee916 415 programa = 1;
Hiroball 85:10dec681c389 416 }
amandarm 35:a8256801e9ab 417 else if(tecla =='2' && status_tela =="salvo"){
Hiroball 85:10dec681c389 418 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 419 continuar = 1;
Hiroball 85:10dec681c389 420 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 35:a8256801e9ab 421 programa = 2;
Hiroball 85:10dec681c389 422 }
amandarm 35:a8256801e9ab 423 else if(tecla =='3' && status_tela =="salvo"){
Hiroball 85:10dec681c389 424 continuar = 1;
Hiroball 85:10dec681c389 425 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 426 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 35:a8256801e9ab 427 programa = 3;
Hiroball 85:10dec681c389 428 }
amandarm 35:a8256801e9ab 429 else if(tecla =='4' && status_tela =="salvo"){
Hiroball 85:10dec681c389 430 continuar = 1;
Hiroball 85:10dec681c389 431 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 35:a8256801e9ab 432 programa = 4;
amandarm 35:a8256801e9ab 433 status_tela = "salvo_confirmacao";}
amandarm 35:a8256801e9ab 434 else if(tecla =='5' && status_tela =="salvo"){
Hiroball 85:10dec681c389 435 continuar = 1;
Hiroball 85:10dec681c389 436 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 437 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 35:a8256801e9ab 438 programa = 5;
Hiroball 85:10dec681c389 439 }
amandarm 44:f0b7a2fe28d9 440 else if(tecla =='6' && status_tela =="salvo"){
Hiroball 85:10dec681c389 441 continuar = 1;
Hiroball 85:10dec681c389 442 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 443 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 44:f0b7a2fe28d9 444 programa = 6;
Hiroball 85:10dec681c389 445 }
amandarm 35:a8256801e9ab 446 else if(tecla =='B' && status_tela =="salvo"){
Hiroball 85:10dec681c389 447 status_tela = "inicio";
Hiroball 85:10dec681c389 448 continuar = 1;
amandarm 47:0d9c10a9f87d 449 funcao_inicio();
Hiroball 85:10dec681c389 450 }
amandarm 35:a8256801e9ab 451
Hiroball 70:85daa4aee916 452 tecla = pega_tecla();//Atualiza a variável tecla
Hiroball 70:85daa4aee916 453
Hiroball 70:85daa4aee916 454 //Ações para a tela de salvo_confirmação
amandarm 35:a8256801e9ab 455 if(tecla =='1' && status_tela =="salvo_confirmacao"){
amandarm 65:5a759e3014dd 456 funcao_salvo_agree_pos_aviso(); //Tela de aviso ao usuário que a pega se deslocará na posição aduequada
amandarm 44:f0b7a2fe28d9 457 wait(3);
amandarm 68:b36bb895c8c1 458 status_tela = "salvo_confirmacao_pega_agree";
amandarm 68:b36bb895c8c1 459 }
Hiroball 70:85daa4aee916 460
Hiroball 70:85daa4aee916 461 //Ações para a tela salvo_confirmação_pega_agree
amandarm 68:b36bb895c8c1 462 if(tecla == 'A' && status_tela =="salvo_confirmacao_pega_agree"){
enricoan 67:ecd4feb40f94 463 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 464 mov_x_mais();
amandarm 65:5a759e3014dd 465 }
enricoan 67:ecd4feb40f94 466 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 467 mov_x_menos();
amandarm 65:5a759e3014dd 468 }
enricoan 67:ecd4feb40f94 469 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 470 mov_y_mais();
amandarm 65:5a759e3014dd 471 }
enricoan 67:ecd4feb40f94 472 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 473 mov_y_menos();
amandarm 65:5a759e3014dd 474 }
amandarm 65:5a759e3014dd 475 funcao_salvo_agree_pos_certo(); //Tela para o usuário confirmar se é essa a posição de fato da pega
amandarm 49:4625aaa408fc 476 status_tela="salvo_pos_certo_pega" ;}
amandarm 68:b36bb895c8c1 477 else if(tecla == 'B' && status_tela=="salvo_confirmacao_pega_agree"){
Hiroball 85:10dec681c389 478 continuar = 1;
Hiroball 85:10dec681c389 479 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 480 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 68:b36bb895c8c1 481 programa = 1;
Hiroball 85:10dec681c389 482 }
amandarm 35:a8256801e9ab 483 else if(tecla =='2' && status_tela =="salvo_confirmacao"){
Hiroball 85:10dec681c389 484 continuar = 1;
Hiroball 85:10dec681c389 485 status_tela = "salvo_confirmacao_solta_agree";
amandarm 65:5a759e3014dd 486 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 487 wait(3);
amandarm 68:b36bb895c8c1 488 }
Hiroball 70:85daa4aee916 489
Hiroball 70:85daa4aee916 490 //Ações para a tela confirmação_solta_agree
amandarm 68:b36bb895c8c1 491 if(tecla == 'A' && status_tela =="salvo_confirmacao_solta_agree"){
enricoan 67:ecd4feb40f94 492 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 493 mov_x_mais();
amandarm 65:5a759e3014dd 494 }
enricoan 67:ecd4feb40f94 495 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 496 mov_x_menos();
amandarm 65:5a759e3014dd 497 }
enricoan 67:ecd4feb40f94 498 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 499 mov_y_mais();
amandarm 65:5a759e3014dd 500 }
enricoan 67:ecd4feb40f94 501 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 502 mov_y_menos();
amandarm 65:5a759e3014dd 503 }
amandarm 35:a8256801e9ab 504 funcao_salvo_agree_pos_certo();
amandarm 68:b36bb895c8c1 505 status_tela = "salvo_pos_certo_solta";}
amandarm 68:b36bb895c8c1 506 else if(tecla == 'B' && status_tela=="salvo_confirmacao_solta_agree"){
amandarm 68:b36bb895c8c1 507 funcao_salvo1();
amandarm 88:bae82f6f91b9 508 if(nome_programa[1] != 0){lcd.locate(2,0);lcd.printf("%d",nome_programa[1]);}
amandarm 88:bae82f6f91b9 509 if(nome_programa[2] != 0){lcd.locate(2,1);lcd.printf("%d",nome_programa[2]);}
amandarm 88:bae82f6f91b9 510 if(nome_programa[3] != 0){lcd.locate(2,2);lcd.printf("%d",nome_programa[3]);}
amandarm 68:b36bb895c8c1 511 wait(1);
amandarm 68:b36bb895c8c1 512 funcao_salvo2();
amandarm 88:bae82f6f91b9 513 if(nome_programa[4] != 0){lcd.locate(2,0);lcd.printf("%d",nome_programa[4]);}
amandarm 88:bae82f6f91b9 514 if(nome_programa[5] != 0){lcd.locate(2,1);lcd.printf("%d",nome_programa[5]);}
amandarm 88:bae82f6f91b9 515 if(nome_programa[6] != 0){lcd.locate(2,2);lcd.printf("%d",nome_programa[6]);}
amandarm 88:bae82f6f91b9 516
amandarm 68:b36bb895c8c1 517 programa = 1;
amandarm 68:b36bb895c8c1 518 status_tela = "salvo";}
amandarm 35:a8256801e9ab 519 else if(tecla =='3' && status_tela =="salvo_confirmacao"){
amandarm 65:5a759e3014dd 520 funcao_salvo_agree_pega_vol(); //Função que imprime na tela do usuário que ele deve dar entreda no volume
amandarm 65:5a759e3014dd 521 continuar = 1;
enricoan 67:ecd4feb40f94 522 multiplicador = 10;
enricoan 67:ecd4feb40f94 523 lcd.locate(6,1);
amandarm 65:5a759e3014dd 524 while(continuar){ // Pega o valor imputado pelo usuário
amandarm 65:5a759e3014dd 525 printf("\n%c",pega_tecla());
amandarm 65:5a759e3014dd 526 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 527 wait(t_teclado);
amandarm 65:5a759e3014dd 528 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 70:85daa4aee916 529 volume = multiplicador*volume + ((int)tecla-48); //
amandarm 65:5a759e3014dd 530 lcd.printf("%c", tecla);
amandarm 65:5a759e3014dd 531 }
amandarm 65:5a759e3014dd 532 else if(tecla == 'A'){
enricoan 67:ecd4feb40f94 533 volume_pega[programa]=volume; //recebe o valor que o usuário colocou no volume.
amandarm 65:5a759e3014dd 534 lcd.locate(0,2);
amandarm 65:5a759e3014dd 535 printf("Volume inputado!");
amandarm 65:5a759e3014dd 536 continuar = 0;
amandarm 79:b9e2d020240c 537 confirmacao_vol_pega[programa]=1;
amandarm 65:5a759e3014dd 538 wait(1);
amandarm 65:5a759e3014dd 539 }
Hiroball 70:85daa4aee916 540 }
amandarm 65:5a759e3014dd 541 status_tela="salvo_conf_vol_pega";}
amandarm 35:a8256801e9ab 542 else if(tecla =='4' && status_tela =="salvo_confirmacao"){
amandarm 68:b36bb895c8c1 543 funcao_salvo_agree_solta_vol(); //volumes configurados por cada pipeta. (programa.vol_solta_pipeta)
enricoan 94:0b6ac1cdab84 544 lcd.locate(1,0);lcd.printf("%d",volume_solta_1[programa]);
enricoan 94:0b6ac1cdab84 545 lcd.locate(8,0);lcd.printf("%d",volume_solta_2[programa]);
enricoan 94:0b6ac1cdab84 546 lcd.locate(16,0);lcd.printf("%d",volume_solta_3[programa]);
enricoan 91:ce9b14cd2137 547
enricoan 94:0b6ac1cdab84 548 lcd.locate(1,1);lcd.printf("%d",volume_solta_4[programa]);
enricoan 94:0b6ac1cdab84 549 lcd.locate(8,1);lcd.printf("%d",volume_solta_5[programa]);
enricoan 94:0b6ac1cdab84 550 lcd.locate(16,1);lcd.printf("%d",volume_solta_6[programa]);
enricoan 91:ce9b14cd2137 551
enricoan 94:0b6ac1cdab84 552 lcd.locate(1,2);lcd.printf("%d",volume_solta_7[programa]);
enricoan 94:0b6ac1cdab84 553 lcd.locate(8,2);lcd.printf("%d",volume_solta_8[programa]);
enricoan 94:0b6ac1cdab84 554 lcd.locate(16,2);lcd.printf("%d",volume_solta_9[programa]);
amandarm 35:a8256801e9ab 555 status_tela="salvo_conf_vol_solta";}
amandarm 35:a8256801e9ab 556 else if(tecla =='B' && status_tela =="salvo_confirmacao"){
amandarm 47:0d9c10a9f87d 557 funcao_salvo1();
amandarm 88:bae82f6f91b9 558 if(nome_programa[1] != 0){lcd.locate(2,0);lcd.printf("%d",nome_programa[1]);}
amandarm 88:bae82f6f91b9 559 if(nome_programa[2] != 0){lcd.locate(2,1);lcd.printf("%d",nome_programa[2]);}
amandarm 88:bae82f6f91b9 560 if(nome_programa[3] != 0){lcd.locate(2,2);lcd.printf("%d",nome_programa[3]);}
amandarm 88:bae82f6f91b9 561
amandarm 35:a8256801e9ab 562 wait(1);
amandarm 47:0d9c10a9f87d 563 funcao_salvo2();
amandarm 88:bae82f6f91b9 564 if(nome_programa[4] != 0){lcd.locate(2,0);lcd.printf("%d",nome_programa[4]);}
amandarm 88:bae82f6f91b9 565 if(nome_programa[5] != 0){lcd.locate(2,1);lcd.printf("%d",nome_programa[5]);}
amandarm 88:bae82f6f91b9 566 if(nome_programa[6] != 0){lcd.locate(2,2);lcd.printf("%d",nome_programa[6]);}
amandarm 88:bae82f6f91b9 567
amandarm 35:a8256801e9ab 568 programa = 1;
amandarm 35:a8256801e9ab 569 status_tela = "salvo";}
Hiroball 70:85daa4aee916 570
Hiroball 70:85daa4aee916 571 tecla = pega_tecla(); //Atualiza a variável tecla
Hiroball 70:85daa4aee916 572
Hiroball 70:85daa4aee916 573 //Ações para a tela de salvo_pos_certo_pega
amandarm 49:4625aaa408fc 574 if(tecla =='1' && status_tela =="salvo_pos_certo_pega"){
amandarm 79:b9e2d020240c 575 confirmacao_pos_pega[programa]=1;
enricoan 53:1d0bb62c117f 576 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 577 continuar = 1;
Hiroball 85:10dec681c389 578 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 48:135139e2971f 579 }//salva essa posição como correta
amandarm 65:5a759e3014dd 580 else if(tecla =='2' && status_tela =="salvo_pos_certo_pega"){ //Caso o usuário queria ajustar o posicionamento
enricoan 67:ecd4feb40f94 581 lcd.cls();
enricoan 67:ecd4feb40f94 582 funcao_pega_pos_x();
amandarm 92:98f159ff780d 583 lcd.printf("Ponha a pega em x/y");
enricoan 67:ecd4feb40f94 584 lcd.locate(0,3);
enricoan 67:ecd4feb40f94 585 lcd.printf(" B-Voltar ");
amandarm 65:5a759e3014dd 586 continuar = 1; //Inicia o loop de posicionamento
amandarm 65:5a759e3014dd 587 while(continuar){
amandarm 65:5a759e3014dd 588 tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop
amandarm 65:5a759e3014dd 589 if(x_menos == 0){mov_x_menos(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 590 lcd.cls();
amandarm 65:5a759e3014dd 591 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 592 else if(x_mais == 0){mov_x_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 593 lcd.cls();
amandarm 65:5a759e3014dd 594 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 595 else if(y_menos == 0){mov_y_menos(); //Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 596 lcd.cls();
amandarm 65:5a759e3014dd 597 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 598 else if(y_mais == 0){mov_y_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 599 lcd.cls();
amandarm 65:5a759e3014dd 600 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 601 if(tecla=='A'){
amandarm 65:5a759e3014dd 602 pos_x_pega[programa] = coord_x;
amandarm 65:5a759e3014dd 603 pos_y_pega[programa] = coord_y;
enricoan 67:ecd4feb40f94 604 lcd.cls();
amandarm 65:5a759e3014dd 605 lcd.printf("Posicao de x e y salva!");
Hiroball 70:85daa4aee916 606 lcd.locate(0,1);
Hiroball 70:85daa4aee916 607 lcd.printf("Posicao X: %4.1f", coord_x);
Hiroball 70:85daa4aee916 608 lcd.locate(0,2);
Hiroball 70:85daa4aee916 609 lcd.printf("Posicao Y: %4.1f", coord_y);
enricoan 67:ecd4feb40f94 610 status_tela = "salvo_confirmacao";
amandarm 79:b9e2d020240c 611 confirmacao_pos_pega[programa]=1;
Hiroball 85:10dec681c389 612 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 65:5a759e3014dd 613 }
amandarm 65:5a759e3014dd 614 }
amandarm 65:5a759e3014dd 615 }
amandarm 49:4625aaa408fc 616 else if(tecla =='B' && status_tela =="salvo_pos_certo_pega"){
Hiroball 85:10dec681c389 617 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 618 continuar = 1;
Hiroball 85:10dec681c389 619 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
Hiroball 85:10dec681c389 620 }
Hiroball 70:85daa4aee916 621
Hiroball 70:85daa4aee916 622
Hiroball 70:85daa4aee916 623 //Ações para a tela salvo_conf_vol_pega
amandarm 52:dca562b09080 624 if(tecla =='A' && status_tela =="salvo_conf_vol_pega"){
amandarm 79:b9e2d020240c 625 confirmacao_vol_pega[programa]=1;
enricoan 53:1d0bb62c117f 626 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 627 continuar = 1;
Hiroball 85:10dec681c389 628 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 52:dca562b09080 629 }//salva essa posição como correta
amandarm 52:dca562b09080 630 else if(tecla =='B' && status_tela =="salvo_conf_vol_pega"){
Hiroball 85:10dec681c389 631 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 632 continuar = 1;
Hiroball 85:10dec681c389 633 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
Hiroball 85:10dec681c389 634 }
Hiroball 70:85daa4aee916 635
Hiroball 70:85daa4aee916 636 //Ações para a tela de salvo_pos_certo_solta
enricoan 71:c91c96bbed54 637 if(tecla =='1' && status_tela =="salvo_pos_certo_"){
amandarm 79:b9e2d020240c 638 confirmacao_vol_solta[programa]=1; //Tag que indica que o usuário confirmou a posição salva
enricoan 53:1d0bb62c117f 639 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 640 continuar = 1;
Hiroball 85:10dec681c389 641 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 49:4625aaa408fc 642 }//salva essa posição como correta
amandarm 65:5a759e3014dd 643 else if(tecla =='2' && status_tela =="salvo_pos_certo_solta"){
amandarm 68:b36bb895c8c1 644 lcd.cls();
amandarm 68:b36bb895c8c1 645 funcao_solta_pos_x();
amandarm 68:b36bb895c8c1 646 lcd.printf("Ponha a pega em x/y");
amandarm 68:b36bb895c8c1 647 lcd.locate(0,3);
amandarm 68:b36bb895c8c1 648 lcd.printf(" B-Voltar ");
amandarm 65:5a759e3014dd 649 continuar = 1; //Inicia o loop de posicionamento
amandarm 65:5a759e3014dd 650 while(continuar){
amandarm 65:5a759e3014dd 651 tecla = pega_tecla(); // pegla a tecla apertada pelo usuário para sair do loop
amandarm 65:5a759e3014dd 652 if(x_menos == 0){mov_x_menos(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 653 lcd.cls();
amandarm 65:5a759e3014dd 654 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 655 else if(x_mais == 0){mov_x_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 656 lcd.cls();
amandarm 65:5a759e3014dd 657 lcd.printf("X: %4.1f", coord_x);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 658 else if(y_menos == 0){mov_y_menos(); //Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 659 lcd.cls();
amandarm 65:5a759e3014dd 660 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 661 else if(y_mais == 0){mov_y_mais(); // Movimenta o eixo conforme o botão selecionado
amandarm 65:5a759e3014dd 662 lcd.cls();
amandarm 65:5a759e3014dd 663 lcd.printf("Y: %4.1f", coord_y);} //Printa para o usuário isso
amandarm 65:5a759e3014dd 664 if(tecla=='A'){
amandarm 68:b36bb895c8c1 665 pos_x_solta[programa] = coord_x;
amandarm 68:b36bb895c8c1 666 pos_y_solta[programa] = coord_y;
amandarm 68:b36bb895c8c1 667 lcd.cls();
amandarm 65:5a759e3014dd 668 lcd.printf("Posicao de x e y salva!");
Hiroball 70:85daa4aee916 669 lcd.locate(0,1);
Hiroball 70:85daa4aee916 670 lcd.printf("Posicao X: %4.1f", coord_x);
Hiroball 70:85daa4aee916 671 lcd.locate(0,2);
Hiroball 70:85daa4aee916 672 lcd.printf("Posicao Y: %4.1f", coord_y);
amandarm 68:b36bb895c8c1 673 status_tela = "salvo_confirmacao";
amandarm 79:b9e2d020240c 674 confirmacao_pos_solta[programa]=1; //Flag que mostra que o usuário setou a posição conforme ele queria e está confirmado.
Hiroball 85:10dec681c389 675 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
Hiroball 70:85daa4aee916 676 continuar = 0;
amandarm 65:5a759e3014dd 677 }
amandarm 68:b36bb895c8c1 678 }
amandarm 65:5a759e3014dd 679 }
amandarm 49:4625aaa408fc 680 else if(tecla =='B' && status_tela =="salvo_pos_certo_solta"){
Hiroball 85:10dec681c389 681 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 682 continuar = 1;
Hiroball 85:10dec681c389 683 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);}
Hiroball 70:85daa4aee916 684
Hiroball 70:85daa4aee916 685 //Ações para a tela salvo_conf_vol_solta
amandarm 52:dca562b09080 686 if(tecla =='A' && status_tela =="salvo_conf_vol_solta"){
Hiroball 85:10dec681c389 687 confirmacao_vol_solta[programa]=1;
Hiroball 85:10dec681c389 688 status_tela = "salvo_confirmacao";
Hiroball 85:10dec681c389 689 continuar = 1;
Hiroball 85:10dec681c389 690 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa],confirmacao_vol_pega[programa],confirmacao_vol_solta[programa],4);
amandarm 48:135139e2971f 691 }//salva essa posição como correta
enricoan 91:ce9b14cd2137 692 else if(tecla =='B' && status_tela =="salvo_conf_vol_solta"){
amandarm 68:b36bb895c8c1 693 funcao_salvo_vol_solta_modifica();
enricoan 91:ce9b14cd2137 694 wait(5);
amandarm 68:b36bb895c8c1 695 funcao_salvo_agree_solta_vol();
enricoan 94:0b6ac1cdab84 696 lcd.locate(2,0);lcd.printf("%d",volume_solta_1[programa]);
enricoan 94:0b6ac1cdab84 697 lcd.locate(9,0);lcd.printf("%d",volume_solta_2[programa]);
enricoan 94:0b6ac1cdab84 698 lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]);
enricoan 91:ce9b14cd2137 699
enricoan 94:0b6ac1cdab84 700 lcd.locate(2,1);lcd.printf("%d",volume_solta_4[programa]);
enricoan 94:0b6ac1cdab84 701 lcd.locate(9,1);lcd.printf("%d",volume_solta_5[programa]);
enricoan 94:0b6ac1cdab84 702 lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]);
enricoan 91:ce9b14cd2137 703
enricoan 94:0b6ac1cdab84 704 lcd.locate(2,2);lcd.printf("%d",volume_solta_7[programa]);
enricoan 94:0b6ac1cdab84 705 lcd.locate(9,2);lcd.printf("%d",volume_solta_8[programa]);
enricoan 94:0b6ac1cdab84 706 lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]);
enricoan 91:ce9b14cd2137 707 bool cleber = 1;
enricoan 91:ce9b14cd2137 708 while(cleber){
enricoan 91:ce9b14cd2137 709 tecla = pega_tecla();
enricoan 94:0b6ac1cdab84 710 wait(t_teclado);
enricoan 91:ce9b14cd2137 711 if(tecla != 'A'){
enricoan 91:ce9b14cd2137 712 if(tecla == '1' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 713 printf("entrou if 1 salvo_conf");
enricoan 91:ce9b14cd2137 714 volume = 0;
enricoan 91:ce9b14cd2137 715 continuar = 1;
enricoan 94:0b6ac1cdab84 716 lcd.locate(2,0);
Hiroball 99:409a77673f2d 717 modifica_solta(continuar, volume, 2, 0, volume_solta_1[programa]);
enricoan 91:ce9b14cd2137 718 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 719 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 720 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 721 wait(t_teclado);
enricoan 91:ce9b14cd2137 722 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 723 if(volume*10 < 100)
Hiroball 93:6c26c27bdd95 724 {
Hiroball 93:6c26c27bdd95 725 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
Hiroball 93:6c26c27bdd95 726 lcd.printf("%c", tecla);
Hiroball 93:6c26c27bdd95 727 }
enricoan 94:0b6ac1cdab84 728 else{
enricoan 94:0b6ac1cdab84 729 volume = 0;
enricoan 94:0b6ac1cdab84 730 lcd.locate(2,0);}
enricoan 91:ce9b14cd2137 731 }
enricoan 91:ce9b14cd2137 732 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 733 tecla = 'k';
enricoan 94:0b6ac1cdab84 734 continuar = 0;
enricoan 91:ce9b14cd2137 735 volume_solta_1[programa]=volume;
enricoan 91:ce9b14cd2137 736 }
amandarm 68:b36bb895c8c1 737 }
amandarm 68:b36bb895c8c1 738 }
enricoan 91:ce9b14cd2137 739 else if(tecla=='2' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 740 volume = 0;
enricoan 91:ce9b14cd2137 741 continuar = 1;
enricoan 91:ce9b14cd2137 742 multiplicador = 10;
enricoan 94:0b6ac1cdab84 743 lcd.locate(9,0);
enricoan 91:ce9b14cd2137 744 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 745 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 746 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 747 wait(t_teclado);
enricoan 91:ce9b14cd2137 748 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 749 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 750 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 751 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 752 }
enricoan 94:0b6ac1cdab84 753 else{
enricoan 94:0b6ac1cdab84 754 volume = 0;
enricoan 94:0b6ac1cdab84 755 lcd.locate(9,0);}
enricoan 94:0b6ac1cdab84 756 }
enricoan 91:ce9b14cd2137 757 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 758 continuar = 0;
enricoan 91:ce9b14cd2137 759 volume_solta_2[programa]=volume;
enricoan 91:ce9b14cd2137 760 }
amandarm 68:b36bb895c8c1 761 }
amandarm 68:b36bb895c8c1 762 }
enricoan 91:ce9b14cd2137 763 else if(tecla=='3' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 764 volume = 0;
enricoan 91:ce9b14cd2137 765 continuar = 1;
enricoan 91:ce9b14cd2137 766 multiplicador = 10;
enricoan 94:0b6ac1cdab84 767 lcd.locate(17,0);
enricoan 91:ce9b14cd2137 768 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 769 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 770 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 771 wait(t_teclado);
enricoan 91:ce9b14cd2137 772 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 773 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 774 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 775 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 776 }
enricoan 94:0b6ac1cdab84 777 else{
enricoan 94:0b6ac1cdab84 778 volume = 0;
enricoan 94:0b6ac1cdab84 779 lcd.locate(17,0);}
enricoan 94:0b6ac1cdab84 780 }
enricoan 91:ce9b14cd2137 781 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 782 continuar = 0;
enricoan 91:ce9b14cd2137 783 volume_solta_3[programa]=volume;
enricoan 91:ce9b14cd2137 784 }
amandarm 68:b36bb895c8c1 785 }
amandarm 68:b36bb895c8c1 786 }
enricoan 91:ce9b14cd2137 787 else if(tecla=='4' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 788 volume = 0;
enricoan 91:ce9b14cd2137 789 continuar = 1;
enricoan 91:ce9b14cd2137 790 multiplicador = 10;
enricoan 94:0b6ac1cdab84 791 lcd.locate(2,1);
enricoan 91:ce9b14cd2137 792 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 793 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 794 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 795 wait(t_teclado);
enricoan 91:ce9b14cd2137 796 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 797 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 798 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 799 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 800 }
enricoan 94:0b6ac1cdab84 801 else{
enricoan 94:0b6ac1cdab84 802 volume = 0;
enricoan 94:0b6ac1cdab84 803 lcd.locate(2,1);}
enricoan 94:0b6ac1cdab84 804 }
enricoan 91:ce9b14cd2137 805 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 806 continuar = 0;
enricoan 91:ce9b14cd2137 807 volume_solta_4[programa]=volume;
amandarm 68:b36bb895c8c1 808 }
amandarm 68:b36bb895c8c1 809 }
amandarm 68:b36bb895c8c1 810 }
enricoan 91:ce9b14cd2137 811 else if(tecla=='5' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 812 volume = 0;
enricoan 91:ce9b14cd2137 813 continuar = 1;
enricoan 91:ce9b14cd2137 814 multiplicador = 10;
enricoan 94:0b6ac1cdab84 815 lcd.locate(9,1);
enricoan 91:ce9b14cd2137 816 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 817 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 818 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 819 wait(t_teclado);
enricoan 91:ce9b14cd2137 820 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 821 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 822 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 823 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 824 }
enricoan 94:0b6ac1cdab84 825 else{
enricoan 94:0b6ac1cdab84 826 volume = 0;
enricoan 94:0b6ac1cdab84 827 lcd.locate(9,1);}
enricoan 94:0b6ac1cdab84 828 }
enricoan 91:ce9b14cd2137 829 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 830 continuar = 0;
enricoan 91:ce9b14cd2137 831 volume_solta_5[programa]=volume;
enricoan 91:ce9b14cd2137 832 }
amandarm 68:b36bb895c8c1 833 }
amandarm 68:b36bb895c8c1 834 }
enricoan 91:ce9b14cd2137 835 else if(tecla=='6' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 836 volume = 0;
enricoan 91:ce9b14cd2137 837 continuar = 1;
enricoan 91:ce9b14cd2137 838 multiplicador = 10;
enricoan 94:0b6ac1cdab84 839 lcd.locate(17,1);
enricoan 91:ce9b14cd2137 840 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 841 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 842 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 843 wait(t_teclado);
enricoan 91:ce9b14cd2137 844 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 845 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 846 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 847 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 848 }
enricoan 94:0b6ac1cdab84 849 else{
enricoan 94:0b6ac1cdab84 850 volume = 0;
enricoan 94:0b6ac1cdab84 851 lcd.locate(17,1);}
enricoan 94:0b6ac1cdab84 852 }
enricoan 91:ce9b14cd2137 853 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 854 continuar = 0;
enricoan 91:ce9b14cd2137 855 volume_solta_6[programa]=volume;
enricoan 91:ce9b14cd2137 856 }
enricoan 91:ce9b14cd2137 857 }
amandarm 68:b36bb895c8c1 858 }
enricoan 91:ce9b14cd2137 859 else if(tecla=='7' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 860 volume = 0;
enricoan 91:ce9b14cd2137 861 continuar = 1;
enricoan 91:ce9b14cd2137 862 multiplicador = 10;
enricoan 94:0b6ac1cdab84 863 lcd.locate(2,2);
enricoan 91:ce9b14cd2137 864 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 865 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 866 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 867 wait(t_teclado);
enricoan 91:ce9b14cd2137 868 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 869 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 870 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 871 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 872 }
enricoan 94:0b6ac1cdab84 873 else{
enricoan 94:0b6ac1cdab84 874 volume = 0;
enricoan 94:0b6ac1cdab84 875 lcd.locate(2,2);}
enricoan 94:0b6ac1cdab84 876 }
enricoan 91:ce9b14cd2137 877 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 878 continuar = 0;
enricoan 91:ce9b14cd2137 879 volume_solta_7[programa]=volume;
enricoan 91:ce9b14cd2137 880 }
amandarm 68:b36bb895c8c1 881 }
amandarm 68:b36bb895c8c1 882 }
enricoan 91:ce9b14cd2137 883 else if(tecla=='8' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 884 volume = 0;
enricoan 91:ce9b14cd2137 885 continuar = 1;
enricoan 91:ce9b14cd2137 886 multiplicador = 10;
enricoan 94:0b6ac1cdab84 887 lcd.locate(9,2);
enricoan 91:ce9b14cd2137 888 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 889 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 890 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 891 wait(t_teclado);
enricoan 91:ce9b14cd2137 892 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 893 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 894 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 895 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 896 }
enricoan 94:0b6ac1cdab84 897 else{
enricoan 94:0b6ac1cdab84 898 volume = 0;
enricoan 94:0b6ac1cdab84 899 lcd.locate(9,2);}
enricoan 94:0b6ac1cdab84 900 }
enricoan 91:ce9b14cd2137 901 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 902 continuar = 0;
enricoan 91:ce9b14cd2137 903 volume_solta_8[programa]=volume;
enricoan 91:ce9b14cd2137 904 }
amandarm 68:b36bb895c8c1 905 }
amandarm 68:b36bb895c8c1 906 }
enricoan 91:ce9b14cd2137 907 else if(tecla=='9' && status_tela=="salvo_conf_vol_solta"){
enricoan 91:ce9b14cd2137 908 volume = 0;
enricoan 91:ce9b14cd2137 909 continuar = 1;
enricoan 91:ce9b14cd2137 910 multiplicador = 10;
enricoan 94:0b6ac1cdab84 911 lcd.locate(17,2);
enricoan 91:ce9b14cd2137 912 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 91:ce9b14cd2137 913 printf("\n%c",pega_tecla());
enricoan 91:ce9b14cd2137 914 tecla = pega_tecla();
enricoan 91:ce9b14cd2137 915 wait(t_teclado);
enricoan 91:ce9b14cd2137 916 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 94:0b6ac1cdab84 917 if(volume*10 < 100){
enricoan 94:0b6ac1cdab84 918 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 94:0b6ac1cdab84 919 lcd.printf("%c", tecla);
enricoan 94:0b6ac1cdab84 920 }
enricoan 94:0b6ac1cdab84 921 else{
enricoan 94:0b6ac1cdab84 922 volume = 0;
enricoan 94:0b6ac1cdab84 923 lcd.locate(17,2);}
enricoan 94:0b6ac1cdab84 924 }
enricoan 91:ce9b14cd2137 925 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 926 continuar = 0;
enricoan 91:ce9b14cd2137 927 volume_solta_9[programa]=volume;
enricoan 91:ce9b14cd2137 928 }
enricoan 91:ce9b14cd2137 929 }
enricoan 91:ce9b14cd2137 930 }
enricoan 94:0b6ac1cdab84 931 else if(tecla == 'B' && status_tela == "salvo_conf_vol_solta"){
enricoan 94:0b6ac1cdab84 932 status_tela = "salvo_confirmacao";
enricoan 94:0b6ac1cdab84 933 continuar = 1;
enricoan 94:0b6ac1cdab84 934 troca_tela(continuar, funcao_salvo_agree1, funcao_salvo_agree2, confirmacao_pos_pega[programa], confirmacao_pos_solta[programa], confirmacao_vol_pega[programa], confirmacao_vol_solta[programa], 4);
enricoan 94:0b6ac1cdab84 935 cleber = 0;}
enricoan 91:ce9b14cd2137 936 }//fim do if (tecla !=A)
enricoan 94:0b6ac1cdab84 937 else if(tecla == 'A'){
enricoan 94:0b6ac1cdab84 938 printf("\nfalou clebao");
enricoan 94:0b6ac1cdab84 939 cleber = 0;}
enricoan 91:ce9b14cd2137 940 }//fim do while(cleber)
enricoan 91:ce9b14cd2137 941 confirmacao_vol_solta[programa]=1;}//fim do else if(tecla =='B' && status_tela =="salvo_conf_vol_solta")
amandarm 79:b9e2d020240c 942 tecla = pega_tecla();
enricoan 90:388071e54291 943
enricoan 80:3a69b08e062f 944 if(confirmacao_vol_solta[programa]==1 && confirmacao_vol_pega[programa]==1 && confirmacao_pos_pega[programa]==1 && confirmacao_pos_solta[programa]==1){
amandarm 79:b9e2d020240c 945 funcao_acomp();
enricoan 90:388071e54291 946 status_tela="acompanhamento";
enricoan 90:388071e54291 947 est_ihm = "exec";}
enricoan 90:388071e54291 948 } //fim if(est_ihm)
enricoan 90:388071e54291 949
enricoan 90:388071e54291 950 if(est_ihm == "pega"){
Hiroball 70:85daa4aee916 951 //Ações para a tela novo
enricoan 32:2a9b30e1e7ab 952 if(tecla =='1' && status_tela =="novo"){
amandarm 26:4123b9462158 953 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 954 status_tela ="forma";}
amandarm 79:b9e2d020240c 955
enricoan 28:c4733814201a 956 else if(tecla =='2' && status_tela == "novo"){
enricoan 54:74a215a1f76b 957 volume = 0;
enricoan 54:74a215a1f76b 958 printf("\n%c",pega_tecla());
amandarm 65:5a759e3014dd 959 funcao_pega_volume(); // Função que permite a entreda do valor de volume pelo usuário
Hiroball 34:1b5a00c55376 960 status_tela = "volume";
enricoan 54:74a215a1f76b 961 continuar = 1;
enricoan 67:ecd4feb40f94 962 lcd.locate(6,1);
enricoan 54:74a215a1f76b 963 while(continuar){
enricoan 54:74a215a1f76b 964 printf("\n%c",pega_tecla());
enricoan 43:cfc3da0299ff 965 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 966 wait(t_teclado);
enricoan 54:74a215a1f76b 967 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 968 volume = multiplicador*volume + ((int)tecla-48);
Hiroball 61:be02d7d4e208 969 lcd.printf("%c", tecla);
Hiroball 34:1b5a00c55376 970 }
Hiroball 59:447534f1e4f5 971 else if(tecla == 'A'){
Hiroball 70:85daa4aee916 972 volume_pega[programa] = volume;
enricoan 53:1d0bb62c117f 973 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 974 printf("Volume inputado!");
Hiroball 34:1b5a00c55376 975 continuar = 0;
enricoan 54:74a215a1f76b 976 wait(1);
Hiroball 34:1b5a00c55376 977 }
Hiroball 59:447534f1e4f5 978 else if(tecla=='B'){
Hiroball 59:447534f1e4f5 979 funcao_pega1();
amandarm 79:b9e2d020240c 980 if(medida_lado_pega !=0){
amandarm 79:b9e2d020240c 981 lcd.locate(18,1);lcd.printf("OK");
amandarm 79:b9e2d020240c 982 }
amandarm 79:b9e2d020240c 983 if(volume_pega !=0){
amandarm 79:b9e2d020240c 984 lcd.locate(18,2);lcd.printf("OK");
amandarm 79:b9e2d020240c 985 }
Hiroball 59:447534f1e4f5 986 wait(1);
Hiroball 59:447534f1e4f5 987 funcao_pega2();
amandarm 79:b9e2d020240c 988 if(pos_y_pega[programa] !=0){
amandarm 79:b9e2d020240c 989 lcd.locate(18,1);lcd.printf("OK");
amandarm 79:b9e2d020240c 990 }
Hiroball 59:447534f1e4f5 991 status_tela = "novo";
Hiroball 61:be02d7d4e208 992 continuar = 0;
Hiroball 61:be02d7d4e208 993 }
Hiroball 34:1b5a00c55376 994 }
Hiroball 34:1b5a00c55376 995 }
enricoan 28:c4733814201a 996 else if(tecla == '3' && status_tela == "novo"){
amandarm 26:4123b9462158 997 funcao_pega_pos_x();
enricoan 80:3a69b08e062f 998 status_tela = "pos_x";
enricoan 63:32ba7c4becfc 999 continuar = 1;
enricoan 80:3a69b08e062f 1000 while(continuar){
enricoan 80:3a69b08e062f 1001 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 1002 if(x_menos == 0){mov_x_menos();
enricoan 63:32ba7c4becfc 1003 lcd.cls();
enricoan 63:32ba7c4becfc 1004 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 1005 else if(x_mais == 0){mov_x_mais();
enricoan 63:32ba7c4becfc 1006 lcd.cls();
enricoan 63:32ba7c4becfc 1007 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 1008 if(tecla=='A'){
enricoan 80:3a69b08e062f 1009 pos_x_pega[programa] = coord_x;
enricoan 63:32ba7c4becfc 1010 continuar = 0;
enricoan 80:3a69b08e062f 1011 printf("Posicao de y salva!");
enricoan 80:3a69b08e062f 1012 printf("Posicao X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 1013 }
enricoan 80:3a69b08e062f 1014 }
enricoan 28:c4733814201a 1015 else if(tecla == 'B' && status_tela == "novo"){
amandarm 26:4123b9462158 1016 funcao_inicio();
enricoan 32:2a9b30e1e7ab 1017 status_tela = "inicio";}
enricoan 28:c4733814201a 1018 else if(tecla == '1' && status_tela == "salvo"){
amandarm 26:4123b9462158 1019 funcao_salvo_agree1();
amandarm 82:b8b6374ce1e6 1020 ok_agree1();
enricoan 32:2a9b30e1e7ab 1021 status_tela = "confirmacao";}
enricoan 28:c4733814201a 1022 else if(tecla =='2' && status_tela == "salvo"){
amandarm 26:4123b9462158 1023 funcao_salvo_agree1();
amandarm 82:b8b6374ce1e6 1024 ok_agree1();
enricoan 32:2a9b30e1e7ab 1025 status_tela = "confirmacao";}
enricoan 28:c4733814201a 1026 else if(tecla =='B' && status_tela == "salvo"){
amandarm 26:4123b9462158 1027 funcao_inicio();
enricoan 32:2a9b30e1e7ab 1028 status_tela = "inicio";}
amandarm 35:a8256801e9ab 1029
enricoan 89:bc51c6bbe2a6 1030 wait(t_teclado);
enricoan 43:cfc3da0299ff 1031 tecla = pega_tecla();
Hiroball 70:85daa4aee916 1032
Hiroball 70:85daa4aee916 1033 //Ações para a tela forma (para definir o formato do recipiente de pega)
enricoan 28:c4733814201a 1034 if(tecla == '1' && status_tela == "forma"){
enricoan 94:0b6ac1cdab84 1035 wait(0.5);
amandarm 26:4123b9462158 1036 funcao_pega_forma_quad();
enricoan 67:ecd4feb40f94 1037 tipo_pega[programa] =1;
Hiroball 59:447534f1e4f5 1038 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1039 wait(t_teclado);
Hiroball 61:be02d7d4e208 1040 status_tela ="forma_quad";
Hiroball 59:447534f1e4f5 1041 continuar = 1;
Hiroball 59:447534f1e4f5 1042 comprimento_quad = 0;
enricoan 63:32ba7c4becfc 1043 lcd.locate(0,2);
Hiroball 59:447534f1e4f5 1044 while(continuar){
Hiroball 59:447534f1e4f5 1045 printf("\n%c",pega_tecla());
Hiroball 59:447534f1e4f5 1046 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1047 wait(t_teclado);
Hiroball 59:447534f1e4f5 1048 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 60:e2c632e8dee1 1049 comprimento_quad = multiplicador*comprimento_quad + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 1050 lcd.printf("%c",tecla);
Hiroball 59:447534f1e4f5 1051 }
Hiroball 59:447534f1e4f5 1052 else if(tecla == 'A'){
Hiroball 59:447534f1e4f5 1053 continuar = 0;
enricoan 89:bc51c6bbe2a6 1054 medida_lado_pega[programa] = comprimento_quad;
Hiroball 61:be02d7d4e208 1055 printf("Comprimento inputado!");
Hiroball 61:be02d7d4e208 1056 printf("\nComprimento: %d", comprimento_quad);
Hiroball 59:447534f1e4f5 1057 }
Hiroball 59:447534f1e4f5 1058 else if(tecla=='B'){
Hiroball 59:447534f1e4f5 1059 funcao_pega_forma();
Hiroball 59:447534f1e4f5 1060 status_tela = "forma";
Hiroball 59:447534f1e4f5 1061 continuar = 0;}
Hiroball 59:447534f1e4f5 1062 }
Hiroball 59:447534f1e4f5 1063 }
enricoan 28:c4733814201a 1064 else if(tecla == '2' && status_tela == "forma"){
amandarm 26:4123b9462158 1065 funcao_pega_forma_red();
enricoan 67:ecd4feb40f94 1066 tipo_pega[programa] = 2;
Hiroball 61:be02d7d4e208 1067 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1068 wait(t_teclado);
Hiroball 61:be02d7d4e208 1069 continuar = 1;
Hiroball 61:be02d7d4e208 1070 diametro = 0;
Hiroball 61:be02d7d4e208 1071 status_tela = "forma_red";
enricoan 63:32ba7c4becfc 1072 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 1073 while(continuar){
Hiroball 61:be02d7d4e208 1074 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1075 wait(t_teclado);
Hiroball 61:be02d7d4e208 1076 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 1077 diametro = multiplicador*diametro + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 1078 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 1079 }
Hiroball 61:be02d7d4e208 1080 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 1081 continuar = 0;
enricoan 89:bc51c6bbe2a6 1082 medida_lado_pega[programa] = diametro;
Hiroball 61:be02d7d4e208 1083 printf("Diametro inputado!");
Hiroball 61:be02d7d4e208 1084 printf("Diametro: %d", diametro);
Hiroball 61:be02d7d4e208 1085 }
Hiroball 61:be02d7d4e208 1086 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 1087 funcao_pega_forma();
Hiroball 61:be02d7d4e208 1088 status_tela = "forma";
Hiroball 61:be02d7d4e208 1089 continuar = 0;}
Hiroball 61:be02d7d4e208 1090 }
Hiroball 61:be02d7d4e208 1091 }
enricoan 28:c4733814201a 1092 else if(tecla == 'B' && status_tela == "forma"){
Hiroball 85:10dec681c389 1093 status_tela = "novo";
Hiroball 85:10dec681c389 1094 continuar = 1;
Hiroball 85:10dec681c389 1095 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
Hiroball 85:10dec681c389 1096 }
amandarm 35:a8256801e9ab 1097
enricoan 43:cfc3da0299ff 1098 tecla = pega_tecla();
Hiroball 70:85daa4aee916 1099
Hiroball 70:85daa4aee916 1100 //Ações para a tela forma_quad, para detalhes sobre o formato quadrado
enricoan 28:c4733814201a 1101 if(tecla == 'A' && status_tela == "forma_quad"){
Hiroball 85:10dec681c389 1102 status_tela ="novo";
Hiroball 85:10dec681c389 1103 continuar = 1;
Hiroball 85:10dec681c389 1104 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
enricoan 58:d573b618f45a 1105 }
enricoan 28:c4733814201a 1106 else if(tecla == 'B' && status_tela == "forma_quad"){
amandarm 26:4123b9462158 1107 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 1108 status_tela = "forma";}
enricoan 28:c4733814201a 1109 else if(tecla == 'A' && status_tela == "forma_red"){
Hiroball 85:10dec681c389 1110 continuar = 1;
Hiroball 85:10dec681c389 1111 status_tela ="novo";
Hiroball 85:10dec681c389 1112 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
enricoan 28:c4733814201a 1113 else if(tecla == 'B' && status_tela == "forma_red"){
amandarm 26:4123b9462158 1114 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 1115 status_tela = "forma";}
enricoan 28:c4733814201a 1116 else if(tecla == 'A' && status_tela == "volume"){
enricoan 67:ecd4feb40f94 1117 volume_pega[programa] = 12;
Hiroball 85:10dec681c389 1118 status_tela ="novo";
Hiroball 85:10dec681c389 1119 continuar = 1;
Hiroball 85:10dec681c389 1120 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
enricoan 28:c4733814201a 1121 else if( tecla == 'B' && status_tela == "volume"){
amandarm 26:4123b9462158 1122 funcao_pega_forma();
enricoan 32:2a9b30e1e7ab 1123 status_tela = "forma";}
amandarm 79:b9e2d020240c 1124 else if(tecla == 'A' && status_tela == "pos_x"){ //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
enricoan 29:76d952358896 1125 funcao_pega_pos_y(); //colocar programacao que contem o posicionamento do eixo y
enricoan 80:3a69b08e062f 1126 status_tela = "pos_y";
amandarm 79:b9e2d020240c 1127 continuar = 1;
enricoan 80:3a69b08e062f 1128 wait(1);
enricoan 80:3a69b08e062f 1129 while(continuar){
enricoan 80:3a69b08e062f 1130 tecla = pega_tecla();
amandarm 79:b9e2d020240c 1131 if(y_menos == 0){mov_y_menos();
amandarm 79:b9e2d020240c 1132 lcd.cls();
amandarm 79:b9e2d020240c 1133 lcd.printf("Y: %4.1f", coord_y);}
amandarm 79:b9e2d020240c 1134 else if(y_mais == 0){mov_y_mais();
amandarm 79:b9e2d020240c 1135 lcd.cls();
amandarm 79:b9e2d020240c 1136 lcd.printf("Y: %4.1f", coord_y);}
amandarm 79:b9e2d020240c 1137 if(tecla=='A'){
enricoan 80:3a69b08e062f 1138 pos_y_pega[programa] = coord_y;
enricoan 80:3a69b08e062f 1139 printf("Posicao de y salva!");
enricoan 80:3a69b08e062f 1140 printf("Posicao Y: %4.1f", coord_y);
enricoan 80:3a69b08e062f 1141 continuar = 0;}
amandarm 79:b9e2d020240c 1142 }
enricoan 63:32ba7c4becfc 1143 }
amandarm 79:b9e2d020240c 1144 else if(tecla == 'B' && status_tela == "pos_x"){ ///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Hiroball 85:10dec681c389 1145 status_tela = "novo";
Hiroball 85:10dec681c389 1146 continuar = 1;
Hiroball 85:10dec681c389 1147 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);}
amandarm 35:a8256801e9ab 1148
enricoan 63:32ba7c4becfc 1149 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1150 // wait(t_teclado);
enricoan 63:32ba7c4becfc 1151 //passando direto
Hiroball 70:85daa4aee916 1152
Hiroball 70:85daa4aee916 1153 //Ações para a tela pos_y
enricoan 28:c4733814201a 1154 if(tecla == 'A' && status_tela == "pos_y"){
Hiroball 85:10dec681c389 1155 status_tela ="novo";
Hiroball 85:10dec681c389 1156 continuar = 1;
Hiroball 85:10dec681c389 1157 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa], volume_pega[programa], pos_y_pega[programa],0,3);
enricoan 58:d573b618f45a 1158 }
enricoan 80:3a69b08e062f 1159
enricoan 28:c4733814201a 1160 else if(tecla == 'B' && status_tela == "pos_y"){
enricoan 80:3a69b08e062f 1161 funcao_pega_pos_x();
enricoan 80:3a69b08e062f 1162 status_tela = "pos_x";
amandarm 79:b9e2d020240c 1163 continuar = 1;
enricoan 80:3a69b08e062f 1164 while(continuar){
enricoan 80:3a69b08e062f 1165 tecla = pega_tecla();
amandarm 79:b9e2d020240c 1166 if(x_menos == 0){mov_x_menos();
amandarm 79:b9e2d020240c 1167 lcd.cls();
amandarm 79:b9e2d020240c 1168 lcd.printf("X: %4.1f", coord_x);}
amandarm 79:b9e2d020240c 1169 else if(x_mais == 0){mov_x_mais();
amandarm 79:b9e2d020240c 1170 lcd.cls();
amandarm 79:b9e2d020240c 1171 lcd.printf("X: %4.1f", coord_x);}
amandarm 79:b9e2d020240c 1172 if(tecla=='A'){
amandarm 79:b9e2d020240c 1173 continuar = 0;
enricoan 80:3a69b08e062f 1174 printf("Posicao de x salva!");
amandarm 79:b9e2d020240c 1175 printf("Posicao X: %4.1f", coord_x);
amandarm 79:b9e2d020240c 1176 }
amandarm 79:b9e2d020240c 1177 }
enricoan 80:3a69b08e062f 1178 }
amandarm 55:4d071fb49f24 1179
enricoan 71:c91c96bbed54 1180 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"){
enricoan 89:bc51c6bbe2a6 1181 status_tela="solta";
enricoan 90:388071e54291 1182 est_ihm = "solta";
enricoan 89:bc51c6bbe2a6 1183 continuar = 1;
enricoan 89:bc51c6bbe2a6 1184 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);}
enricoan 90:388071e54291 1185 }//fim if(est_ihm == "pega")
enricoan 90:388071e54291 1186
enricoan 90:388071e54291 1187 if(est_ihm == "solta"){
Hiroball 70:85daa4aee916 1188 //Ações para a tela "solta", para definir informações sobre os solta's
amandarm 55:4d071fb49f24 1189 if(tecla == '1' && status_tela == "solta"){
amandarm 55:4d071fb49f24 1190 funcao_solta_dimensao();
Hiroball 61:be02d7d4e208 1191 continuar = 1;
Hiroball 61:be02d7d4e208 1192 diametro_solta = 0;
amandarm 55:4d071fb49f24 1193 status_tela="solta_dimensao";
Hiroball 61:be02d7d4e208 1194 lcd.locate(0,2);
Hiroball 61:be02d7d4e208 1195 while(continuar){
Hiroball 61:be02d7d4e208 1196 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1197 wait(t_teclado);
Hiroball 61:be02d7d4e208 1198 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 1199 diametro_solta = multiplicador*diametro_solta + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 1200 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 1201 }
Hiroball 61:be02d7d4e208 1202 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 1203 printf("Diametro do solta inputado!");
Hiroball 61:be02d7d4e208 1204 printf("Diametro do solta: %d", diametro_solta);
Hiroball 61:be02d7d4e208 1205 continuar = 0;
Hiroball 61:be02d7d4e208 1206 }
Hiroball 61:be02d7d4e208 1207 else if(tecla=='B'){
Hiroball 61:be02d7d4e208 1208 funcao_pega_forma();
Hiroball 61:be02d7d4e208 1209 status_tela = "solta";
Hiroball 85:10dec681c389 1210 continuar = 1;
Hiroball 85:10dec681c389 1211 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 69:8c7e1da9d315 1212 }
Hiroball 61:be02d7d4e208 1213 }
Hiroball 61:be02d7d4e208 1214 }
Hiroball 61:be02d7d4e208 1215
amandarm 55:4d071fb49f24 1216 else if(tecla == '2' && status_tela == "solta"){
enricoan 96:1d22b8d61e30 1217 funcao_solta_vol();
enricoan 96:1d22b8d61e30 1218 status_tela="solta_vol";
enricoan 96:1d22b8d61e30 1219 }
enricoan 96:1d22b8d61e30 1220 else if(tecla == '1' && status_tela == "solta_vol"){
enricoan 98:712ac6d10522 1221 funcao_solta_vol_igual();
enricoan 96:1d22b8d61e30 1222 status_tela = "solta_vol_igual";
Hiroball 61:be02d7d4e208 1223 lcd.locate(0,2);
enricoan 98:712ac6d10522 1224 continuar = 1;
Hiroball 61:be02d7d4e208 1225 while(continuar){
Hiroball 61:be02d7d4e208 1226 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1227 wait(t_teclado);
Hiroball 61:be02d7d4e208 1228 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
Hiroball 61:be02d7d4e208 1229 volume_solta = multiplicador*volume_solta + ((int)tecla - 48);
Hiroball 61:be02d7d4e208 1230 lcd.printf("%c",tecla);
Hiroball 61:be02d7d4e208 1231 }
Hiroball 61:be02d7d4e208 1232 else if(tecla == 'A'){
Hiroball 61:be02d7d4e208 1233 printf("Volume solta inputado!");
Hiroball 61:be02d7d4e208 1234 printf("Volume: %d", volume_solta);
Hiroball 61:be02d7d4e208 1235 continuar = 0;
enricoan 96:1d22b8d61e30 1236 volume_solta_1[programa]=volume;
enricoan 96:1d22b8d61e30 1237 volume_solta_2[programa]=volume;
enricoan 96:1d22b8d61e30 1238 volume_solta_3[programa]=volume;
enricoan 96:1d22b8d61e30 1239 volume_solta_4[programa]=volume;
enricoan 96:1d22b8d61e30 1240 volume_solta_5[programa]=volume;
enricoan 96:1d22b8d61e30 1241 volume_solta_6[programa]=volume;
enricoan 96:1d22b8d61e30 1242 volume_solta_7[programa]=volume;
enricoan 96:1d22b8d61e30 1243 volume_solta_8[programa]=volume;
enricoan 96:1d22b8d61e30 1244 volume_solta_9[programa]=volume;
Hiroball 61:be02d7d4e208 1245 }
Hiroball 61:be02d7d4e208 1246 else if(tecla=='B'){
enricoan 98:712ac6d10522 1247 funcao_solta_vol();
Hiroball 61:be02d7d4e208 1248 status_tela = "solta";
enricoan 98:712ac6d10522 1249 continuar = 0;
Hiroball 61:be02d7d4e208 1250 }
amandarm 55:4d071fb49f24 1251 }
Hiroball 85:10dec681c389 1252 }
enricoan 98:712ac6d10522 1253
amandarm 55:4d071fb49f24 1254 else if(tecla == '3' && status_tela == "solta"){
amandarm 55:4d071fb49f24 1255 funcao_solta_pos_x();
amandarm 55:4d071fb49f24 1256 status_tela="solta_pos_x";
Hiroball 61:be02d7d4e208 1257 continuar = 1;
Hiroball 61:be02d7d4e208 1258 while(continuar){
enricoan 63:32ba7c4becfc 1259 tecla = pega_tecla();
enricoan 63:32ba7c4becfc 1260 if(x_menos == 0){mov_x_menos();
Hiroball 61:be02d7d4e208 1261 lcd.cls();
Hiroball 61:be02d7d4e208 1262 lcd.printf("X: %4.1f", coord_x);}
enricoan 63:32ba7c4becfc 1263 else if(x_mais == 0){mov_x_mais();
Hiroball 61:be02d7d4e208 1264 lcd.cls();
Hiroball 61:be02d7d4e208 1265 lcd.printf("X: %4.1f", coord_x);}
Hiroball 61:be02d7d4e208 1266 if(tecla=='A'){
enricoan 90:388071e54291 1267 pos_x_solta[programa] = coord_x;
Hiroball 61:be02d7d4e208 1268 continuar = 0;
Hiroball 61:be02d7d4e208 1269 printf("Posicao de x salva!");
Hiroball 61:be02d7d4e208 1270 printf("Posicao X: %4.1f", coord_x);
Hiroball 61:be02d7d4e208 1271 }
amandarm 55:4d071fb49f24 1272 }
Hiroball 61:be02d7d4e208 1273 }
amandarm 55:4d071fb49f24 1274 else if(tecla == 'B' && status_tela == "solta"){
Hiroball 85:10dec681c389 1275 continuar = 1;
enricoan 71:c91c96bbed54 1276 status_tela="novo";
Hiroball 85:10dec681c389 1277 troca_tela(continuar, funcao_pega1, funcao_pega2, medida_lado_pega[programa],volume_pega[programa], pos_y_pega[programa],0,3);
amandarm 55:4d071fb49f24 1278 }
amandarm 55:4d071fb49f24 1279
amandarm 55:4d071fb49f24 1280 tecla=pega_tecla();
Hiroball 70:85daa4aee916 1281 //Ações para a tela solta_dimensao, para definir informações sobre a dimensão do solta
amandarm 55:4d071fb49f24 1282 if(tecla=='A' && status_tela=="solta_dimensao"){
enricoan 67:ecd4feb40f94 1283 dimensao_solta[programa] = 10;
Hiroball 85:10dec681c389 1284 continuar = 1;
amandarm 55:4d071fb49f24 1285 status_tela="solta";
Hiroball 85:10dec681c389 1286 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 55:4d071fb49f24 1287 }
amandarm 55:4d071fb49f24 1288 else if(tecla=='B' && status_tela=="solta_dimensao"){
Hiroball 85:10dec681c389 1289 continuar = 1;
Hiroball 85:10dec681c389 1290 status_tela="solta";
Hiroball 85:10dec681c389 1291 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 55:4d071fb49f24 1292 }
amandarm 55:4d071fb49f24 1293 if(tecla=='1' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 1294 funcao_solta_vol_igual();
amandarm 55:4d071fb49f24 1295 status_tela="solta_vol_igual";
amandarm 55:4d071fb49f24 1296 }
amandarm 55:4d071fb49f24 1297 else if(tecla=='2' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 1298 funcao_solta_vol_cada();
enricoan 98:712ac6d10522 1299 lcd.locate(11,0);lcd.printf("%d",volume_solta_1[programa]);
enricoan 98:712ac6d10522 1300 lcd.locate(14,0);lcd.printf("%d",volume_solta_2[programa]);
enricoan 98:712ac6d10522 1301 lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]);
enricoan 98:712ac6d10522 1302
enricoan 98:712ac6d10522 1303 lcd.locate(11,1);lcd.printf("%d",volume_solta_4[programa]);
enricoan 98:712ac6d10522 1304 lcd.locate(14,1);lcd.printf("%d",volume_solta_5[programa]);
enricoan 98:712ac6d10522 1305 lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]);
enricoan 98:712ac6d10522 1306
enricoan 98:712ac6d10522 1307 lcd.locate(11,2);lcd.printf("%d",volume_solta_7[programa]);
enricoan 98:712ac6d10522 1308 lcd.locate(14,2);lcd.printf("%d",volume_solta_8[programa]);
enricoan 98:712ac6d10522 1309 lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]);
amandarm 55:4d071fb49f24 1310 status_tela="solta_vol_dif";
amandarm 55:4d071fb49f24 1311 }
amandarm 55:4d071fb49f24 1312 else if(tecla=='B' && status_tela=="solta_vol"){
amandarm 55:4d071fb49f24 1313 status_tela="solta";
Hiroball 85:10dec681c389 1314 continuar = 1;
Hiroball 85:10dec681c389 1315 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 55:4d071fb49f24 1316 }
enricoan 56:e748b9bd5e3c 1317 if(tecla=='A' && status_tela=="solta_pos_x"){
amandarm 55:4d071fb49f24 1318 funcao_solta_pos_y();
enricoan 56:e748b9bd5e3c 1319 status_tela="solta_pos_y";
enricoan 90:388071e54291 1320 continuar = 1;
enricoan 90:388071e54291 1321 wait(1);
enricoan 90:388071e54291 1322 while(continuar){
enricoan 90:388071e54291 1323 tecla = pega_tecla();
enricoan 90:388071e54291 1324 if(y_menos == 0){mov_y_menos();
enricoan 90:388071e54291 1325 lcd.cls();
enricoan 90:388071e54291 1326 lcd.printf("Y: %4.1f", coord_y);}
enricoan 90:388071e54291 1327 else if(y_mais == 0){mov_y_mais();
enricoan 90:388071e54291 1328 lcd.cls();
enricoan 90:388071e54291 1329 lcd.printf("Y: %4.1f", coord_y);}
enricoan 90:388071e54291 1330 if(tecla=='A'){
enricoan 90:388071e54291 1331 pos_y_solta[programa] = coord_y;
enricoan 90:388071e54291 1332 printf("Posicao de y salva!");
enricoan 90:388071e54291 1333 printf("Posicao Y: %4.1f", coord_y);
enricoan 90:388071e54291 1334 continuar = 0;}
enricoan 90:388071e54291 1335 }
amandarm 55:4d071fb49f24 1336 }
enricoan 56:e748b9bd5e3c 1337 else if(tecla=='B' && status_tela=="solta_pos_x"){
amandarm 55:4d071fb49f24 1338 status_tela="solta";
Hiroball 85:10dec681c389 1339 continuar = 1;
Hiroball 85:10dec681c389 1340 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 55:4d071fb49f24 1341 }
amandarm 55:4d071fb49f24 1342
amandarm 55:4d071fb49f24 1343 tecla=pega_tecla();
amandarm 55:4d071fb49f24 1344 if(tecla=='A' && status_tela=="solta_vol_igual"){
Hiroball 85:10dec681c389 1345 status_tela="solta";
Hiroball 85:10dec681c389 1346 continuar = 1;
Hiroball 85:10dec681c389 1347 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 69:8c7e1da9d315 1348 }
amandarm 55:4d071fb49f24 1349 else if(tecla=='B' && status_tela=="solta_vol_igual"){
amandarm 55:4d071fb49f24 1350 funcao_solta_vol();
amandarm 55:4d071fb49f24 1351 status_tela="solta_vol";
amandarm 55:4d071fb49f24 1352 }
enricoan 96:1d22b8d61e30 1353
amandarm 55:4d071fb49f24 1354 if(tecla=='A' && status_tela=="solta_vol_dif"){
Hiroball 85:10dec681c389 1355 status_tela="solta";
Hiroball 85:10dec681c389 1356 continuar = 1;
Hiroball 85:10dec681c389 1357 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 55:4d071fb49f24 1358 }
enricoan 96:1d22b8d61e30 1359 else if(tecla =='B' && status_tela =="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1360 funcao_salvo_vol_solta_modifica();
enricoan 96:1d22b8d61e30 1361 wait(5);
enricoan 96:1d22b8d61e30 1362 funcao_salvo_agree_solta_vol();
enricoan 96:1d22b8d61e30 1363 lcd.locate(2,0);lcd.printf("%d",volume_solta_1[programa]);
enricoan 96:1d22b8d61e30 1364 lcd.locate(9,0);lcd.printf("%d",volume_solta_2[programa]);
enricoan 96:1d22b8d61e30 1365 lcd.locate(17,0);lcd.printf("%d",volume_solta_3[programa]);
enricoan 96:1d22b8d61e30 1366
enricoan 96:1d22b8d61e30 1367 lcd.locate(2,1);lcd.printf("%d",volume_solta_4[programa]);
enricoan 96:1d22b8d61e30 1368 lcd.locate(9,1);lcd.printf("%d",volume_solta_5[programa]);
enricoan 96:1d22b8d61e30 1369 lcd.locate(17,1);lcd.printf("%d",volume_solta_6[programa]);
enricoan 96:1d22b8d61e30 1370
enricoan 96:1d22b8d61e30 1371 lcd.locate(2,2);lcd.printf("%d",volume_solta_7[programa]);
enricoan 96:1d22b8d61e30 1372 lcd.locate(9,2);lcd.printf("%d",volume_solta_8[programa]);
enricoan 96:1d22b8d61e30 1373 lcd.locate(17,2);lcd.printf("%d",volume_solta_9[programa]);
enricoan 96:1d22b8d61e30 1374 bool cleber = 1;
enricoan 96:1d22b8d61e30 1375 while(cleber){
enricoan 96:1d22b8d61e30 1376 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1377 wait(t_teclado);
enricoan 96:1d22b8d61e30 1378 if(tecla != 'A'){
enricoan 96:1d22b8d61e30 1379 if(tecla == '1' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1380 printf("entrou if 1 salvo_conf");
enricoan 96:1d22b8d61e30 1381 volume = 0;
enricoan 96:1d22b8d61e30 1382 continuar = 1;
enricoan 96:1d22b8d61e30 1383 lcd.locate(2,0);
enricoan 96:1d22b8d61e30 1384 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1385 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1386 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1387 wait(t_teclado);
enricoan 96:1d22b8d61e30 1388 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1389 if(volume*10 < 100)
enricoan 96:1d22b8d61e30 1390 {
enricoan 96:1d22b8d61e30 1391 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1392 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1393 }
enricoan 96:1d22b8d61e30 1394 else{
enricoan 96:1d22b8d61e30 1395 volume = 0;
enricoan 96:1d22b8d61e30 1396 lcd.locate(2,0);}
enricoan 96:1d22b8d61e30 1397 }
enricoan 96:1d22b8d61e30 1398 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1399 tecla = 'k';
enricoan 96:1d22b8d61e30 1400 continuar = 0;
enricoan 96:1d22b8d61e30 1401 volume_solta_1[programa]=volume;
enricoan 96:1d22b8d61e30 1402 }
enricoan 96:1d22b8d61e30 1403 }
enricoan 96:1d22b8d61e30 1404 }
enricoan 96:1d22b8d61e30 1405 else if(tecla=='2' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1406 volume = 0;
enricoan 96:1d22b8d61e30 1407 continuar = 1;
enricoan 96:1d22b8d61e30 1408 multiplicador = 10;
enricoan 96:1d22b8d61e30 1409 lcd.locate(9,0);
enricoan 96:1d22b8d61e30 1410 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1411 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1412 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1413 wait(t_teclado);
enricoan 96:1d22b8d61e30 1414 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1415 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1416 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1417 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1418 }
enricoan 96:1d22b8d61e30 1419 else{
enricoan 96:1d22b8d61e30 1420 volume = 0;
enricoan 96:1d22b8d61e30 1421 lcd.locate(9,0);}
enricoan 96:1d22b8d61e30 1422 }
enricoan 96:1d22b8d61e30 1423 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1424 continuar = 0;
enricoan 96:1d22b8d61e30 1425 volume_solta_2[programa]=volume;
enricoan 96:1d22b8d61e30 1426 }
enricoan 96:1d22b8d61e30 1427 }
enricoan 96:1d22b8d61e30 1428 }
enricoan 96:1d22b8d61e30 1429 else if(tecla=='3' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1430 volume = 0;
enricoan 96:1d22b8d61e30 1431 continuar = 1;
enricoan 96:1d22b8d61e30 1432 multiplicador = 10;
enricoan 96:1d22b8d61e30 1433 lcd.locate(17,0);
enricoan 96:1d22b8d61e30 1434 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1435 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1436 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1437 wait(t_teclado);
enricoan 96:1d22b8d61e30 1438 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1439 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1440 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1441 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1442 }
enricoan 96:1d22b8d61e30 1443 else{
enricoan 96:1d22b8d61e30 1444 volume = 0;
enricoan 96:1d22b8d61e30 1445 lcd.locate(17,0);}
enricoan 96:1d22b8d61e30 1446 }
enricoan 96:1d22b8d61e30 1447 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1448 continuar = 0;
enricoan 96:1d22b8d61e30 1449 volume_solta_3[programa]=volume;
enricoan 96:1d22b8d61e30 1450 }
enricoan 96:1d22b8d61e30 1451 }
enricoan 96:1d22b8d61e30 1452 }
enricoan 96:1d22b8d61e30 1453 else if(tecla=='4' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1454 volume = 0;
enricoan 96:1d22b8d61e30 1455 continuar = 1;
enricoan 96:1d22b8d61e30 1456 multiplicador = 10;
enricoan 96:1d22b8d61e30 1457 lcd.locate(2,1);
enricoan 96:1d22b8d61e30 1458 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1459 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1460 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1461 wait(t_teclado);
enricoan 96:1d22b8d61e30 1462 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1463 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1464 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1465 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1466 }
enricoan 96:1d22b8d61e30 1467 else{
enricoan 96:1d22b8d61e30 1468 volume = 0;
enricoan 96:1d22b8d61e30 1469 lcd.locate(2,1);}
enricoan 96:1d22b8d61e30 1470 }
enricoan 96:1d22b8d61e30 1471 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1472 continuar = 0;
enricoan 96:1d22b8d61e30 1473 volume_solta_4[programa]=volume;
enricoan 96:1d22b8d61e30 1474 }
enricoan 96:1d22b8d61e30 1475 }
enricoan 96:1d22b8d61e30 1476 }
enricoan 96:1d22b8d61e30 1477 else if(tecla=='5' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1478 volume = 0;
enricoan 96:1d22b8d61e30 1479 continuar = 1;
enricoan 96:1d22b8d61e30 1480 multiplicador = 10;
enricoan 96:1d22b8d61e30 1481 lcd.locate(9,1);
enricoan 96:1d22b8d61e30 1482 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1483 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1484 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1485 wait(t_teclado);
enricoan 96:1d22b8d61e30 1486 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1487 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1488 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1489 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1490 }
enricoan 96:1d22b8d61e30 1491 else{
enricoan 96:1d22b8d61e30 1492 volume = 0;
enricoan 96:1d22b8d61e30 1493 lcd.locate(9,1);}
enricoan 96:1d22b8d61e30 1494 }
enricoan 96:1d22b8d61e30 1495 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1496 continuar = 0;
enricoan 96:1d22b8d61e30 1497 volume_solta_5[programa]=volume;
enricoan 96:1d22b8d61e30 1498 }
enricoan 96:1d22b8d61e30 1499 }
enricoan 96:1d22b8d61e30 1500 }
enricoan 96:1d22b8d61e30 1501 else if(tecla=='6' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1502 volume = 0;
enricoan 96:1d22b8d61e30 1503 continuar = 1;
enricoan 96:1d22b8d61e30 1504 multiplicador = 10;
enricoan 96:1d22b8d61e30 1505 lcd.locate(17,1);
enricoan 96:1d22b8d61e30 1506 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1507 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1508 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1509 wait(t_teclado);
enricoan 96:1d22b8d61e30 1510 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1511 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1512 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1513 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1514 }
enricoan 96:1d22b8d61e30 1515 else{
enricoan 96:1d22b8d61e30 1516 volume = 0;
enricoan 96:1d22b8d61e30 1517 lcd.locate(17,1);}
enricoan 96:1d22b8d61e30 1518 }
enricoan 96:1d22b8d61e30 1519 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1520 continuar = 0;
enricoan 96:1d22b8d61e30 1521 volume_solta_6[programa]=volume;
enricoan 96:1d22b8d61e30 1522 }
enricoan 96:1d22b8d61e30 1523 }
enricoan 96:1d22b8d61e30 1524 }
enricoan 96:1d22b8d61e30 1525 else if(tecla=='7' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1526 volume = 0;
enricoan 96:1d22b8d61e30 1527 continuar = 1;
enricoan 96:1d22b8d61e30 1528 multiplicador = 10;
enricoan 96:1d22b8d61e30 1529 lcd.locate(2,2);
enricoan 96:1d22b8d61e30 1530 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1531 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1532 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1533 wait(t_teclado);
enricoan 96:1d22b8d61e30 1534 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1535 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1536 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1537 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1538 }
enricoan 96:1d22b8d61e30 1539 else{
enricoan 96:1d22b8d61e30 1540 volume = 0;
enricoan 96:1d22b8d61e30 1541 lcd.locate(2,2);}
enricoan 96:1d22b8d61e30 1542 }
enricoan 96:1d22b8d61e30 1543 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1544 continuar = 0;
enricoan 96:1d22b8d61e30 1545 volume_solta_7[programa]=volume;
enricoan 96:1d22b8d61e30 1546 }
enricoan 96:1d22b8d61e30 1547 }
enricoan 96:1d22b8d61e30 1548 }
enricoan 96:1d22b8d61e30 1549 else if(tecla=='8' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1550 volume = 0;
enricoan 96:1d22b8d61e30 1551 continuar = 1;
enricoan 96:1d22b8d61e30 1552 multiplicador = 10;
enricoan 96:1d22b8d61e30 1553 lcd.locate(9,2);
enricoan 96:1d22b8d61e30 1554 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1555 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1556 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1557 wait(t_teclado);
enricoan 96:1d22b8d61e30 1558 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1559 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1560 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1561 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1562 }
enricoan 96:1d22b8d61e30 1563 else{
enricoan 96:1d22b8d61e30 1564 volume = 0;
enricoan 96:1d22b8d61e30 1565 lcd.locate(9,2);}
enricoan 96:1d22b8d61e30 1566 }
enricoan 96:1d22b8d61e30 1567 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1568 continuar = 0;
enricoan 96:1d22b8d61e30 1569 volume_solta_8[programa]=volume;
enricoan 96:1d22b8d61e30 1570 }
enricoan 96:1d22b8d61e30 1571 }
enricoan 96:1d22b8d61e30 1572 }
enricoan 96:1d22b8d61e30 1573 else if(tecla=='9' && status_tela=="solta_vol_dif"){
enricoan 96:1d22b8d61e30 1574 volume = 0;
enricoan 96:1d22b8d61e30 1575 continuar = 1;
enricoan 96:1d22b8d61e30 1576 multiplicador = 10;
enricoan 96:1d22b8d61e30 1577 lcd.locate(17,2);
enricoan 96:1d22b8d61e30 1578 while(continuar){ // Pega o valor imputado pelo usuário
enricoan 96:1d22b8d61e30 1579 printf("\n%c",pega_tecla());
enricoan 96:1d22b8d61e30 1580 tecla = pega_tecla();
enricoan 96:1d22b8d61e30 1581 wait(t_teclado);
enricoan 96:1d22b8d61e30 1582 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
enricoan 96:1d22b8d61e30 1583 if(volume*10 < 100){
enricoan 96:1d22b8d61e30 1584 volume = multiplicador*volume + ((int)tecla-48);//((int)tecla-48) é o valor real da tecla pressionada em inteiro
enricoan 96:1d22b8d61e30 1585 lcd.printf("%c", tecla);
enricoan 96:1d22b8d61e30 1586 }
enricoan 96:1d22b8d61e30 1587 else{
enricoan 96:1d22b8d61e30 1588 volume = 0;
enricoan 96:1d22b8d61e30 1589 lcd.locate(17,2);}
enricoan 96:1d22b8d61e30 1590 }
enricoan 96:1d22b8d61e30 1591 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1592 continuar = 0;
enricoan 96:1d22b8d61e30 1593 volume_solta_9[programa]=volume;
enricoan 96:1d22b8d61e30 1594 }
enricoan 96:1d22b8d61e30 1595 }
enricoan 96:1d22b8d61e30 1596 }
enricoan 96:1d22b8d61e30 1597 else if(tecla == 'B' && status_tela == "solta_vol_dif"){
enricoan 98:712ac6d10522 1598 funcao_solta_vol();
enricoan 96:1d22b8d61e30 1599 status_tela = "solta_vol";
enricoan 96:1d22b8d61e30 1600 cleber = 0;}
enricoan 96:1d22b8d61e30 1601 }//fim do if (tecla !=A)
enricoan 96:1d22b8d61e30 1602 else if(tecla == 'A'){
enricoan 96:1d22b8d61e30 1603 printf("\nfalou clebao");
enricoan 96:1d22b8d61e30 1604 cleber = 0;}
enricoan 96:1d22b8d61e30 1605 }//fim do while(cleber)
enricoan 96:1d22b8d61e30 1606 confirmacao_vol_solta[programa]=1;}//fim do else if(tecla =='B' && status_tela =="salvo_conf_vol_solta")
enricoan 96:1d22b8d61e30 1607
enricoan 56:e748b9bd5e3c 1608 if(tecla=='A' && status_tela=="solta_pos_y"){
amandarm 55:4d071fb49f24 1609 status_tela="solta";
Hiroball 85:10dec681c389 1610 continuar = 1;
Hiroball 85:10dec681c389 1611 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 55:4d071fb49f24 1612 }
enricoan 56:e748b9bd5e3c 1613 else if(tecla=='B' && status_tela=="solta_pos_y"){
Hiroball 85:10dec681c389 1614 status_tela="solta";
Hiroball 85:10dec681c389 1615 continuar = 1;
Hiroball 85:10dec681c389 1616 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
Hiroball 85:10dec681c389 1617 }
Hiroball 72:aa3902facc8c 1618 //Ações para a tela acompanhamento (execução do programa)
Hiroball 72:aa3902facc8c 1619 //MAtriz 3x3 (6x6cm)
enricoan 80:3a69b08e062f 1620 int nome;
enricoan 80:3a69b08e062f 1621 if(pos_x_solta[programa]!=0 && pos_y_solta[programa]!=0 && volume_solta_9[programa]!=0 && dimensao_solta[programa]!=0 && status_tela == "solta"){
enricoan 80:3a69b08e062f 1622 printf("rotina exec");
enricoan 80:3a69b08e062f 1623 funcao_nome_prog();
enricoan 90:388071e54291 1624 wait(1);
amandarm 79:b9e2d020240c 1625 status_tela="nome_programa";}
enricoan 90:388071e54291 1626 if(tecla=='B' && status_tela=="nome_programa"){
amandarm 79:b9e2d020240c 1627 status_tela="solta";
Hiroball 85:10dec681c389 1628 continuar = 1;
Hiroball 85:10dec681c389 1629 troca_tela(continuar, funcao_solta1, funcao_solta2, dimensao_solta[programa],volume_solta_9[programa], pos_y_solta[programa],0,3);
amandarm 79:b9e2d020240c 1630 }
enricoan 80:3a69b08e062f 1631 else if(tecla=='A' && status_tela=="nome_programa"){
amandarm 79:b9e2d020240c 1632 //!!!!!!!!!!!!!! colocar o códgio de pegar o valor do usuário
amandarm 79:b9e2d020240c 1633 nome=1;
amandarm 79:b9e2d020240c 1634 continuar=1;
amandarm 79:b9e2d020240c 1635 while(continuar){
amandarm 79:b9e2d020240c 1636 tecla = pega_tecla();
enricoan 89:bc51c6bbe2a6 1637 wait(t_teclado);
amandarm 79:b9e2d020240c 1638 if(tecla!= 'A' && tecla!='B' && tecla!= 'k'){
amandarm 79:b9e2d020240c 1639 nome = multiplicador*nome + ((int)tecla - 48);
enricoan 80:3a69b08e062f 1640 lcd.cls();
enricoan 80:3a69b08e062f 1641 lcd.printf("%d",nome);
enricoan 80:3a69b08e062f 1642 lcd.locate(0,3);
enricoan 80:3a69b08e062f 1643 lcd.printf("A-Confirmar B-Volta");
amandarm 79:b9e2d020240c 1644 }
enricoan 80:3a69b08e062f 1645 else if(tecla == 'A'){
enricoan 80:3a69b08e062f 1646 printf("nome inserido");
enricoan 80:3a69b08e062f 1647 printf("nome: %d", nome);
enricoan 80:3a69b08e062f 1648 funcao_acomp();
enricoan 90:388071e54291 1649 est_ihm = "exec";
enricoan 80:3a69b08e062f 1650 status_tela="acompanhamento";
enricoan 80:3a69b08e062f 1651 continuar = 0;
enricoan 80:3a69b08e062f 1652 nome_programa[programa]=nome;
enricoan 80:3a69b08e062f 1653 confirmacao_pos_pega[programa]=0;
enricoan 80:3a69b08e062f 1654 confirmacao_pos_solta[programa]=0;
enricoan 80:3a69b08e062f 1655 confirmacao_vol_pega[programa]=0;
enricoan 80:3a69b08e062f 1656 confirmacao_pos_solta[programa]=0;
amandarm 79:b9e2d020240c 1657 }
enricoan 80:3a69b08e062f 1658 }}
enricoan 90:388071e54291 1659 }//fim if(est_ihm == "solta")
enricoan 90:388071e54291 1660
enricoan 90:388071e54291 1661 if(est_ihm == "exec"){
enricoan 90:388071e54291 1662 if(confirmacao_pos_pega[programa]==0 && confirmacao_pos_solta[programa]==0 && confirmacao_vol_pega[programa]==0 && confirmacao_pos_solta[programa]==0 && status_tela == "acompanhamento"){
enricoan 94:0b6ac1cdab84 1663 printf("Entrou em execucao");
Hiroball 81:aa3f095fd82a 1664 int cont_pipeta = 0;
enricoan 90:388071e54291 1665 float altura;
Hiroball 72:aa3902facc8c 1666
enricoan 90:388071e54291 1667 float pos1[2] = {pos_x_solta[programa], pos_y_solta[programa]} ;
enricoan 90:388071e54291 1668 float pos2[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]} ;
enricoan 90:388071e54291 1669 float pos3[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]} ;
enricoan 90:388071e54291 1670 float pos4[2] = {pos_x_solta[programa], pos_y_solta[programa]+2} ;
enricoan 90:388071e54291 1671 float pos5[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+2} ;
enricoan 90:388071e54291 1672 float pos6[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+2} ;
enricoan 90:388071e54291 1673 float pos7[2] = {pos_x_solta[programa], pos_y_solta[programa]+4} ;
enricoan 90:388071e54291 1674 float pos8[2] = {pos_x_solta[programa]+2, pos_y_solta[programa]+4} ;
enricoan 90:388071e54291 1675 float pos9[2] = {pos_x_solta[programa]+4, pos_y_solta[programa]+4};
enricoan 90:388071e54291 1676
enricoan 90:388071e54291 1677
enricoan 90:388071e54291 1678
Hiroball 72:aa3902facc8c 1679 //Calcular a altura do pega com base no tipo do pega
Hiroball 99:409a77673f2d 1680 rotina_pino(volume_solta_1[programa], tipo_pega[programa], medida_lado_pega[programa], volume_pega[programa], cont_pipeta, pos1[0],pos1[1]);
Hiroball 72:aa3902facc8c 1681 for(int i; i<volume_solta_2[programa];i++){
Hiroball 72:aa3902facc8c 1682 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1683 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1684 wait(1);
Hiroball 72:aa3902facc8c 1685 go_to_z(altura);
Hiroball 72:aa3902facc8c 1686 wait(1);
Hiroball 72:aa3902facc8c 1687 pipeta = 0;
Hiroball 72:aa3902facc8c 1688 wait(1);
Hiroball 72:aa3902facc8c 1689 pipeta = 1;
Hiroball 72:aa3902facc8c 1690 wait(1);
Hiroball 72:aa3902facc8c 1691 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1692 wait(1);
Hiroball 72:aa3902facc8c 1693 go_to_posicao(pos2[0],pos2[1]);
Hiroball 72:aa3902facc8c 1694 wait(1);
Hiroball 72:aa3902facc8c 1695 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1696 wait(1);
Hiroball 72:aa3902facc8c 1697 pipeta = 0;
Hiroball 72:aa3902facc8c 1698 wait(1);
Hiroball 72:aa3902facc8c 1699 pipeta = 1;
Hiroball 72:aa3902facc8c 1700 wait(1);
Hiroball 72:aa3902facc8c 1701 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1702 wait(1);
Hiroball 72:aa3902facc8c 1703 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1704 }
Hiroball 72:aa3902facc8c 1705 for(int i; i<volume_solta_3[programa];i++){
Hiroball 72:aa3902facc8c 1706 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1707 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1708 wait(1);
Hiroball 72:aa3902facc8c 1709 go_to_z(altura);
Hiroball 72:aa3902facc8c 1710 wait(1);
Hiroball 72:aa3902facc8c 1711 pipeta = 0;
Hiroball 72:aa3902facc8c 1712 wait(1);
Hiroball 72:aa3902facc8c 1713 pipeta = 1;
Hiroball 72:aa3902facc8c 1714 wait(1);
Hiroball 72:aa3902facc8c 1715 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1716 wait(1);
Hiroball 72:aa3902facc8c 1717 go_to_posicao(pos3[0],pos3[1]);
Hiroball 72:aa3902facc8c 1718 wait(1);
Hiroball 72:aa3902facc8c 1719 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1720 wait(1);
Hiroball 72:aa3902facc8c 1721 pipeta = 0;
Hiroball 72:aa3902facc8c 1722 wait(1);
Hiroball 72:aa3902facc8c 1723 pipeta = 1;
Hiroball 72:aa3902facc8c 1724 wait(1);
Hiroball 72:aa3902facc8c 1725 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1726 wait(1);
Hiroball 72:aa3902facc8c 1727 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1728
Hiroball 72:aa3902facc8c 1729 }
Hiroball 72:aa3902facc8c 1730 for(int i; i<volume_solta_4[programa];i++){
Hiroball 72:aa3902facc8c 1731 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1732 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1733 go_to_z(altura);
Hiroball 72:aa3902facc8c 1734 pipeta = 0;
Hiroball 72:aa3902facc8c 1735 wait(1);
Hiroball 72:aa3902facc8c 1736 pipeta = 1;
Hiroball 72:aa3902facc8c 1737 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1738 go_to_posicao(pos4[0],pos4[1]);
Hiroball 72:aa3902facc8c 1739 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1740 pipeta = 0;
Hiroball 72:aa3902facc8c 1741 wait(1);
Hiroball 72:aa3902facc8c 1742 pipeta = 1;
Hiroball 72:aa3902facc8c 1743 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1744 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1745 }
Hiroball 72:aa3902facc8c 1746 for(int i; i<volume_solta_5[programa];i++){
Hiroball 72:aa3902facc8c 1747 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1748 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1749 go_to_z(altura);
Hiroball 72:aa3902facc8c 1750 pipeta = 0;
Hiroball 72:aa3902facc8c 1751 wait(1);
Hiroball 72:aa3902facc8c 1752 pipeta = 1;
Hiroball 72:aa3902facc8c 1753 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1754 go_to_posicao(pos5[0],pos5[1]);
Hiroball 72:aa3902facc8c 1755 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1756 pipeta = 0;
Hiroball 72:aa3902facc8c 1757 wait(1);
Hiroball 72:aa3902facc8c 1758 pipeta = 1;
Hiroball 72:aa3902facc8c 1759 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1760 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1761
Hiroball 72:aa3902facc8c 1762 }
Hiroball 72:aa3902facc8c 1763 for(int i; i<volume_solta_6[programa];i++){
Hiroball 72:aa3902facc8c 1764 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1765 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1766 go_to_z(altura);
Hiroball 72:aa3902facc8c 1767 pipeta = 0;
Hiroball 72:aa3902facc8c 1768 wait(1);
Hiroball 72:aa3902facc8c 1769 pipeta = 1;
Hiroball 72:aa3902facc8c 1770 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1771 go_to_posicao(pos6[0],pos6[1]);
Hiroball 72:aa3902facc8c 1772 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1773 pipeta = 0;
Hiroball 72:aa3902facc8c 1774 wait(1);
Hiroball 72:aa3902facc8c 1775 pipeta = 1;
Hiroball 72:aa3902facc8c 1776 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1777 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1778
Hiroball 72:aa3902facc8c 1779 }
Hiroball 72:aa3902facc8c 1780 for(int i; i<volume_solta_7[programa];i++){
Hiroball 72:aa3902facc8c 1781 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1782 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1783 go_to_z(altura);
Hiroball 72:aa3902facc8c 1784 pipeta = 0;
Hiroball 72:aa3902facc8c 1785 wait(1);
Hiroball 72:aa3902facc8c 1786 pipeta = 1;
Hiroball 72:aa3902facc8c 1787 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1788 go_to_posicao(pos7[0],pos7[1]);
Hiroball 72:aa3902facc8c 1789 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1790 pipeta = 0;
Hiroball 72:aa3902facc8c 1791 wait(1);
Hiroball 72:aa3902facc8c 1792 pipeta = 1;
Hiroball 72:aa3902facc8c 1793 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1794 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1795
Hiroball 72:aa3902facc8c 1796 }
Hiroball 72:aa3902facc8c 1797 for(int i; i<volume_solta_8[programa];i++){
Hiroball 72:aa3902facc8c 1798 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1799 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1800 go_to_z(altura);
Hiroball 72:aa3902facc8c 1801 pipeta = 0;
Hiroball 72:aa3902facc8c 1802 wait(1);
Hiroball 72:aa3902facc8c 1803 pipeta = 1;
Hiroball 72:aa3902facc8c 1804 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1805 go_to_posicao(pos8[0],pos8[1]);
Hiroball 72:aa3902facc8c 1806 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1807 pipeta = 0;
Hiroball 72:aa3902facc8c 1808 wait(1);
Hiroball 72:aa3902facc8c 1809 pipeta = 1;
Hiroball 72:aa3902facc8c 1810 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1811 cont_pipeta+=1;
Hiroball 72:aa3902facc8c 1812 }
Hiroball 72:aa3902facc8c 1813 for(int i; i<volume_solta_9[programa];i++){
Hiroball 72:aa3902facc8c 1814 altura = calcula_altura(tipo_pega[programa],medida_lado_pega[programa], volume_pega[programa], cont_pipeta);
Hiroball 72:aa3902facc8c 1815 go_to_posicao(pos_x_pega[programa], pos_y_pega[programa]);
Hiroball 72:aa3902facc8c 1816 go_to_z(altura);
Hiroball 72:aa3902facc8c 1817 pipeta = 0;
Hiroball 72:aa3902facc8c 1818 wait(1);
Hiroball 72:aa3902facc8c 1819 pipeta = 1;
Hiroball 72:aa3902facc8c 1820 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1821 go_to_posicao(pos9[0],pos9[1]);
Hiroball 72:aa3902facc8c 1822 go_to_z(altura_solta);
Hiroball 72:aa3902facc8c 1823 pipeta = 0;
Hiroball 72:aa3902facc8c 1824 wait(1);
Hiroball 72:aa3902facc8c 1825 pipeta = 1;
Hiroball 72:aa3902facc8c 1826 go_to_z(normal_z);
Hiroball 72:aa3902facc8c 1827 cont_pipeta+=1;
enricoan 80:3a69b08e062f 1828 }}
Hiroball 72:aa3902facc8c 1829
enricoan 80:3a69b08e062f 1830 }//fim do else if do meio do codigo
enricoan 90:388071e54291 1831 }//fim do if(est_ihm == "exec")
enricoan 80:3a69b08e062f 1832 }//fim do while(1)
enricoan 80:3a69b08e062f 1833 //fim do int main