testando

Dependencies:   mbed TextLCD2

Committer:
Hiroball
Date:
Tue Jun 09 23:44:02 2020 +0000
Revision:
95:a34942c4eeaf
Parent:
94:0b6ac1cdab84
Teste modifica_solta;

Who changed what in which revision?

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