testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Mon Jun 22 20:16:36 2020 +0000
Revision:
105:d547091e8d44
Parent:
104:35d857d681ac
Child:
106:a35a10e8cf0d
atualizacoes diversas

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