testando

Dependencies:   mbed TextLCD2

Committer:
enricoan
Date:
Fri Jun 05 13:36:38 2020 +0000
Revision:
78:e1dfd20407fc
Parent:
75:5ed09d16ab1f
Child:
79:b9e2d020240c
comentarios

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