testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Wed Jun 10 01:17:24 2020 +0000
Revision:
98:712ac6d10522
Parent:
96:1d22b8d61e30
Child:
99:409a77673f2d
z normal mudado

Who changed what in which revision?

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