testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Tue Jun 23 02:17:03 2020 +0000
Revision:
110:3d7544ac65bf
Parent:
109:cbdf4aaa4da1
10/10

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