testando

Dependencies:   mbed TextLCD2

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