Projeto Mecatrônico / Mbed 2 deprecated ProjetoMecatronico

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Wed Jun 10 01:53:55 2020 +0000
Revision:
102:d8e9cb7f3725
Parent:
99:409a77673f2d
execucao em andamento (ja funcionando)

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