testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Mon Jun 08 16:27:27 2020 +0000
Revision:
87:6bba4ab5a623
Parent:
85:10dec681c389
Child:
88:bae82f6f91b9
fdc no main_cpp

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