Projeto Mecatronico Grupo: Pingos nos I's 2019

Dependencies:   mbed Projeto_Mecatronico Projeto_Mecat_Pingos

Committer:
ligeiro13
Date:
Thu Jun 13 19:46:46 2019 +0000
Revision:
0:61ea5c9ad2de
entrega;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ligeiro13 0:61ea5c9ad2de 1 #include "mbed.h"
ligeiro13 0:61ea5c9ad2de 2 #include "TextLCD.h"
ligeiro13 0:61ea5c9ad2de 3 //#include "LinkedList.h"
ligeiro13 0:61ea5c9ad2de 4 #define espera 100
ligeiro13 0:61ea5c9ad2de 5 #define vel_1 1000
ligeiro13 0:61ea5c9ad2de 6 #define vel_2 1000
ligeiro13 0:61ea5c9ad2de 7 //bibliteca segmento: TextLCD
ligeiro13 0:61ea5c9ad2de 8 /*
ligeiro13 0:61ea5c9ad2de 9 O QUE FAZER
ligeiro13 0:61ea5c9ad2de 10 1-aarrumar o print do COLA? qnd ponto modificado
ligeiro13 0:61ea5c9ad2de 11 2-arrrumar a listadecola quando ponto modificado
ligeiro13 0:61ea5c9ad2de 12 */
ligeiro13 0:61ea5c9ad2de 13
ligeiro13 0:61ea5c9ad2de 14
ligeiro13 0:61ea5c9ad2de 15 //---------------------------------------------------------------------------------ENTRADAS E SAIDAS ANALOGICAS--------------------------------------------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 16 //DigitalIn botaoC(PC_1);// //pino entrada botaoC
ligeiro13 0:61ea5c9ad2de 17 //DigitalIn botaoA(PC_2); // //pino entrada botaoA colar pontos
ligeiro13 0:61ea5c9ad2de 18 int botaoA=1;
ligeiro13 0:61ea5c9ad2de 19 int botaoC=1;
ligeiro13 0:61ea5c9ad2de 20 DigitalIn botao_analog(PC_12);
ligeiro13 0:61ea5c9ad2de 21 //int botao_analog = 1;
ligeiro13 0:61ea5c9ad2de 22 AnalogIn eixo_x(A0);
ligeiro13 0:61ea5c9ad2de 23 AnalogIn eixo_y(A2);
ligeiro13 0:61ea5c9ad2de 24
ligeiro13 0:61ea5c9ad2de 25 DigitalOut enable_x(PA_10);//motor x
ligeiro13 0:61ea5c9ad2de 26 DigitalOut dir_x(PB_5);//motor x
ligeiro13 0:61ea5c9ad2de 27 DigitalOut step_x(PB_3);//motor x
ligeiro13 0:61ea5c9ad2de 28 DigitalIn FimCursoX(PA_6); //entrada fdc eixo x novo
ligeiro13 0:61ea5c9ad2de 29
ligeiro13 0:61ea5c9ad2de 30 DigitalOut enable_y(PB_4);//motor y
ligeiro13 0:61ea5c9ad2de 31 DigitalOut dir_y(PA_8);//motor y
ligeiro13 0:61ea5c9ad2de 32 DigitalOut step_y(PB_10);//motor y
ligeiro13 0:61ea5c9ad2de 33 DigitalIn FimCursoY(PC_8); //entrada fdc eixo y novo
ligeiro13 0:61ea5c9ad2de 34
ligeiro13 0:61ea5c9ad2de 35 DigitalOut enable_z(PA_9);//motor z
ligeiro13 0:61ea5c9ad2de 36 DigitalOut dir_z(PB_6);//motor z
ligeiro13 0:61ea5c9ad2de 37 DigitalOut step_z(PC_7);//motor z
ligeiro13 0:61ea5c9ad2de 38
ligeiro13 0:61ea5c9ad2de 39 DigitalIn FimCursoZ(PB_7); //entrada fdc eixo z novo
ligeiro13 0:61ea5c9ad2de 40
ligeiro13 0:61ea5c9ad2de 41 DigitalIn botao_emergencia(PA_13); //entrada B.E. nova
ligeiro13 0:61ea5c9ad2de 42 DigitalOut aciona_pneu(PC_3);//aciona pneumatica da cola PRESSAO
ligeiro13 0:61ea5c9ad2de 43 DigitalOut aciona_pneu2(PC_2);//aciona pneumatica da cola VALVULA
ligeiro13 0:61ea5c9ad2de 44 //----------------------------------IHM
ligeiro13 0:61ea5c9ad2de 45 TextLCD lcd(PC_13, PA_15, PA_12, PA_11, PB_12, PB_11, TextLCD::LCD20x4); // rs, e , d4-d7
ligeiro13 0:61ea5c9ad2de 46 DigitalIn botao_cima(PB_2);
ligeiro13 0:61ea5c9ad2de 47 DigitalIn botao_enter(PB_1);
ligeiro13 0:61ea5c9ad2de 48 DigitalIn botao_baixo(PB_15);
ligeiro13 0:61ea5c9ad2de 49
ligeiro13 0:61ea5c9ad2de 50 int menu = 1; // Aqui será a seleção dos menus do IHM
ligeiro13 0:61ea5c9ad2de 51 int menu_enter = 0;//referenciando menu se refe =1
ligeiro13 0:61ea5c9ad2de 52 int menu_enter_2 = 0;//menu 2 ADICONAR PONTOS/ MODIFICAR PONTOS COLAR PONTOS
ligeiro13 0:61ea5c9ad2de 53 int flag = 1;
ligeiro13 0:61ea5c9ad2de 54 char strings_x[5]={0,0,0,0,0};
ligeiro13 0:61ea5c9ad2de 55 char ident_eixo;
ligeiro13 0:61ea5c9ad2de 56 int i = 1; //contador de chars
ligeiro13 0:61ea5c9ad2de 57 int linha = 0;//para descer o " >"
ligeiro13 0:61ea5c9ad2de 58 int ponto = 0;//valor de um ponto
ligeiro13 0:61ea5c9ad2de 59 int pontos[10];//numero de pontos
ligeiro13 0:61ea5c9ad2de 60 int cola[10];//lista para saber se ira aplicar cola entre os pontos
ligeiro13 0:61ea5c9ad2de 61 int i_c = 0;// indice da lista cola
ligeiro13 0:61ea5c9ad2de 62 int i_p = 0; //loop i pontos
ligeiro13 0:61ea5c9ad2de 63 int ultimo_p = 0;
ligeiro13 0:61ea5c9ad2de 64 int lista_vel[]={1000,700,500};//lista velocidade dos motores
ligeiro13 0:61ea5c9ad2de 65 int i_v = 0;//indice lista velocidade
ligeiro13 0:61ea5c9ad2de 66 int vel = 0;//velocidade dos motores
ligeiro13 0:61ea5c9ad2de 67 int mover_motores = 0;//permite permitir mover os motores
ligeiro13 0:61ea5c9ad2de 68 int flag_mod = 0;//flag de modificar pontos para add pontos
ligeiro13 0:61ea5c9ad2de 69 int flag_mod2 = 0;//flag de modificar pontos para add COLA
ligeiro13 0:61ea5c9ad2de 70 int flag_emergencia = 0;// flag botao de emergencia
ligeiro13 0:61ea5c9ad2de 71 int flag_emergencia2 = 0;// flag botao de emergencia 2
ligeiro13 0:61ea5c9ad2de 72 int vai_emergencia = 0;// variavel para ser usado a funcao " go to"
ligeiro13 0:61ea5c9ad2de 73
ligeiro13 0:61ea5c9ad2de 74 Serial pc(USBTX , USBRX);// band rate é de 1152000 na Serial Port do Tera Term
ligeiro13 0:61ea5c9ad2de 75 //------------------------------------------------------------------------------------------VARIÁVEIS-------------------------------------------------------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 76
ligeiro13 0:61ea5c9ad2de 77 float passo = 1.8f; //1.8 graus por passo
ligeiro13 0:61ea5c9ad2de 78 float x ; //valor do INPUT analog x
ligeiro13 0:61ea5c9ad2de 79 float y ;//valor do INPUT analog Y
ligeiro13 0:61ea5c9ad2de 80 bool refe; //selecionar a rotina de referenciamento
ligeiro13 0:61ea5c9ad2de 81 bool troca_yz;//troca o eixo y/z
ligeiro13 0:61ea5c9ad2de 82 int posicao_x; //Posicao do passo atual EIXO X
ligeiro13 0:61ea5c9ad2de 83 int posicao_y;//Posicao do passo atual EIXO Y
ligeiro13 0:61ea5c9ad2de 84 int posicao_z;//Posicao do passo atual EIXO Y
ligeiro13 0:61ea5c9ad2de 85 int i_x = -1; // contador lista x
ligeiro13 0:61ea5c9ad2de 86 int i_y = -1; // contador lista y
ligeiro13 0:61ea5c9ad2de 87 int i_z = -1; // contador lista z
ligeiro13 0:61ea5c9ad2de 88 int pontos_x[10]; //lista de pontos X
ligeiro13 0:61ea5c9ad2de 89 int pontos_y[10];//lista de pontos Y
ligeiro13 0:61ea5c9ad2de 90 int pontos_z[10];//lista de pontos Z
ligeiro13 0:61ea5c9ad2de 91 int add;
ligeiro13 0:61ea5c9ad2de 92 int pos;
ligeiro13 0:61ea5c9ad2de 93 int guardar_pontos = 0;//flag para ir ao condicional "guardar pontos"
ligeiro13 0:61ea5c9ad2de 94 int colar_pontos = 0;//flag para ir ao condicional "ir aos pontos"
ligeiro13 0:61ea5c9ad2de 95 //LinkedList<float>pontos;
ligeiro13 0:61ea5c9ad2de 96
ligeiro13 0:61ea5c9ad2de 97 //------------------------------------------------------------------------------------------DEFINICAO DAS FUNÇÕES--------------------------------------------------------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 98
ligeiro13 0:61ea5c9ad2de 99 float passo_mm_xy (int passo_atual)
ligeiro13 0:61ea5c9ad2de 100 {
ligeiro13 0:61ea5c9ad2de 101 float conversao = (passo_atual*3)/200;
ligeiro13 0:61ea5c9ad2de 102 return conversao;
ligeiro13 0:61ea5c9ad2de 103 }
ligeiro13 0:61ea5c9ad2de 104 float passo_mm_z (int passo_atual)
ligeiro13 0:61ea5c9ad2de 105 {
ligeiro13 0:61ea5c9ad2de 106 float conversao = (passo_atual*10)/200;
ligeiro13 0:61ea5c9ad2de 107 return conversao;
ligeiro13 0:61ea5c9ad2de 108 }
ligeiro13 0:61ea5c9ad2de 109
ligeiro13 0:61ea5c9ad2de 110
ligeiro13 0:61ea5c9ad2de 111 void move_inicial(bool dir, float vel, bool fimcurso, int qual_eixo) //dir 0 ou 1 vel em [passos/s] fimcurso x/y qual_eixo x/y/z = 0/1/2
ligeiro13 0:61ea5c9ad2de 112 {
ligeiro13 0:61ea5c9ad2de 113 //vel = (2*1000) / (vel);
ligeiro13 0:61ea5c9ad2de 114 vel = 1000000 / (vel);
ligeiro13 0:61ea5c9ad2de 115 vel = vel - espera;
ligeiro13 0:61ea5c9ad2de 116 if (qual_eixo == 0)
ligeiro13 0:61ea5c9ad2de 117 {
ligeiro13 0:61ea5c9ad2de 118 while(FimCursoX == 0)
ligeiro13 0:61ea5c9ad2de 119 {
ligeiro13 0:61ea5c9ad2de 120
ligeiro13 0:61ea5c9ad2de 121
ligeiro13 0:61ea5c9ad2de 122 step_x = 1;
ligeiro13 0:61ea5c9ad2de 123 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 124 step_x = 0;
ligeiro13 0:61ea5c9ad2de 125 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 126 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 127 {
ligeiro13 0:61ea5c9ad2de 128 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 129 break;
ligeiro13 0:61ea5c9ad2de 130 }
ligeiro13 0:61ea5c9ad2de 131 }
ligeiro13 0:61ea5c9ad2de 132 }//qual eixo == 0 = X
ligeiro13 0:61ea5c9ad2de 133 if (qual_eixo == 1)
ligeiro13 0:61ea5c9ad2de 134 {
ligeiro13 0:61ea5c9ad2de 135 while(FimCursoY == 0)
ligeiro13 0:61ea5c9ad2de 136 {
ligeiro13 0:61ea5c9ad2de 137 step_y = 1;
ligeiro13 0:61ea5c9ad2de 138 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 139 step_y = 0;
ligeiro13 0:61ea5c9ad2de 140 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 141 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 142 {
ligeiro13 0:61ea5c9ad2de 143 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 144 break;
ligeiro13 0:61ea5c9ad2de 145 }
ligeiro13 0:61ea5c9ad2de 146 }
ligeiro13 0:61ea5c9ad2de 147 }//qual eixo == 0 = Y
ligeiro13 0:61ea5c9ad2de 148 if (qual_eixo == 2)
ligeiro13 0:61ea5c9ad2de 149 {
ligeiro13 0:61ea5c9ad2de 150 while(FimCursoZ == 0)
ligeiro13 0:61ea5c9ad2de 151 {
ligeiro13 0:61ea5c9ad2de 152 step_z = 1;
ligeiro13 0:61ea5c9ad2de 153 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 154 step_z = 0;
ligeiro13 0:61ea5c9ad2de 155 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 156 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 157 {
ligeiro13 0:61ea5c9ad2de 158 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 159 break;
ligeiro13 0:61ea5c9ad2de 160 }
ligeiro13 0:61ea5c9ad2de 161 }
ligeiro13 0:61ea5c9ad2de 162 }//qual eixo == 0 = Z
ligeiro13 0:61ea5c9ad2de 163 }
ligeiro13 0:61ea5c9ad2de 164
ligeiro13 0:61ea5c9ad2de 165
ligeiro13 0:61ea5c9ad2de 166 int move(bool dir, float vel,int posicao_xy, int qual_eixo) //dir 0 ou 1 vel em [passos/s] posicao, devolve os passos andados qual_eixo 0/1/2 x/y/z
ligeiro13 0:61ea5c9ad2de 167 {
ligeiro13 0:61ea5c9ad2de 168 int passos = 0;
ligeiro13 0:61ea5c9ad2de 169 int ultimo_passo =0;
ligeiro13 0:61ea5c9ad2de 170 int parada;
ligeiro13 0:61ea5c9ad2de 171 //vel = (2*1000) / (vel);
ligeiro13 0:61ea5c9ad2de 172 vel = 1000000 / (vel);
ligeiro13 0:61ea5c9ad2de 173 vel = vel - espera;
ligeiro13 0:61ea5c9ad2de 174 if (enable_x == 0 and qual_eixo == 0 ) //PARA EIXO X
ligeiro13 0:61ea5c9ad2de 175 {
ligeiro13 0:61ea5c9ad2de 176 ultimo_passo = posicao_xy;
ligeiro13 0:61ea5c9ad2de 177 //while ((eixo_x.read() > 0.7 or eixo_x.read() < 0.3f) and posicao_x > -1 )
ligeiro13 0:61ea5c9ad2de 178 while ((eixo_x > 0.7 or eixo_x < 0.3f) and posicao_x > -1 )
ligeiro13 0:61ea5c9ad2de 179 { step_x = 1;
ligeiro13 0:61ea5c9ad2de 180 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 181 step_x = 0;
ligeiro13 0:61ea5c9ad2de 182 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 183 passos++;
ligeiro13 0:61ea5c9ad2de 184 if (dir_x == 0)
ligeiro13 0:61ea5c9ad2de 185 {
ligeiro13 0:61ea5c9ad2de 186 parada = ultimo_passo + passos;
ligeiro13 0:61ea5c9ad2de 187 // pc.printf("dir_x1 \r\n");
ligeiro13 0:61ea5c9ad2de 188 }
ligeiro13 0:61ea5c9ad2de 189 if (dir_x == 1)
ligeiro13 0:61ea5c9ad2de 190 {
ligeiro13 0:61ea5c9ad2de 191 parada = ultimo_passo - passos;
ligeiro13 0:61ea5c9ad2de 192 // pc.printf("dir_x0 \r\n");
ligeiro13 0:61ea5c9ad2de 193 }
ligeiro13 0:61ea5c9ad2de 194 if (parada == 0 or parada == 25000)
ligeiro13 0:61ea5c9ad2de 195 {
ligeiro13 0:61ea5c9ad2de 196 break;
ligeiro13 0:61ea5c9ad2de 197 }
ligeiro13 0:61ea5c9ad2de 198
ligeiro13 0:61ea5c9ad2de 199 }
ligeiro13 0:61ea5c9ad2de 200 }
ligeiro13 0:61ea5c9ad2de 201 if (enable_y == 0 and qual_eixo == 1 ) //PARA EIXO Y
ligeiro13 0:61ea5c9ad2de 202 {
ligeiro13 0:61ea5c9ad2de 203 ultimo_passo = posicao_xy;
ligeiro13 0:61ea5c9ad2de 204 //while ((eixo_y.read() > 0.7 or eixo_y.read() < 0.3f) and posicao_y > -1 )
ligeiro13 0:61ea5c9ad2de 205 while ((eixo_y > 0.7 or eixo_y < 0.3f) and posicao_y > -1 )
ligeiro13 0:61ea5c9ad2de 206 {
ligeiro13 0:61ea5c9ad2de 207 step_y = 1;
ligeiro13 0:61ea5c9ad2de 208 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 209 step_y = 0;
ligeiro13 0:61ea5c9ad2de 210 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 211 passos++;
ligeiro13 0:61ea5c9ad2de 212 //pc.printf("%d \r\n",passos_y);
ligeiro13 0:61ea5c9ad2de 213 if (dir_y == 0)
ligeiro13 0:61ea5c9ad2de 214 {
ligeiro13 0:61ea5c9ad2de 215 parada = ultimo_passo + passos;
ligeiro13 0:61ea5c9ad2de 216 // pc.printf("dir_y1 \r\n");
ligeiro13 0:61ea5c9ad2de 217 }
ligeiro13 0:61ea5c9ad2de 218 if (dir_y == 1)
ligeiro13 0:61ea5c9ad2de 219 {
ligeiro13 0:61ea5c9ad2de 220 parada = ultimo_passo - passos;
ligeiro13 0:61ea5c9ad2de 221 // pc.printf("dir_y0 \r\n");
ligeiro13 0:61ea5c9ad2de 222 }
ligeiro13 0:61ea5c9ad2de 223 if (parada == 0 or parada == 26000)
ligeiro13 0:61ea5c9ad2de 224 {
ligeiro13 0:61ea5c9ad2de 225 break;
ligeiro13 0:61ea5c9ad2de 226 }
ligeiro13 0:61ea5c9ad2de 227 //pc.printf("ultimo passo:%d i: %d \r\n",parada,passos);
ligeiro13 0:61ea5c9ad2de 228 }
ligeiro13 0:61ea5c9ad2de 229 }
ligeiro13 0:61ea5c9ad2de 230 if (enable_z == 0 and qual_eixo == 2 ) //PARA EIXO Z
ligeiro13 0:61ea5c9ad2de 231 {
ligeiro13 0:61ea5c9ad2de 232 ultimo_passo = posicao_xy;
ligeiro13 0:61ea5c9ad2de 233 // while ((eixo_y.read() > 0.7 or eixo_y.read() < 0.3f) )
ligeiro13 0:61ea5c9ad2de 234 while ((eixo_y > 0.7 or eixo_y < 0.3f) )
ligeiro13 0:61ea5c9ad2de 235 {
ligeiro13 0:61ea5c9ad2de 236 step_z = 1;
ligeiro13 0:61ea5c9ad2de 237 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 238 step_z = 0;
ligeiro13 0:61ea5c9ad2de 239 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 240 passos++;
ligeiro13 0:61ea5c9ad2de 241 //pc.printf("%d \r\n",passos_y);
ligeiro13 0:61ea5c9ad2de 242 if (dir_z == 0)
ligeiro13 0:61ea5c9ad2de 243 {
ligeiro13 0:61ea5c9ad2de 244 parada = ultimo_passo + passos;
ligeiro13 0:61ea5c9ad2de 245 // pc.printf("dir_y1 \r\n");
ligeiro13 0:61ea5c9ad2de 246 }
ligeiro13 0:61ea5c9ad2de 247 if (dir_z == 1)
ligeiro13 0:61ea5c9ad2de 248 {
ligeiro13 0:61ea5c9ad2de 249 parada = ultimo_passo - passos;
ligeiro13 0:61ea5c9ad2de 250 // pc.printf("dir_y0 \r\n");
ligeiro13 0:61ea5c9ad2de 251 }
ligeiro13 0:61ea5c9ad2de 252 if (parada == 0 or parada == 2000)
ligeiro13 0:61ea5c9ad2de 253 {
ligeiro13 0:61ea5c9ad2de 254 break;
ligeiro13 0:61ea5c9ad2de 255 }
ligeiro13 0:61ea5c9ad2de 256 //pc.printf("ultimo passo:%d i: %d \r\n",parada,passos);
ligeiro13 0:61ea5c9ad2de 257 }
ligeiro13 0:61ea5c9ad2de 258 }
ligeiro13 0:61ea5c9ad2de 259 return passos;
ligeiro13 0:61ea5c9ad2de 260 }
ligeiro13 0:61ea5c9ad2de 261 void para()//funçao para desativar o motor
ligeiro13 0:61ea5c9ad2de 262 {
ligeiro13 0:61ea5c9ad2de 263 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 264 }
ligeiro13 0:61ea5c9ad2de 265
ligeiro13 0:61ea5c9ad2de 266 void para_()//funçao para desativar o motor
ligeiro13 0:61ea5c9ad2de 267 {
ligeiro13 0:61ea5c9ad2de 268 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 269 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 270 }
ligeiro13 0:61ea5c9ad2de 271
ligeiro13 0:61ea5c9ad2de 272 int movepara(int dir, float vel, int passo_,int qual_eixo )
ligeiro13 0:61ea5c9ad2de 273 {
ligeiro13 0:61ea5c9ad2de 274 vel = 1000000 / (vel);
ligeiro13 0:61ea5c9ad2de 275 vel = vel - espera;
ligeiro13 0:61ea5c9ad2de 276 int passo_atual = 0;
ligeiro13 0:61ea5c9ad2de 277 // pc.printf("Passo_local %i, %i ", passo_atual, passo_ );
ligeiro13 0:61ea5c9ad2de 278
ligeiro13 0:61ea5c9ad2de 279 if (enable_x == 0 and qual_eixo == 0 ) //PARA EIXO X
ligeiro13 0:61ea5c9ad2de 280 {
ligeiro13 0:61ea5c9ad2de 281 while (passo_atual != abs(passo_))
ligeiro13 0:61ea5c9ad2de 282 { step_x = 1;
ligeiro13 0:61ea5c9ad2de 283 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 284 step_x = 0;
ligeiro13 0:61ea5c9ad2de 285 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 286 passo_atual++ ;
ligeiro13 0:61ea5c9ad2de 287 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 288 {
ligeiro13 0:61ea5c9ad2de 289 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 290 break;
ligeiro13 0:61ea5c9ad2de 291 }
ligeiro13 0:61ea5c9ad2de 292 // pc.printf("Passo_local %i, %i ", passo_atual, passo_ );
ligeiro13 0:61ea5c9ad2de 293 }
ligeiro13 0:61ea5c9ad2de 294 }
ligeiro13 0:61ea5c9ad2de 295 if (enable_y == 0 and qual_eixo == 1 ) //PARA EIXO Y
ligeiro13 0:61ea5c9ad2de 296 {
ligeiro13 0:61ea5c9ad2de 297 while (passo_atual != abs(passo_))
ligeiro13 0:61ea5c9ad2de 298 { step_y = 1;
ligeiro13 0:61ea5c9ad2de 299 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 300 step_y = 0;
ligeiro13 0:61ea5c9ad2de 301 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 302 passo_atual++ ;
ligeiro13 0:61ea5c9ad2de 303 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 304 {
ligeiro13 0:61ea5c9ad2de 305 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 306 break;
ligeiro13 0:61ea5c9ad2de 307 }
ligeiro13 0:61ea5c9ad2de 308 // pc.printf("Passo_local %i, %i ", passo_atual, passo_ );
ligeiro13 0:61ea5c9ad2de 309 }
ligeiro13 0:61ea5c9ad2de 310 }
ligeiro13 0:61ea5c9ad2de 311 if (enable_z == 0 and qual_eixo == 2 ) //PARA EIXO Z
ligeiro13 0:61ea5c9ad2de 312 {
ligeiro13 0:61ea5c9ad2de 313 while (passo_atual != abs(passo_))
ligeiro13 0:61ea5c9ad2de 314 { step_z = 1;
ligeiro13 0:61ea5c9ad2de 315 wait_us(espera);
ligeiro13 0:61ea5c9ad2de 316 step_z = 0;
ligeiro13 0:61ea5c9ad2de 317 wait_us(vel);
ligeiro13 0:61ea5c9ad2de 318 passo_atual++ ;
ligeiro13 0:61ea5c9ad2de 319 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 320 {
ligeiro13 0:61ea5c9ad2de 321 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 322 break;
ligeiro13 0:61ea5c9ad2de 323 }
ligeiro13 0:61ea5c9ad2de 324 // pc.printf("Passo_local %i, %i ", passo_atual, passo_ );
ligeiro13 0:61ea5c9ad2de 325 }
ligeiro13 0:61ea5c9ad2de 326 }
ligeiro13 0:61ea5c9ad2de 327 return passo_atual;
ligeiro13 0:61ea5c9ad2de 328 }
ligeiro13 0:61ea5c9ad2de 329
ligeiro13 0:61ea5c9ad2de 330 //----------------------------------------------------------------------------------------------MAIN------------------------------------------------------------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 331 int main()
ligeiro13 0:61ea5c9ad2de 332 {
ligeiro13 0:61ea5c9ad2de 333 lcd.setCursor(TextLCD::CurOff_BlkOff);//desliga o cursor
ligeiro13 0:61ea5c9ad2de 334 posicao_x = 0;
ligeiro13 0:61ea5c9ad2de 335 posicao_y = 0;
ligeiro13 0:61ea5c9ad2de 336 posicao_z = 0;
ligeiro13 0:61ea5c9ad2de 337 refe = 0 ; //0 ou 1 1= REFERENCIAMENTO 0 = MOVIMENTO DOS EIXOS
ligeiro13 0:61ea5c9ad2de 338 troca_yz = 0; // 0 ou 1 0 = EIXO Y 1 = EIXO Z
ligeiro13 0:61ea5c9ad2de 339 pos = 0;
ligeiro13 0:61ea5c9ad2de 340 pc.baud(115200);
ligeiro13 0:61ea5c9ad2de 341 pc.printf("hello WORLD!\r\n");
ligeiro13 0:61ea5c9ad2de 342 enable_x = 1;//desliga os drivers
ligeiro13 0:61ea5c9ad2de 343 enable_y = 1;//desliga os drivers
ligeiro13 0:61ea5c9ad2de 344 enable_z = 1;//desliga os drivers
ligeiro13 0:61ea5c9ad2de 345 aciona_pneu2 = 1 ; //desliga pneu
ligeiro13 0:61ea5c9ad2de 346 aciona_pneu = 1 ; //desliga pneu
ligeiro13 0:61ea5c9ad2de 347 vel = lista_vel[0];//velocidade inicial
ligeiro13 0:61ea5c9ad2de 348 wait(0.25);
ligeiro13 0:61ea5c9ad2de 349 while(1)
ligeiro13 0:61ea5c9ad2de 350 {
ligeiro13 0:61ea5c9ad2de 351
ligeiro13 0:61ea5c9ad2de 352 if (botao_emergencia == 1)
ligeiro13 0:61ea5c9ad2de 353 {
ligeiro13 0:61ea5c9ad2de 354 if (flag_emergencia == 1)
ligeiro13 0:61ea5c9ad2de 355 {
ligeiro13 0:61ea5c9ad2de 356 lcd.setCursor(TextLCD::CurOff_BlkOff);//desliga o cursor
ligeiro13 0:61ea5c9ad2de 357 lcd.cls();
ligeiro13 0:61ea5c9ad2de 358 menu = 0;
ligeiro13 0:61ea5c9ad2de 359 menu = 1;
ligeiro13 0:61ea5c9ad2de 360 menu_enter_2 = 0 ;
ligeiro13 0:61ea5c9ad2de 361 flag_emergencia = 0;
ligeiro13 0:61ea5c9ad2de 362 }
ligeiro13 0:61ea5c9ad2de 363 if (menu == 1 )
ligeiro13 0:61ea5c9ad2de 364 {
ligeiro13 0:61ea5c9ad2de 365 lcd.cls();
ligeiro13 0:61ea5c9ad2de 366 lcd.printf(" -Referenciamento\n");
ligeiro13 0:61ea5c9ad2de 367 lcd.printf(" -Limpar Bico Ejetor");
ligeiro13 0:61ea5c9ad2de 368 lcd.printf(" -Aplicar Cola\n");
ligeiro13 0:61ea5c9ad2de 369 lcd.printf(" -Configuracoes\n");
ligeiro13 0:61ea5c9ad2de 370 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 371 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 372
ligeiro13 0:61ea5c9ad2de 373 menu = 0;
ligeiro13 0:61ea5c9ad2de 374 }// if menu = 1
ligeiro13 0:61ea5c9ad2de 375 if (botao_cima == 1 and menu ==0)
ligeiro13 0:61ea5c9ad2de 376 {
ligeiro13 0:61ea5c9ad2de 377 pc.printf("menu %d \r\n",menu);
ligeiro13 0:61ea5c9ad2de 378 pc.printf("botao_cima \r\n");
ligeiro13 0:61ea5c9ad2de 379 lcd.cls();
ligeiro13 0:61ea5c9ad2de 380 lcd.printf(" -Referenciamento\n");
ligeiro13 0:61ea5c9ad2de 381 lcd.printf(" -Limpar Bico Ejetor");
ligeiro13 0:61ea5c9ad2de 382 lcd.printf(" -Aplicar Cola\n");
ligeiro13 0:61ea5c9ad2de 383 lcd.printf(" -Configuracoes\n");
ligeiro13 0:61ea5c9ad2de 384 linha--;
ligeiro13 0:61ea5c9ad2de 385 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 386 if (linha < 0)
ligeiro13 0:61ea5c9ad2de 387 {
ligeiro13 0:61ea5c9ad2de 388 linha = 3;
ligeiro13 0:61ea5c9ad2de 389 }
ligeiro13 0:61ea5c9ad2de 390 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 391 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 392
ligeiro13 0:61ea5c9ad2de 393 wait(0.2);
ligeiro13 0:61ea5c9ad2de 394 }//IF botao_cima
ligeiro13 0:61ea5c9ad2de 395 //-------------------------------------------------------------------------------------BOTAO BAIXO MENU = 1 -----------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 396 if (botao_baixo == 1 and menu ==0)
ligeiro13 0:61ea5c9ad2de 397 {
ligeiro13 0:61ea5c9ad2de 398 pc.printf("menu %d\r\n",menu);
ligeiro13 0:61ea5c9ad2de 399 pc.printf("botao_baixo \r\n");
ligeiro13 0:61ea5c9ad2de 400 lcd.cls();
ligeiro13 0:61ea5c9ad2de 401 lcd.printf(" -Referenciamento\n");
ligeiro13 0:61ea5c9ad2de 402 lcd.printf(" -Limpar Bico Ejetor");
ligeiro13 0:61ea5c9ad2de 403 lcd.printf(" -Aplicar Cola\n");
ligeiro13 0:61ea5c9ad2de 404 lcd.printf(" -Configuracoes\n");
ligeiro13 0:61ea5c9ad2de 405 if (linha > 2)
ligeiro13 0:61ea5c9ad2de 406 {
ligeiro13 0:61ea5c9ad2de 407 linha = -1;
ligeiro13 0:61ea5c9ad2de 408 }
ligeiro13 0:61ea5c9ad2de 409 linha++;
ligeiro13 0:61ea5c9ad2de 410 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 411 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 412 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 413 wait(0.2);
ligeiro13 0:61ea5c9ad2de 414 }// if botao_baixo
ligeiro13 0:61ea5c9ad2de 415
ligeiro13 0:61ea5c9ad2de 416
ligeiro13 0:61ea5c9ad2de 417 if (botao_enter == 1 and menu==0)
ligeiro13 0:61ea5c9ad2de 418 {
ligeiro13 0:61ea5c9ad2de 419 pc.printf("botao_enter \r\n");
ligeiro13 0:61ea5c9ad2de 420 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 421
ligeiro13 0:61ea5c9ad2de 422 if (linha ==0)
ligeiro13 0:61ea5c9ad2de 423 {
ligeiro13 0:61ea5c9ad2de 424 menu_enter =1; // REFERERENCIAMENTO
ligeiro13 0:61ea5c9ad2de 425 refe = 1;
ligeiro13 0:61ea5c9ad2de 426 wait(0.2);
ligeiro13 0:61ea5c9ad2de 427 }
ligeiro13 0:61ea5c9ad2de 428 if (linha == 1)
ligeiro13 0:61ea5c9ad2de 429 {
ligeiro13 0:61ea5c9ad2de 430 menu_enter = 2;//LIMPAR BI EJETOR
ligeiro13 0:61ea5c9ad2de 431 }
ligeiro13 0:61ea5c9ad2de 432 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 433 {
ligeiro13 0:61ea5c9ad2de 434 menu_enter = 3;//Aplicar COla
ligeiro13 0:61ea5c9ad2de 435 linha =0;
ligeiro13 0:61ea5c9ad2de 436 }
ligeiro13 0:61ea5c9ad2de 437 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 438 {
ligeiro13 0:61ea5c9ad2de 439 menu_enter = 5;//Aplicar COla
ligeiro13 0:61ea5c9ad2de 440 linha =0;
ligeiro13 0:61ea5c9ad2de 441 }
ligeiro13 0:61ea5c9ad2de 442
ligeiro13 0:61ea5c9ad2de 443 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 444 wait(0.2);
ligeiro13 0:61ea5c9ad2de 445 }// if bbotao_enter\
ligeiro13 0:61ea5c9ad2de 446 //-------------------------------------------------------------------------------------LIMPAR BICO EJETOR -----------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 447 if (menu_enter == 2)
ligeiro13 0:61ea5c9ad2de 448 {
ligeiro13 0:61ea5c9ad2de 449 lcd.cls();
ligeiro13 0:61ea5c9ad2de 450 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 451 aciona_pneu = 0;// liga pneumatica pressao
ligeiro13 0:61ea5c9ad2de 452 lcd.printf(" Limpando.\n");
ligeiro13 0:61ea5c9ad2de 453 aciona_pneu2 = 0;// liga pneumatica pressao
ligeiro13 0:61ea5c9ad2de 454 wait(0.5);
ligeiro13 0:61ea5c9ad2de 455 lcd.cls();
ligeiro13 0:61ea5c9ad2de 456 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 457 lcd.printf(" Limpando..\n");
ligeiro13 0:61ea5c9ad2de 458 aciona_pneu2 = 1;// liga pneumatica pressao
ligeiro13 0:61ea5c9ad2de 459 wait(0.5);
ligeiro13 0:61ea5c9ad2de 460 lcd.cls();
ligeiro13 0:61ea5c9ad2de 461 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 462 lcd.printf(" Limpando...\n");
ligeiro13 0:61ea5c9ad2de 463 aciona_pneu2 = 0;// liga pneumatica pressao
ligeiro13 0:61ea5c9ad2de 464 wait(1);
ligeiro13 0:61ea5c9ad2de 465 lcd.cls();
ligeiro13 0:61ea5c9ad2de 466 aciona_pneu2 = 1;// liga pneumatica pressao
ligeiro13 0:61ea5c9ad2de 467 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 468 lcd.printf(" Bico Limpo!\n");
ligeiro13 0:61ea5c9ad2de 469 wait(2);
ligeiro13 0:61ea5c9ad2de 470 lcd.cls();
ligeiro13 0:61ea5c9ad2de 471 menu = 1;
ligeiro13 0:61ea5c9ad2de 472 menu_enter = 0;
ligeiro13 0:61ea5c9ad2de 473
ligeiro13 0:61ea5c9ad2de 474 }
ligeiro13 0:61ea5c9ad2de 475
ligeiro13 0:61ea5c9ad2de 476 //-------------------------------------------------------------------------------------APLICAR COLA MENU_ENTER = 3 -----------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 477 if (menu_enter == 3)
ligeiro13 0:61ea5c9ad2de 478 {
ligeiro13 0:61ea5c9ad2de 479 linha = 0;
ligeiro13 0:61ea5c9ad2de 480 lcd.cls();
ligeiro13 0:61ea5c9ad2de 481 lcd.printf(" -Adicionar Pontos \n");
ligeiro13 0:61ea5c9ad2de 482 lcd.printf(" -Mod./Ver Pontos \n");
ligeiro13 0:61ea5c9ad2de 483 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 484 lcd.printf(" Voltar Colar\n");
ligeiro13 0:61ea5c9ad2de 485 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 486 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 487 menu = 2;
ligeiro13 0:61ea5c9ad2de 488 menu_enter = 4;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 489 pc.printf("menu %d\r\n",menu);
ligeiro13 0:61ea5c9ad2de 490 }// Aplicar Cola
ligeiro13 0:61ea5c9ad2de 491 //-------------------------------------------------------------------------------------BOTAO CIMA -------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 492 if (botao_cima == 1)
ligeiro13 0:61ea5c9ad2de 493 {
ligeiro13 0:61ea5c9ad2de 494 if (menu == 2)
ligeiro13 0:61ea5c9ad2de 495 {
ligeiro13 0:61ea5c9ad2de 496 pc.printf("menu %d\r\n",menu);
ligeiro13 0:61ea5c9ad2de 497 pc.printf("botao_cima menu 2\r\n");
ligeiro13 0:61ea5c9ad2de 498 lcd.cls();
ligeiro13 0:61ea5c9ad2de 499 lcd.printf(" -Adicionar Pontos \n");
ligeiro13 0:61ea5c9ad2de 500 lcd.printf(" -Mod./Ver Pontos \n");
ligeiro13 0:61ea5c9ad2de 501 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 502 lcd.printf(" Voltar Colar\n");
ligeiro13 0:61ea5c9ad2de 503 menu = 2;
ligeiro13 0:61ea5c9ad2de 504 linha--;
ligeiro13 0:61ea5c9ad2de 505 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 506 if (linha < 0)
ligeiro13 0:61ea5c9ad2de 507 {
ligeiro13 0:61ea5c9ad2de 508 linha = 4;
ligeiro13 0:61ea5c9ad2de 509 lcd.locate(0,0);
ligeiro13 0:61ea5c9ad2de 510 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 511 lcd.locate(14,linha);
ligeiro13 0:61ea5c9ad2de 512 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 513 }
ligeiro13 0:61ea5c9ad2de 514 if(linha == 2)
ligeiro13 0:61ea5c9ad2de 515 {
ligeiro13 0:61ea5c9ad2de 516 linha = 1;
ligeiro13 0:61ea5c9ad2de 517 }
ligeiro13 0:61ea5c9ad2de 518 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 519 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 520 if (linha == 4)
ligeiro13 0:61ea5c9ad2de 521 {
ligeiro13 0:61ea5c9ad2de 522 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 523 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 524 lcd.locate(14,linha);
ligeiro13 0:61ea5c9ad2de 525 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 526 }
ligeiro13 0:61ea5c9ad2de 527 wait(0.2);
ligeiro13 0:61ea5c9ad2de 528
ligeiro13 0:61ea5c9ad2de 529 }
ligeiro13 0:61ea5c9ad2de 530 if (menu == 3 or menu == 4)//-----------------------------------------------------------------add pontos-BB-------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 531 {
ligeiro13 0:61ea5c9ad2de 532
ligeiro13 0:61ea5c9ad2de 533 menu_enter_2 = 0;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 534 linha--;
ligeiro13 0:61ea5c9ad2de 535 if (linha == 1)
ligeiro13 0:61ea5c9ad2de 536 {
ligeiro13 0:61ea5c9ad2de 537 linha = 3;
ligeiro13 0:61ea5c9ad2de 538 }
ligeiro13 0:61ea5c9ad2de 539 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 540 {
ligeiro13 0:61ea5c9ad2de 541 lcd.locate(0,linha + 1);
ligeiro13 0:61ea5c9ad2de 542 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 543 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 544 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 545 }
ligeiro13 0:61ea5c9ad2de 546 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 547 {
ligeiro13 0:61ea5c9ad2de 548 lcd.locate(0,linha - 1);
ligeiro13 0:61ea5c9ad2de 549 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 550 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 551 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 552 }
ligeiro13 0:61ea5c9ad2de 553
ligeiro13 0:61ea5c9ad2de 554 wait(0.2);
ligeiro13 0:61ea5c9ad2de 555 }
ligeiro13 0:61ea5c9ad2de 556 if (menu == 5)//-----------------------------------------------------------------Modificando Pontos---BC-----------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 557 {
ligeiro13 0:61ea5c9ad2de 558 if (i_p == 0)
ligeiro13 0:61ea5c9ad2de 559 {
ligeiro13 0:61ea5c9ad2de 560
ligeiro13 0:61ea5c9ad2de 561
ligeiro13 0:61ea5c9ad2de 562 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 563 linha--;
ligeiro13 0:61ea5c9ad2de 564 if (linha == 1)
ligeiro13 0:61ea5c9ad2de 565 {
ligeiro13 0:61ea5c9ad2de 566 lcd.locate(10,linha+1);
ligeiro13 0:61ea5c9ad2de 567 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 568 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 569 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 570 linha = 4;
ligeiro13 0:61ea5c9ad2de 571 }
ligeiro13 0:61ea5c9ad2de 572 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 573 {
ligeiro13 0:61ea5c9ad2de 574 lcd.locate(10,linha + 1);
ligeiro13 0:61ea5c9ad2de 575 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 576 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 577 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 578 }
ligeiro13 0:61ea5c9ad2de 579 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 580 {
ligeiro13 0:61ea5c9ad2de 581 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 582 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 583 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 584 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 585 }
ligeiro13 0:61ea5c9ad2de 586
ligeiro13 0:61ea5c9ad2de 587 wait(0.2);
ligeiro13 0:61ea5c9ad2de 588 }
ligeiro13 0:61ea5c9ad2de 589 if (i_p != 0 and i_p != ultimo_p -1)
ligeiro13 0:61ea5c9ad2de 590 {
ligeiro13 0:61ea5c9ad2de 591
ligeiro13 0:61ea5c9ad2de 592
ligeiro13 0:61ea5c9ad2de 593
ligeiro13 0:61ea5c9ad2de 594
ligeiro13 0:61ea5c9ad2de 595
ligeiro13 0:61ea5c9ad2de 596 linha--;
ligeiro13 0:61ea5c9ad2de 597 printf("linha %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 598 if (linha == 1)//
ligeiro13 0:61ea5c9ad2de 599 {
ligeiro13 0:61ea5c9ad2de 600 lcd.locate(10,linha+1);
ligeiro13 0:61ea5c9ad2de 601 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 602 lcd.locate(0,2);
ligeiro13 0:61ea5c9ad2de 603 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 604 linha = 5;
ligeiro13 0:61ea5c9ad2de 605 }
ligeiro13 0:61ea5c9ad2de 606 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 607 {
ligeiro13 0:61ea5c9ad2de 608 lcd.locate(10,linha + 1);
ligeiro13 0:61ea5c9ad2de 609 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 610 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 611 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 612 }
ligeiro13 0:61ea5c9ad2de 613 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 614 {
ligeiro13 0:61ea5c9ad2de 615 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 616 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 617 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 618 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 619 }
ligeiro13 0:61ea5c9ad2de 620 if (linha == 4)
ligeiro13 0:61ea5c9ad2de 621 {
ligeiro13 0:61ea5c9ad2de 622 lcd.locate(0,2);
ligeiro13 0:61ea5c9ad2de 623 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 624 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 625 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 626 }
ligeiro13 0:61ea5c9ad2de 627
ligeiro13 0:61ea5c9ad2de 628 wait(0.2);
ligeiro13 0:61ea5c9ad2de 629 }
ligeiro13 0:61ea5c9ad2de 630 if (i_p != 0 and i_p == ultimo_p -1)
ligeiro13 0:61ea5c9ad2de 631 {
ligeiro13 0:61ea5c9ad2de 632
ligeiro13 0:61ea5c9ad2de 633 linha--;
ligeiro13 0:61ea5c9ad2de 634 pc.printf("linha %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 635
ligeiro13 0:61ea5c9ad2de 636 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 637 {
ligeiro13 0:61ea5c9ad2de 638 lcd.locate(10,linha + 1);
ligeiro13 0:61ea5c9ad2de 639 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 640 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 641 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 642 linha = 5;
ligeiro13 0:61ea5c9ad2de 643 }
ligeiro13 0:61ea5c9ad2de 644 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 645 {
ligeiro13 0:61ea5c9ad2de 646 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 647 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 648 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 649 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 650 }
ligeiro13 0:61ea5c9ad2de 651 if (linha == 4)
ligeiro13 0:61ea5c9ad2de 652 {
ligeiro13 0:61ea5c9ad2de 653 lcd.locate(0,2);
ligeiro13 0:61ea5c9ad2de 654 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 655 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 656 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 657 }
ligeiro13 0:61ea5c9ad2de 658
ligeiro13 0:61ea5c9ad2de 659 wait(0.2);
ligeiro13 0:61ea5c9ad2de 660 }
ligeiro13 0:61ea5c9ad2de 661 }
ligeiro13 0:61ea5c9ad2de 662 if(menu == 6)//-----------------------------------------------------------------Configuracoes--------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 663 {
ligeiro13 0:61ea5c9ad2de 664 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 665
ligeiro13 0:61ea5c9ad2de 666
ligeiro13 0:61ea5c9ad2de 667
ligeiro13 0:61ea5c9ad2de 668 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 669 {
ligeiro13 0:61ea5c9ad2de 670 linha = 1;
ligeiro13 0:61ea5c9ad2de 671 }
ligeiro13 0:61ea5c9ad2de 672 linha--;
ligeiro13 0:61ea5c9ad2de 673
ligeiro13 0:61ea5c9ad2de 674 if (linha == -1)
ligeiro13 0:61ea5c9ad2de 675 {
ligeiro13 0:61ea5c9ad2de 676 lcd.locate(0,0);
ligeiro13 0:61ea5c9ad2de 677 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 678 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 679 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 680 linha = 3;
ligeiro13 0:61ea5c9ad2de 681 }
ligeiro13 0:61ea5c9ad2de 682 if (linha == 0)
ligeiro13 0:61ea5c9ad2de 683 {
ligeiro13 0:61ea5c9ad2de 684 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 685 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 686 lcd.locate(0,0);
ligeiro13 0:61ea5c9ad2de 687 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 688 linha = 0;
ligeiro13 0:61ea5c9ad2de 689 }
ligeiro13 0:61ea5c9ad2de 690 wait(0.2);
ligeiro13 0:61ea5c9ad2de 691 }
ligeiro13 0:61ea5c9ad2de 692 }//IF botao_cima
ligeiro13 0:61ea5c9ad2de 693 //-------------------------------------------------------------------------------------BOTAO BAIXO MENU = 2 ----BB-------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 694 if (botao_baixo == 1)
ligeiro13 0:61ea5c9ad2de 695 {
ligeiro13 0:61ea5c9ad2de 696 if (menu == 2)
ligeiro13 0:61ea5c9ad2de 697 {
ligeiro13 0:61ea5c9ad2de 698 pc.printf("menu %d\r\n",menu);
ligeiro13 0:61ea5c9ad2de 699 pc.printf("botao_baixo menu 2\r\n");
ligeiro13 0:61ea5c9ad2de 700 lcd.cls();
ligeiro13 0:61ea5c9ad2de 701 lcd.printf(" -Adicionar Pontos \n");
ligeiro13 0:61ea5c9ad2de 702 lcd.printf(" -Mod./Ver Pontos \n");
ligeiro13 0:61ea5c9ad2de 703 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 704 lcd.printf(" Voltar Colar\n");
ligeiro13 0:61ea5c9ad2de 705 menu = 2;
ligeiro13 0:61ea5c9ad2de 706
ligeiro13 0:61ea5c9ad2de 707 if (linha > 3)
ligeiro13 0:61ea5c9ad2de 708 {
ligeiro13 0:61ea5c9ad2de 709 linha = -1;
ligeiro13 0:61ea5c9ad2de 710 }
ligeiro13 0:61ea5c9ad2de 711
ligeiro13 0:61ea5c9ad2de 712 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 713 linha++;
ligeiro13 0:61ea5c9ad2de 714 if(linha == 2)
ligeiro13 0:61ea5c9ad2de 715 {
ligeiro13 0:61ea5c9ad2de 716 linha = 3;
ligeiro13 0:61ea5c9ad2de 717 }
ligeiro13 0:61ea5c9ad2de 718 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 719 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 720 if (linha == 4)
ligeiro13 0:61ea5c9ad2de 721 {
ligeiro13 0:61ea5c9ad2de 722 lcd.locate(0,linha-1);
ligeiro13 0:61ea5c9ad2de 723 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 724 lcd.locate(14,linha);
ligeiro13 0:61ea5c9ad2de 725 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 726 }
ligeiro13 0:61ea5c9ad2de 727 wait(0.2);
ligeiro13 0:61ea5c9ad2de 728 }
ligeiro13 0:61ea5c9ad2de 729 if (menu == 3 or menu == 4)//-----------------------------------------------------------------add pontos-BB-------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 730 {
ligeiro13 0:61ea5c9ad2de 731 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 732 {
ligeiro13 0:61ea5c9ad2de 733 linha = 1;
ligeiro13 0:61ea5c9ad2de 734 }
ligeiro13 0:61ea5c9ad2de 735 menu_enter_2 = 0;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 736 linha++;
ligeiro13 0:61ea5c9ad2de 737 pc.printf("Botao Baixo\r\n");
ligeiro13 0:61ea5c9ad2de 738 pc.printf("menu%d linha=%d\r\n",menu,linha);
ligeiro13 0:61ea5c9ad2de 739 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 740 {
ligeiro13 0:61ea5c9ad2de 741 lcd.locate(0,linha - 1);
ligeiro13 0:61ea5c9ad2de 742 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 743 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 744 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 745 }
ligeiro13 0:61ea5c9ad2de 746 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 747 {
ligeiro13 0:61ea5c9ad2de 748 lcd.locate(0,linha +1);
ligeiro13 0:61ea5c9ad2de 749 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 750 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 751 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 752 }
ligeiro13 0:61ea5c9ad2de 753 wait(0.2);
ligeiro13 0:61ea5c9ad2de 754 }
ligeiro13 0:61ea5c9ad2de 755 if (menu == 5)//-----------------------------------------------------------------Modificando Pontos---BB-----------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 756 {
ligeiro13 0:61ea5c9ad2de 757 if (i_p == 0)
ligeiro13 0:61ea5c9ad2de 758 {
ligeiro13 0:61ea5c9ad2de 759 if (linha > 3)
ligeiro13 0:61ea5c9ad2de 760 {
ligeiro13 0:61ea5c9ad2de 761 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 762 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 763 lcd.locate(10,2);
ligeiro13 0:61ea5c9ad2de 764 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 765 linha = 1;
ligeiro13 0:61ea5c9ad2de 766 }
ligeiro13 0:61ea5c9ad2de 767
ligeiro13 0:61ea5c9ad2de 768 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 769 linha++;
ligeiro13 0:61ea5c9ad2de 770 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 771 {
ligeiro13 0:61ea5c9ad2de 772 lcd.locate(10,linha-1);
ligeiro13 0:61ea5c9ad2de 773 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 774 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 775 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 776 }
ligeiro13 0:61ea5c9ad2de 777 if (linha == 4)
ligeiro13 0:61ea5c9ad2de 778 {
ligeiro13 0:61ea5c9ad2de 779 lcd.locate(10,linha-1);
ligeiro13 0:61ea5c9ad2de 780 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 781 lcd.locate(0,linha-1);
ligeiro13 0:61ea5c9ad2de 782 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 783 }
ligeiro13 0:61ea5c9ad2de 784 wait(0.2);
ligeiro13 0:61ea5c9ad2de 785 }
ligeiro13 0:61ea5c9ad2de 786 if (i_p != 0 and i_p != ultimo_p -1)
ligeiro13 0:61ea5c9ad2de 787 {
ligeiro13 0:61ea5c9ad2de 788 if (linha > 4)//"proximo"
ligeiro13 0:61ea5c9ad2de 789 {
ligeiro13 0:61ea5c9ad2de 790 lcd.locate(0,2);
ligeiro13 0:61ea5c9ad2de 791 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 792 lcd.locate(10,2);
ligeiro13 0:61ea5c9ad2de 793 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 794 linha = 1;
ligeiro13 0:61ea5c9ad2de 795 }
ligeiro13 0:61ea5c9ad2de 796
ligeiro13 0:61ea5c9ad2de 797 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 798 linha++;
ligeiro13 0:61ea5c9ad2de 799 if (linha == 3)//"Modificar"
ligeiro13 0:61ea5c9ad2de 800 {
ligeiro13 0:61ea5c9ad2de 801 lcd.locate(10,linha-1);
ligeiro13 0:61ea5c9ad2de 802 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 803 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 804 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 805 }
ligeiro13 0:61ea5c9ad2de 806 if (linha == 4)//"voltarr"
ligeiro13 0:61ea5c9ad2de 807 {
ligeiro13 0:61ea5c9ad2de 808 lcd.locate(10,3);
ligeiro13 0:61ea5c9ad2de 809 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 810 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 811 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 812 }
ligeiro13 0:61ea5c9ad2de 813 if (linha == 5)//"Anterior"
ligeiro13 0:61ea5c9ad2de 814 {
ligeiro13 0:61ea5c9ad2de 815 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 816 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 817 lcd.locate(0,2);
ligeiro13 0:61ea5c9ad2de 818 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 819 }
ligeiro13 0:61ea5c9ad2de 820 wait(0.2);
ligeiro13 0:61ea5c9ad2de 821 }
ligeiro13 0:61ea5c9ad2de 822 if (i_p != 0 and i_p == ultimo_p -1)
ligeiro13 0:61ea5c9ad2de 823 {
ligeiro13 0:61ea5c9ad2de 824 if (linha == 5)
ligeiro13 0:61ea5c9ad2de 825 {
ligeiro13 0:61ea5c9ad2de 826 linha = 2;
ligeiro13 0:61ea5c9ad2de 827 }
ligeiro13 0:61ea5c9ad2de 828
ligeiro13 0:61ea5c9ad2de 829 linha++;
ligeiro13 0:61ea5c9ad2de 830 if (linha == 3)//"Modificar"
ligeiro13 0:61ea5c9ad2de 831 {
ligeiro13 0:61ea5c9ad2de 832 lcd.locate(0,linha-1);
ligeiro13 0:61ea5c9ad2de 833 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 834 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 835 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 836 }
ligeiro13 0:61ea5c9ad2de 837 if (linha == 4)//"voltarr"
ligeiro13 0:61ea5c9ad2de 838 {
ligeiro13 0:61ea5c9ad2de 839 lcd.locate(10,3);
ligeiro13 0:61ea5c9ad2de 840 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 841 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 842 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 843 }
ligeiro13 0:61ea5c9ad2de 844
ligeiro13 0:61ea5c9ad2de 845 if (linha == 5)//"Anterior"
ligeiro13 0:61ea5c9ad2de 846 {
ligeiro13 0:61ea5c9ad2de 847 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 848 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 849 lcd.locate(0,2);
ligeiro13 0:61ea5c9ad2de 850 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 851 }
ligeiro13 0:61ea5c9ad2de 852
ligeiro13 0:61ea5c9ad2de 853 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 854 wait(0.2);
ligeiro13 0:61ea5c9ad2de 855 }
ligeiro13 0:61ea5c9ad2de 856 }
ligeiro13 0:61ea5c9ad2de 857 if(menu == 6)//-----------------------------------------------------------------Configuracoes--BB------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 858 {
ligeiro13 0:61ea5c9ad2de 859 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 860
ligeiro13 0:61ea5c9ad2de 861
ligeiro13 0:61ea5c9ad2de 862 if (linha == 0)
ligeiro13 0:61ea5c9ad2de 863 {
ligeiro13 0:61ea5c9ad2de 864 linha = 2;
ligeiro13 0:61ea5c9ad2de 865 }
ligeiro13 0:61ea5c9ad2de 866 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 867 {
ligeiro13 0:61ea5c9ad2de 868 linha = 0;
ligeiro13 0:61ea5c9ad2de 869 }
ligeiro13 0:61ea5c9ad2de 870 linha++;
ligeiro13 0:61ea5c9ad2de 871
ligeiro13 0:61ea5c9ad2de 872 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 873 {
ligeiro13 0:61ea5c9ad2de 874 lcd.locate(0,0);
ligeiro13 0:61ea5c9ad2de 875 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 876 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 877 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 878 }
ligeiro13 0:61ea5c9ad2de 879 if (linha == 1)
ligeiro13 0:61ea5c9ad2de 880 {
ligeiro13 0:61ea5c9ad2de 881 lcd.locate(0,3);
ligeiro13 0:61ea5c9ad2de 882 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 883 lcd.locate(0,0);
ligeiro13 0:61ea5c9ad2de 884 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 885 linha = 0;
ligeiro13 0:61ea5c9ad2de 886 }
ligeiro13 0:61ea5c9ad2de 887 wait(0.2);
ligeiro13 0:61ea5c9ad2de 888 }
ligeiro13 0:61ea5c9ad2de 889 }// if botao_baixo
ligeiro13 0:61ea5c9ad2de 890 //-------------------------------------------------------------------------------------BOTAO ENTER MENU = 2 --BE---------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 891 if (botao_enter == 1 )
ligeiro13 0:61ea5c9ad2de 892 {
ligeiro13 0:61ea5c9ad2de 893 pc.printf("menu%d linha %d\r\n",menu,linha);
ligeiro13 0:61ea5c9ad2de 894
ligeiro13 0:61ea5c9ad2de 895 if (menu == 2)
ligeiro13 0:61ea5c9ad2de 896 {
ligeiro13 0:61ea5c9ad2de 897 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 898 if (linha ==0)
ligeiro13 0:61ea5c9ad2de 899 {
ligeiro13 0:61ea5c9ad2de 900 //pc.printf("vai para PONTOS\r\n");
ligeiro13 0:61ea5c9ad2de 901 menu_enter_2 =1; // ADICIONAR PONTOS
ligeiro13 0:61ea5c9ad2de 902 menu = 0;
ligeiro13 0:61ea5c9ad2de 903 mover_motores = 1;
ligeiro13 0:61ea5c9ad2de 904 }
ligeiro13 0:61ea5c9ad2de 905 if (linha ==1)
ligeiro13 0:61ea5c9ad2de 906 {
ligeiro13 0:61ea5c9ad2de 907 menu_enter_2 = 4; // MODIFICAR PONTOS
ligeiro13 0:61ea5c9ad2de 908 i_p = 0;//zerar
ligeiro13 0:61ea5c9ad2de 909 }
ligeiro13 0:61ea5c9ad2de 910 if (linha == 4)//COLAR PONTOS
ligeiro13 0:61ea5c9ad2de 911 {
ligeiro13 0:61ea5c9ad2de 912 pc.printf("Vai para funcao COlar Pontos\r\n");
ligeiro13 0:61ea5c9ad2de 913 menu = 2;//tela de "aplicar pontas"
ligeiro13 0:61ea5c9ad2de 914 colar_pontos = 1;//menu colar pontos
ligeiro13 0:61ea5c9ad2de 915 wait(0.2);
ligeiro13 0:61ea5c9ad2de 916 }
ligeiro13 0:61ea5c9ad2de 917 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 918 {
ligeiro13 0:61ea5c9ad2de 919 menu = 1 ;//VOltar
ligeiro13 0:61ea5c9ad2de 920 linha = 1;
ligeiro13 0:61ea5c9ad2de 921 }
ligeiro13 0:61ea5c9ad2de 922 pc.printf(" %d\r\n",linha);
ligeiro13 0:61ea5c9ad2de 923 wait(0.2);
ligeiro13 0:61ea5c9ad2de 924 }
ligeiro13 0:61ea5c9ad2de 925 if (menu == 3)//Adicionado os pontos
ligeiro13 0:61ea5c9ad2de 926 {
ligeiro13 0:61ea5c9ad2de 927 if (linha == 2)//confirmar ponto
ligeiro13 0:61ea5c9ad2de 928 {
ligeiro13 0:61ea5c9ad2de 929
ligeiro13 0:61ea5c9ad2de 930 if ( flag_mod == 0)
ligeiro13 0:61ea5c9ad2de 931 {
ligeiro13 0:61ea5c9ad2de 932 pc.printf("flag_mod = 0 \r\n");
ligeiro13 0:61ea5c9ad2de 933 i_p++;
ligeiro13 0:61ea5c9ad2de 934 guardar_pontos = 1;// vai para o condicional "guardar Pontos"
ligeiro13 0:61ea5c9ad2de 935 wait(0.1);
ligeiro13 0:61ea5c9ad2de 936 }
ligeiro13 0:61ea5c9ad2de 937
ligeiro13 0:61ea5c9ad2de 938
ligeiro13 0:61ea5c9ad2de 939 ultimo_p = i_p;
ligeiro13 0:61ea5c9ad2de 940 menu_enter_2 = 1 ;//Ponto Adicionado!
ligeiro13 0:61ea5c9ad2de 941
ligeiro13 0:61ea5c9ad2de 942 linha = 0;
ligeiro13 0:61ea5c9ad2de 943 ponto = ponto + 10;
ligeiro13 0:61ea5c9ad2de 944 wait(0.2);
ligeiro13 0:61ea5c9ad2de 945 if( i_p > 1)
ligeiro13 0:61ea5c9ad2de 946 {
ligeiro13 0:61ea5c9ad2de 947 menu_enter_2 = 2;
ligeiro13 0:61ea5c9ad2de 948 }
ligeiro13 0:61ea5c9ad2de 949 if ( flag_mod == 1)
ligeiro13 0:61ea5c9ad2de 950 {
ligeiro13 0:61ea5c9ad2de 951 pc.printf("flag_mod = 1 \r\n");
ligeiro13 0:61ea5c9ad2de 952 pontos_x[i_p] = posicao_x;
ligeiro13 0:61ea5c9ad2de 953 pontos_y[i_p] = posicao_y;
ligeiro13 0:61ea5c9ad2de 954 pontos_z[i_p] = posicao_z;
ligeiro13 0:61ea5c9ad2de 955 pc.printf(" Pontos X[%i]=%i Pontos Y[%i]=%i Pontos Z[%i]=%i \r\n",i_p, pontos_x[i_p],i_p, pontos_y[i_p ],i_p, pontos_z[i_p]);
ligeiro13 0:61ea5c9ad2de 956 flag_mod = 0;//tira flag de modificar pontos
ligeiro13 0:61ea5c9ad2de 957 menu_enter_2 = 2;
ligeiro13 0:61ea5c9ad2de 958 wait(0.2);
ligeiro13 0:61ea5c9ad2de 959
ligeiro13 0:61ea5c9ad2de 960 }
ligeiro13 0:61ea5c9ad2de 961
ligeiro13 0:61ea5c9ad2de 962 wait(0.2);
ligeiro13 0:61ea5c9ad2de 963 }
ligeiro13 0:61ea5c9ad2de 964 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 965 {
ligeiro13 0:61ea5c9ad2de 966 menu_enter = 3 ;//VOltar
ligeiro13 0:61ea5c9ad2de 967 linha = 0;
ligeiro13 0:61ea5c9ad2de 968 wait(0.2);
ligeiro13 0:61ea5c9ad2de 969 }
ligeiro13 0:61ea5c9ad2de 970 }//menu = 3
ligeiro13 0:61ea5c9ad2de 971 if (menu == 4)//------------------COla-BE
ligeiro13 0:61ea5c9ad2de 972 {
ligeiro13 0:61ea5c9ad2de 973 pc.printf(" -->COLA-BE: flag_mod2 = %d\r\n",flag_mod2);
ligeiro13 0:61ea5c9ad2de 974 if (flag_mod2 == 0)
ligeiro13 0:61ea5c9ad2de 975 {
ligeiro13 0:61ea5c9ad2de 976 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 977 {
ligeiro13 0:61ea5c9ad2de 978 pc.printf(" COla[%d] = 1\r\n",i_c);
ligeiro13 0:61ea5c9ad2de 979 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 980 cola[i_c] = 1;
ligeiro13 0:61ea5c9ad2de 981 }
ligeiro13 0:61ea5c9ad2de 982 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 983 {
ligeiro13 0:61ea5c9ad2de 984 pc.printf(" COla[%d] = 0\r\n",i_c);
ligeiro13 0:61ea5c9ad2de 985 menu_enter_2 = 1 ;//VOltar
ligeiro13 0:61ea5c9ad2de 986
ligeiro13 0:61ea5c9ad2de 987 cola[i_c] = 0;
ligeiro13 0:61ea5c9ad2de 988 }
ligeiro13 0:61ea5c9ad2de 989 }
ligeiro13 0:61ea5c9ad2de 990 if (flag_mod2 == 1)
ligeiro13 0:61ea5c9ad2de 991 {
ligeiro13 0:61ea5c9ad2de 992 pc.printf(" menu_enter = 3\r\n");
ligeiro13 0:61ea5c9ad2de 993 if (linha == 2)
ligeiro13 0:61ea5c9ad2de 994 {
ligeiro13 0:61ea5c9ad2de 995 pc.printf(" COla[%d] = 1\r\n",i_p-1);
ligeiro13 0:61ea5c9ad2de 996 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 997 cola[i_p-1] = 1;
ligeiro13 0:61ea5c9ad2de 998 }
ligeiro13 0:61ea5c9ad2de 999 if (linha == 3)
ligeiro13 0:61ea5c9ad2de 1000 {
ligeiro13 0:61ea5c9ad2de 1001 pc.printf(" COla[%d] = 0\r\n",i_p-1);
ligeiro13 0:61ea5c9ad2de 1002 menu_enter_2 = 1 ;//VOltar
ligeiro13 0:61ea5c9ad2de 1003
ligeiro13 0:61ea5c9ad2de 1004 cola[i_p-1] = 0;
ligeiro13 0:61ea5c9ad2de 1005 }
ligeiro13 0:61ea5c9ad2de 1006 menu_enter = 3;//volta para a tela de "add pontos"
ligeiro13 0:61ea5c9ad2de 1007 wait(0.1);
ligeiro13 0:61ea5c9ad2de 1008 }
ligeiro13 0:61ea5c9ad2de 1009 flag_mod2 = 0;//tira flag de modificar pontos
ligeiro13 0:61ea5c9ad2de 1010 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1011 flag_mod = 0;
ligeiro13 0:61ea5c9ad2de 1012 i_c++;
ligeiro13 0:61ea5c9ad2de 1013 }//menu = 4
ligeiro13 0:61ea5c9ad2de 1014 if (menu == 5) //MODIFICANDO OS PONTOS-BE
ligeiro13 0:61ea5c9ad2de 1015 {
ligeiro13 0:61ea5c9ad2de 1016
ligeiro13 0:61ea5c9ad2de 1017 if (i_p != 0)
ligeiro13 0:61ea5c9ad2de 1018 {
ligeiro13 0:61ea5c9ad2de 1019 if ( linha == 2)
ligeiro13 0:61ea5c9ad2de 1020 {
ligeiro13 0:61ea5c9ad2de 1021 i_p++;
ligeiro13 0:61ea5c9ad2de 1022 menu_enter_2 = 4;
ligeiro13 0:61ea5c9ad2de 1023 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1024 }
ligeiro13 0:61ea5c9ad2de 1025 if ( linha == 3)
ligeiro13 0:61ea5c9ad2de 1026 {
ligeiro13 0:61ea5c9ad2de 1027 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1028 flag_mod = 1;
ligeiro13 0:61ea5c9ad2de 1029 flag_mod2= 1;
ligeiro13 0:61ea5c9ad2de 1030 pc.printf("Mod!");
ligeiro13 0:61ea5c9ad2de 1031 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1032 }
ligeiro13 0:61ea5c9ad2de 1033 if ( linha == 4)
ligeiro13 0:61ea5c9ad2de 1034 {
ligeiro13 0:61ea5c9ad2de 1035 pc.printf("voltar!");
ligeiro13 0:61ea5c9ad2de 1036 menu_enter = 3 ;//VOltar
ligeiro13 0:61ea5c9ad2de 1037 linha = 1;
ligeiro13 0:61ea5c9ad2de 1038 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1039 }
ligeiro13 0:61ea5c9ad2de 1040 if ( linha == 5)
ligeiro13 0:61ea5c9ad2de 1041 {
ligeiro13 0:61ea5c9ad2de 1042 i_p--;
ligeiro13 0:61ea5c9ad2de 1043 menu_enter_2 = 4;
ligeiro13 0:61ea5c9ad2de 1044 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1045 }
ligeiro13 0:61ea5c9ad2de 1046 }
ligeiro13 0:61ea5c9ad2de 1047 if (i_p == 0)
ligeiro13 0:61ea5c9ad2de 1048 {
ligeiro13 0:61ea5c9ad2de 1049 if ( linha == 2)
ligeiro13 0:61ea5c9ad2de 1050 {
ligeiro13 0:61ea5c9ad2de 1051 i_p++;
ligeiro13 0:61ea5c9ad2de 1052 menu_enter_2 = 4;
ligeiro13 0:61ea5c9ad2de 1053 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1054 }
ligeiro13 0:61ea5c9ad2de 1055 if ( linha == 3)
ligeiro13 0:61ea5c9ad2de 1056 {
ligeiro13 0:61ea5c9ad2de 1057 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1058 pc.printf("Mod!");
ligeiro13 0:61ea5c9ad2de 1059 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1060 }
ligeiro13 0:61ea5c9ad2de 1061 if ( linha == 4)
ligeiro13 0:61ea5c9ad2de 1062 {
ligeiro13 0:61ea5c9ad2de 1063 pc.printf("Mod!");
ligeiro13 0:61ea5c9ad2de 1064 menu_enter = 3 ;//VOltar
ligeiro13 0:61ea5c9ad2de 1065 linha = 1;
ligeiro13 0:61ea5c9ad2de 1066 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1067 }
ligeiro13 0:61ea5c9ad2de 1068 }
ligeiro13 0:61ea5c9ad2de 1069 }
ligeiro13 0:61ea5c9ad2de 1070 if (menu == 6)//-----------------------------------------------------------------Configuracoes--------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 1071 {
ligeiro13 0:61ea5c9ad2de 1072 if ( linha == 0)
ligeiro13 0:61ea5c9ad2de 1073 {
ligeiro13 0:61ea5c9ad2de 1074 i_v++;
ligeiro13 0:61ea5c9ad2de 1075 if (i_v == 3)
ligeiro13 0:61ea5c9ad2de 1076 {
ligeiro13 0:61ea5c9ad2de 1077 i_v = 0;
ligeiro13 0:61ea5c9ad2de 1078 }
ligeiro13 0:61ea5c9ad2de 1079 vel = lista_vel[i_v];
ligeiro13 0:61ea5c9ad2de 1080 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1081 menu_enter = 5;
ligeiro13 0:61ea5c9ad2de 1082
ligeiro13 0:61ea5c9ad2de 1083
ligeiro13 0:61ea5c9ad2de 1084 }
ligeiro13 0:61ea5c9ad2de 1085 if ( linha == 2)
ligeiro13 0:61ea5c9ad2de 1086 {
ligeiro13 0:61ea5c9ad2de 1087 lcd.locate(2,2);
ligeiro13 0:61ea5c9ad2de 1088 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 1089 lcd.locate(3,2);
ligeiro13 0:61ea5c9ad2de 1090 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 1091 lcd.locate(4,2);
ligeiro13 0:61ea5c9ad2de 1092 lcd.putc(' ');
ligeiro13 0:61ea5c9ad2de 1093 lcd.locate(2,2);
ligeiro13 0:61ea5c9ad2de 1094 lcd.putc('N');
ligeiro13 0:61ea5c9ad2de 1095 lcd.locate(3,2);
ligeiro13 0:61ea5c9ad2de 1096 lcd.putc('a');
ligeiro13 0:61ea5c9ad2de 1097 lcd.locate(4,2);
ligeiro13 0:61ea5c9ad2de 1098 lcd.putc('o');
ligeiro13 0:61ea5c9ad2de 1099 }
ligeiro13 0:61ea5c9ad2de 1100 if ( linha == 3)
ligeiro13 0:61ea5c9ad2de 1101 {
ligeiro13 0:61ea5c9ad2de 1102 pc.printf("Mod!");
ligeiro13 0:61ea5c9ad2de 1103 menu = 1 ;//VOltar
ligeiro13 0:61ea5c9ad2de 1104 linha = 1;
ligeiro13 0:61ea5c9ad2de 1105 wait(0.2);
ligeiro13 0:61ea5c9ad2de 1106 }
ligeiro13 0:61ea5c9ad2de 1107
ligeiro13 0:61ea5c9ad2de 1108 }
ligeiro13 0:61ea5c9ad2de 1109
ligeiro13 0:61ea5c9ad2de 1110 }// if bbotao_enter\
ligeiro13 0:61ea5c9ad2de 1111 //-------------------------------------------------------------------------------------ADICIONAR PONTOS -----------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 1112 if (menu_enter_2 == 1)
ligeiro13 0:61ea5c9ad2de 1113 {
ligeiro13 0:61ea5c9ad2de 1114 pc.printf("ADICIONAR PONTOS\r\n");
ligeiro13 0:61ea5c9ad2de 1115 pc.printf("i_p = %d ", i_p);
ligeiro13 0:61ea5c9ad2de 1116 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1117 linha = 2;
ligeiro13 0:61ea5c9ad2de 1118 pontos[i_p] = ponto;
ligeiro13 0:61ea5c9ad2de 1119 pc.printf("Ponto %d \r\n",i_p);
ligeiro13 0:61ea5c9ad2de 1120 pc.printf("X:%d Y:%d Z:%d \r\n",posicao_x,posicao_y,posicao_z);
ligeiro13 0:61ea5c9ad2de 1121 float posicao_x_f = passo_mm_xy(posicao_x);
ligeiro13 0:61ea5c9ad2de 1122 float posicao_y_f = passo_mm_xy(posicao_y);
ligeiro13 0:61ea5c9ad2de 1123 float posicao_z_f = passo_mm_z(posicao_z);
ligeiro13 0:61ea5c9ad2de 1124 lcd.printf("Pontos %d \n",i_p);
ligeiro13 0:61ea5c9ad2de 1125 lcd.printf("X:%.0f Y:%.0f Z:%.0f\n",posicao_x_f,posicao_y_f,posicao_z_f);
ligeiro13 0:61ea5c9ad2de 1126 lcd.printf(" Confirmar\n");
ligeiro13 0:61ea5c9ad2de 1127 lcd.printf(" Voltar\n");
ligeiro13 0:61ea5c9ad2de 1128 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 1129 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 1130
ligeiro13 0:61ea5c9ad2de 1131
ligeiro13 0:61ea5c9ad2de 1132
ligeiro13 0:61ea5c9ad2de 1133 menu = 3;
ligeiro13 0:61ea5c9ad2de 1134 menu_enter_2 = 0;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 1135 }// Adiciona Pontos
ligeiro13 0:61ea5c9ad2de 1136 //-------------------------------------------------------------------------------------Cola nos pontos? -----------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 1137 if (menu_enter_2 == 2)
ligeiro13 0:61ea5c9ad2de 1138 {
ligeiro13 0:61ea5c9ad2de 1139 pc.printf("Cola pontos?\r\n");
ligeiro13 0:61ea5c9ad2de 1140 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1141 linha = 2;
ligeiro13 0:61ea5c9ad2de 1142 lcd.printf("Colar entre?\n");
ligeiro13 0:61ea5c9ad2de 1143 pc.printf("flag_mod2 = %d\r\n",flag_mod2);
ligeiro13 0:61ea5c9ad2de 1144 if ( flag_mod2 == 0)
ligeiro13 0:61ea5c9ad2de 1145 {
ligeiro13 0:61ea5c9ad2de 1146 lcd.printf(" P%i e P%i\n",i_p - 2,i_p - 1);
ligeiro13 0:61ea5c9ad2de 1147 }
ligeiro13 0:61ea5c9ad2de 1148 if ( flag_mod2 == 1)
ligeiro13 0:61ea5c9ad2de 1149 {
ligeiro13 0:61ea5c9ad2de 1150 lcd.printf(" P%i e P%i\n",i_p - 1,i_p);
ligeiro13 0:61ea5c9ad2de 1151 }
ligeiro13 0:61ea5c9ad2de 1152 lcd.printf(" Sim\n");
ligeiro13 0:61ea5c9ad2de 1153 lcd.printf(" Nao\n");
ligeiro13 0:61ea5c9ad2de 1154 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 1155 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 1156
ligeiro13 0:61ea5c9ad2de 1157
ligeiro13 0:61ea5c9ad2de 1158 menu = 4;
ligeiro13 0:61ea5c9ad2de 1159 menu_enter_2 = 0;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 1160 }// Adiciona Pontos
ligeiro13 0:61ea5c9ad2de 1161 //-------------------------------------------------------------------------------------MODIFICAR PONTOS -----------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 1162 if (menu_enter_2 == 4)
ligeiro13 0:61ea5c9ad2de 1163 {
ligeiro13 0:61ea5c9ad2de 1164
ligeiro13 0:61ea5c9ad2de 1165 pc.printf("Modificar Pontos\r\n");
ligeiro13 0:61ea5c9ad2de 1166 pc.printf("i_p = %d ", i_p);
ligeiro13 0:61ea5c9ad2de 1167 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1168 linha = 2;
ligeiro13 0:61ea5c9ad2de 1169 pontos[i_p] = ponto;
ligeiro13 0:61ea5c9ad2de 1170 pc.printf("Pontos %d\r\n",i_p);
ligeiro13 0:61ea5c9ad2de 1171 pc.printf("X:%d Y:%d Z:%d \r\n",pontos_x[i_p],pontos_y[i_p],pontos_z[i_p]);
ligeiro13 0:61ea5c9ad2de 1172 float posicao_x_f = passo_mm_xy(pontos_x[i_p]);
ligeiro13 0:61ea5c9ad2de 1173 float posicao_y_f = passo_mm_xy(pontos_y[i_p]);
ligeiro13 0:61ea5c9ad2de 1174 float posicao_z_f = passo_mm_z(pontos_z[i_p]);
ligeiro13 0:61ea5c9ad2de 1175 if (i_p != 0)
ligeiro13 0:61ea5c9ad2de 1176 {
ligeiro13 0:61ea5c9ad2de 1177 pc.printf("i_c = %d ", i_c);
ligeiro13 0:61ea5c9ad2de 1178 if ( cola[i_p - 1] == 1)
ligeiro13 0:61ea5c9ad2de 1179 {
ligeiro13 0:61ea5c9ad2de 1180 lcd.printf("Ponto %d P%d->P%d=S",i_p,i_p-1 ,i_p);
ligeiro13 0:61ea5c9ad2de 1181 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 1182 lcd.printf("X:%.0f Y:%.0f Z:%.0f\n",posicao_x_f,posicao_y_f,posicao_z_f);
ligeiro13 0:61ea5c9ad2de 1183 }
ligeiro13 0:61ea5c9ad2de 1184 if ( cola[i_p - 1] == 0)
ligeiro13 0:61ea5c9ad2de 1185 {
ligeiro13 0:61ea5c9ad2de 1186 lcd.printf("Ponto %d P%d->P%d=N",i_p,i_p-1 ,i_p);
ligeiro13 0:61ea5c9ad2de 1187 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 1188 lcd.printf("X:%.0f Y:%.0f Z:%.0f\n",posicao_x_f,posicao_y_f,posicao_z_f);
ligeiro13 0:61ea5c9ad2de 1189 }
ligeiro13 0:61ea5c9ad2de 1190 }
ligeiro13 0:61ea5c9ad2de 1191
ligeiro13 0:61ea5c9ad2de 1192 if ( i_p == 0)
ligeiro13 0:61ea5c9ad2de 1193 {
ligeiro13 0:61ea5c9ad2de 1194
ligeiro13 0:61ea5c9ad2de 1195 lcd.printf("Ponto 0 ");
ligeiro13 0:61ea5c9ad2de 1196 lcd.printf("\n");
ligeiro13 0:61ea5c9ad2de 1197 lcd.printf("X:%.0f Y:%.0f Z:%.0f\n",posicao_x_f,posicao_y_f,posicao_z_f);
ligeiro13 0:61ea5c9ad2de 1198 lcd.printf(" Proximo\n");
ligeiro13 0:61ea5c9ad2de 1199 lcd.printf(" Voltar Modificar\n");
ligeiro13 0:61ea5c9ad2de 1200 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 1201 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 1202 }
ligeiro13 0:61ea5c9ad2de 1203 if (i_p != 0 and i_p != ultimo_p -1)
ligeiro13 0:61ea5c9ad2de 1204 {
ligeiro13 0:61ea5c9ad2de 1205 lcd.printf(" Anterior Proximo\n");
ligeiro13 0:61ea5c9ad2de 1206 lcd.printf(" Voltar Modificar\n");
ligeiro13 0:61ea5c9ad2de 1207 lcd.locate(10,linha);
ligeiro13 0:61ea5c9ad2de 1208 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 1209 }
ligeiro13 0:61ea5c9ad2de 1210 pc.printf("ultimo_p = %d \r\n",ultimo_p);
ligeiro13 0:61ea5c9ad2de 1211 if (i_p != 0 and i_p == ultimo_p -1)
ligeiro13 0:61ea5c9ad2de 1212 {
ligeiro13 0:61ea5c9ad2de 1213 lcd.printf(" Anterior \n");
ligeiro13 0:61ea5c9ad2de 1214 lcd.printf(" Voltar Modificar\n");
ligeiro13 0:61ea5c9ad2de 1215 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 1216 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 1217 linha = 5;
ligeiro13 0:61ea5c9ad2de 1218 }
ligeiro13 0:61ea5c9ad2de 1219
ligeiro13 0:61ea5c9ad2de 1220 menu = 5;
ligeiro13 0:61ea5c9ad2de 1221 menu_enter_2 = 0;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 1222 }// Adiciona Pontos
ligeiro13 0:61ea5c9ad2de 1223 //----------------------------------------------------------------------------------------------Configuracoes--------------------------------------------------------------
ligeiro13 0:61ea5c9ad2de 1224 if ( menu_enter == 5)
ligeiro13 0:61ea5c9ad2de 1225 {
ligeiro13 0:61ea5c9ad2de 1226 pc.printf("Configuracoes\r\n");
ligeiro13 0:61ea5c9ad2de 1227 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1228 linha = 0;
ligeiro13 0:61ea5c9ad2de 1229 lcd.printf(" -Vel:%d[mm/s]\n",vel);
ligeiro13 0:61ea5c9ad2de 1230 //lcd.printf(" -Cola nos Pontos?\n");
ligeiro13 0:61ea5c9ad2de 1231 //lcd.printf(" Sim \n");
ligeiro13 0:61ea5c9ad2de 1232 lcd.printf(" \n");
ligeiro13 0:61ea5c9ad2de 1233 lcd.printf(" \n");
ligeiro13 0:61ea5c9ad2de 1234 lcd.printf(" Voltar\n");
ligeiro13 0:61ea5c9ad2de 1235 lcd.locate(0,linha);
ligeiro13 0:61ea5c9ad2de 1236 lcd.putc('~');
ligeiro13 0:61ea5c9ad2de 1237
ligeiro13 0:61ea5c9ad2de 1238
ligeiro13 0:61ea5c9ad2de 1239 menu = 6;
ligeiro13 0:61ea5c9ad2de 1240 menu_enter = 0;//para o refresh rate
ligeiro13 0:61ea5c9ad2de 1241 wait(0.1);
ligeiro13 0:61ea5c9ad2de 1242 }
ligeiro13 0:61ea5c9ad2de 1243
ligeiro13 0:61ea5c9ad2de 1244 //-----------------------------------REFERENCIANDO-----------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1245 if(refe== 1) //comeca referenciamento roda uma vez
ligeiro13 0:61ea5c9ad2de 1246 {
ligeiro13 0:61ea5c9ad2de 1247
ligeiro13 0:61ea5c9ad2de 1248 //pc.printf("refe == 1 \r\n");
ligeiro13 0:61ea5c9ad2de 1249 enable_x = 0;
ligeiro13 0:61ea5c9ad2de 1250 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1251 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1252 dir_x = 1;
ligeiro13 0:61ea5c9ad2de 1253 //---------------IHM----------
ligeiro13 0:61ea5c9ad2de 1254 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1255 lcd.printf(" Referenciando...\n");
ligeiro13 0:61ea5c9ad2de 1256 wait(0.25);
ligeiro13 0:61ea5c9ad2de 1257 //-----------------------------
ligeiro13 0:61ea5c9ad2de 1258
ligeiro13 0:61ea5c9ad2de 1259 move_inicial(dir_x,600,FimCursoX,0);
ligeiro13 0:61ea5c9ad2de 1260 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1261 // wait(2);
ligeiro13 0:61ea5c9ad2de 1262 if (FimCursoX == 1)
ligeiro13 0:61ea5c9ad2de 1263 {
ligeiro13 0:61ea5c9ad2de 1264 pc.printf("Fim de Curso 1 X \r\n");
ligeiro13 0:61ea5c9ad2de 1265 // refe X
ligeiro13 0:61ea5c9ad2de 1266 enable_x = 0;
ligeiro13 0:61ea5c9ad2de 1267 dir_x = !dir_x ;
ligeiro13 0:61ea5c9ad2de 1268 movepara(dir_x,600,200,0);
ligeiro13 0:61ea5c9ad2de 1269 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1270 posicao_x = 1;
ligeiro13 0:61ea5c9ad2de 1271 pc.printf("Fim de Curso 2 X \r\n");
ligeiro13 0:61ea5c9ad2de 1272 }
ligeiro13 0:61ea5c9ad2de 1273 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1274 enable_y = 0;
ligeiro13 0:61ea5c9ad2de 1275 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1276 dir_y =1;
ligeiro13 0:61ea5c9ad2de 1277 move_inicial(dir_y,600,FimCursoY,1);
ligeiro13 0:61ea5c9ad2de 1278 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1279 if (FimCursoY == 1)
ligeiro13 0:61ea5c9ad2de 1280 {
ligeiro13 0:61ea5c9ad2de 1281 pc.printf("Fim de Curso 1 Y \r\n");
ligeiro13 0:61ea5c9ad2de 1282 // refe Y
ligeiro13 0:61ea5c9ad2de 1283 enable_y = 0;
ligeiro13 0:61ea5c9ad2de 1284 dir_y = !dir_y ;
ligeiro13 0:61ea5c9ad2de 1285 movepara(dir_y,vel,200,1);
ligeiro13 0:61ea5c9ad2de 1286 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1287 refe= 0;
ligeiro13 0:61ea5c9ad2de 1288 posicao_y = 1;
ligeiro13 0:61ea5c9ad2de 1289 pc.printf("Fim de Curso 2 Y \r\n");
ligeiro13 0:61ea5c9ad2de 1290 }
ligeiro13 0:61ea5c9ad2de 1291
ligeiro13 0:61ea5c9ad2de 1292 dir_z =1;
ligeiro13 0:61ea5c9ad2de 1293 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1294 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1295 enable_z = 0;
ligeiro13 0:61ea5c9ad2de 1296 move_inicial(dir_z,450,FimCursoZ,2);
ligeiro13 0:61ea5c9ad2de 1297 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1298
ligeiro13 0:61ea5c9ad2de 1299 if (FimCursoZ == 1)
ligeiro13 0:61ea5c9ad2de 1300 {
ligeiro13 0:61ea5c9ad2de 1301 pc.printf("Fim de Curso 1 Z \r\n");
ligeiro13 0:61ea5c9ad2de 1302 // refe Y
ligeiro13 0:61ea5c9ad2de 1303 enable_z = 0;
ligeiro13 0:61ea5c9ad2de 1304 dir_z = !dir_z ;
ligeiro13 0:61ea5c9ad2de 1305 movepara(dir_z,450,200,2);
ligeiro13 0:61ea5c9ad2de 1306 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1307 refe= 0;
ligeiro13 0:61ea5c9ad2de 1308 posicao_z = 1;
ligeiro13 0:61ea5c9ad2de 1309 pc.printf("Fim de Curso 2 Z \r\n");
ligeiro13 0:61ea5c9ad2de 1310 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1311 //---------------IHM----------
ligeiro13 0:61ea5c9ad2de 1312 lcd.printf("Referenciamento\n");
ligeiro13 0:61ea5c9ad2de 1313 lcd.printf("Concluido!\n");
ligeiro13 0:61ea5c9ad2de 1314 wait(1);
ligeiro13 0:61ea5c9ad2de 1315 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1316 menu = 1;
ligeiro13 0:61ea5c9ad2de 1317 //-----------------------------
ligeiro13 0:61ea5c9ad2de 1318 }
ligeiro13 0:61ea5c9ad2de 1319 }
ligeiro13 0:61ea5c9ad2de 1320
ligeiro13 0:61ea5c9ad2de 1321 //---------------------------------------------------------------------------Drivers-------------------------------------------------------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1322 //---------------------------------------------------------------------------LOOP DA MAQUINA-------------------------------------------------------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1323 if (mover_motores == 1 and menu == 3 and flag_emergencia2 == 0) //fica preso no loop
ligeiro13 0:61ea5c9ad2de 1324 {
ligeiro13 0:61ea5c9ad2de 1325
ligeiro13 0:61ea5c9ad2de 1326 //pc.printf("refe == 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1327 //Lendo JoyStick Analogico
ligeiro13 0:61ea5c9ad2de 1328 x = eixo_x.read();
ligeiro13 0:61ea5c9ad2de 1329 y = eixo_y.read();
ligeiro13 0:61ea5c9ad2de 1330 //pc.printf("Posicao/Vel X: %f Y: %f.\r\n", x, y);
ligeiro13 0:61ea5c9ad2de 1331 //Acionamento motor de Passo via Joystick
ligeiro13 0:61ea5c9ad2de 1332 //-----------------------------------------JOYSTICK X------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1333
ligeiro13 0:61ea5c9ad2de 1334 while (x < 0.3f and flag_emergencia2 == 0)// X+
ligeiro13 0:61ea5c9ad2de 1335 { enable_x = 0;
ligeiro13 0:61ea5c9ad2de 1336 dir_x = 0;
ligeiro13 0:61ea5c9ad2de 1337 //wait(espera);
ligeiro13 0:61ea5c9ad2de 1338 x = eixo_x.read();
ligeiro13 0:61ea5c9ad2de 1339 //pc.printf("x> \r\n");
ligeiro13 0:61ea5c9ad2de 1340 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 1341 {
ligeiro13 0:61ea5c9ad2de 1342 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 1343 break;
ligeiro13 0:61ea5c9ad2de 1344 }
ligeiro13 0:61ea5c9ad2de 1345 if (dir_x == 0 and posicao_x < 25000)
ligeiro13 0:61ea5c9ad2de 1346 {
ligeiro13 0:61ea5c9ad2de 1347 posicao_x = posicao_x + move(dir_x, vel,posicao_x,0) ;
ligeiro13 0:61ea5c9ad2de 1348 // menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1349
ligeiro13 0:61ea5c9ad2de 1350 }
ligeiro13 0:61ea5c9ad2de 1351 pc.printf("Posicao Passo X: %d. \r\n",posicao_x);
ligeiro13 0:61ea5c9ad2de 1352 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1353 }
ligeiro13 0:61ea5c9ad2de 1354 while ( x > 0.7f and flag_emergencia2 == 0) //X-
ligeiro13 0:61ea5c9ad2de 1355 { enable_x = 0;
ligeiro13 0:61ea5c9ad2de 1356 dir_x = 1;
ligeiro13 0:61ea5c9ad2de 1357 x = eixo_x.read();
ligeiro13 0:61ea5c9ad2de 1358 // pc.printf("x < \r\n");
ligeiro13 0:61ea5c9ad2de 1359 // pc.printf("dir_x = %B \r\n",dir_x);
ligeiro13 0:61ea5c9ad2de 1360 if (botao_emergencia == 0 )
ligeiro13 0:61ea5c9ad2de 1361 {
ligeiro13 0:61ea5c9ad2de 1362 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 1363 break;
ligeiro13 0:61ea5c9ad2de 1364 }
ligeiro13 0:61ea5c9ad2de 1365 if (dir_x == 1 and posicao_x > 0)
ligeiro13 0:61ea5c9ad2de 1366 {
ligeiro13 0:61ea5c9ad2de 1367 posicao_x = posicao_x - move(dir_x, vel, posicao_x,0) ;
ligeiro13 0:61ea5c9ad2de 1368 }
ligeiro13 0:61ea5c9ad2de 1369 pc.printf("Posicao Passo X: %d. \r\n",posicao_x);
ligeiro13 0:61ea5c9ad2de 1370 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1371 }
ligeiro13 0:61ea5c9ad2de 1372 if ( x > 0.3f and x < 0.73f)
ligeiro13 0:61ea5c9ad2de 1373 {
ligeiro13 0:61ea5c9ad2de 1374 para();
ligeiro13 0:61ea5c9ad2de 1375 // menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1376 }
ligeiro13 0:61ea5c9ad2de 1377 //-----------------------------------------JOYSTICK Y-------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1378 if (troca_yz == 0)
ligeiro13 0:61ea5c9ad2de 1379 {
ligeiro13 0:61ea5c9ad2de 1380 while (y < 0.3f and flag_emergencia2 == 0) //Y+
ligeiro13 0:61ea5c9ad2de 1381 {
ligeiro13 0:61ea5c9ad2de 1382 enable_y = 0;
ligeiro13 0:61ea5c9ad2de 1383 dir_y = 0;
ligeiro13 0:61ea5c9ad2de 1384 y = eixo_y.read();
ligeiro13 0:61ea5c9ad2de 1385 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 1386 {
ligeiro13 0:61ea5c9ad2de 1387 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 1388 break;
ligeiro13 0:61ea5c9ad2de 1389 }
ligeiro13 0:61ea5c9ad2de 1390 if (dir_y == 0 and posicao_y <26000)
ligeiro13 0:61ea5c9ad2de 1391 {
ligeiro13 0:61ea5c9ad2de 1392 posicao_y = posicao_y + move(dir_y, vel,posicao_y,1) ;
ligeiro13 0:61ea5c9ad2de 1393 }
ligeiro13 0:61ea5c9ad2de 1394 pc.printf("Posicao Passo Y: %d. \r\n",posicao_y);
ligeiro13 0:61ea5c9ad2de 1395 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1396 }
ligeiro13 0:61ea5c9ad2de 1397 while ( y > 0.7f and flag_emergencia2 == 0)//Y-
ligeiro13 0:61ea5c9ad2de 1398 {
ligeiro13 0:61ea5c9ad2de 1399 enable_y = 0;
ligeiro13 0:61ea5c9ad2de 1400 dir_y = 1;
ligeiro13 0:61ea5c9ad2de 1401 y = eixo_y.read();
ligeiro13 0:61ea5c9ad2de 1402 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 1403 {
ligeiro13 0:61ea5c9ad2de 1404 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 1405 break;
ligeiro13 0:61ea5c9ad2de 1406 }
ligeiro13 0:61ea5c9ad2de 1407 if (dir_y == 1 and posicao_y > 0)
ligeiro13 0:61ea5c9ad2de 1408 {
ligeiro13 0:61ea5c9ad2de 1409 posicao_y = posicao_y - move(dir_y, vel, posicao_y,1) ;
ligeiro13 0:61ea5c9ad2de 1410 }
ligeiro13 0:61ea5c9ad2de 1411 pc.printf("Posicao Passo Y: %d. \r\n",posicao_y);
ligeiro13 0:61ea5c9ad2de 1412 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1413
ligeiro13 0:61ea5c9ad2de 1414 }
ligeiro13 0:61ea5c9ad2de 1415 if ( y > 0.3f and y < 0.7f)
ligeiro13 0:61ea5c9ad2de 1416 {
ligeiro13 0:61ea5c9ad2de 1417 para_();
ligeiro13 0:61ea5c9ad2de 1418 // menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1419 }
ligeiro13 0:61ea5c9ad2de 1420 }
ligeiro13 0:61ea5c9ad2de 1421 //-----------------------------------------JOYSTICK Y PARA MEXER O Z------------------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1422 if ( troca_yz == 1)
ligeiro13 0:61ea5c9ad2de 1423 {
ligeiro13 0:61ea5c9ad2de 1424 while (y < 0.3f and flag_emergencia2 == 0) //Z-
ligeiro13 0:61ea5c9ad2de 1425 {
ligeiro13 0:61ea5c9ad2de 1426 enable_z = 0;
ligeiro13 0:61ea5c9ad2de 1427 dir_z = 1;
ligeiro13 0:61ea5c9ad2de 1428 y = eixo_y.read();
ligeiro13 0:61ea5c9ad2de 1429 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 1430 {
ligeiro13 0:61ea5c9ad2de 1431 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 1432 break;
ligeiro13 0:61ea5c9ad2de 1433 }
ligeiro13 0:61ea5c9ad2de 1434 if (dir_z == 1 and posicao_z > 0)
ligeiro13 0:61ea5c9ad2de 1435 {
ligeiro13 0:61ea5c9ad2de 1436 posicao_z = posicao_z - move(dir_z, 500,posicao_z,2) ;
ligeiro13 0:61ea5c9ad2de 1437 }
ligeiro13 0:61ea5c9ad2de 1438 pc.printf("Posicao Passo Z: %d. \r\n",posicao_z);
ligeiro13 0:61ea5c9ad2de 1439 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1440 }
ligeiro13 0:61ea5c9ad2de 1441 while ( y > 0.7f and flag_emergencia2 == 0)//Z+
ligeiro13 0:61ea5c9ad2de 1442 {
ligeiro13 0:61ea5c9ad2de 1443 enable_z = 0;
ligeiro13 0:61ea5c9ad2de 1444 dir_z = 0;
ligeiro13 0:61ea5c9ad2de 1445 y = eixo_y.read();
ligeiro13 0:61ea5c9ad2de 1446 if (botao_emergencia == 0)
ligeiro13 0:61ea5c9ad2de 1447 {
ligeiro13 0:61ea5c9ad2de 1448 flag_emergencia2 = 1;
ligeiro13 0:61ea5c9ad2de 1449 break;
ligeiro13 0:61ea5c9ad2de 1450 }
ligeiro13 0:61ea5c9ad2de 1451 if (dir_z == 0 and posicao_z < 2000)
ligeiro13 0:61ea5c9ad2de 1452 {
ligeiro13 0:61ea5c9ad2de 1453 posicao_z = posicao_z + move(dir_z, 500, posicao_z,2) ;
ligeiro13 0:61ea5c9ad2de 1454 }
ligeiro13 0:61ea5c9ad2de 1455 pc.printf("Posicao Passo Z: %d. \r\n",posicao_z);
ligeiro13 0:61ea5c9ad2de 1456 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1457
ligeiro13 0:61ea5c9ad2de 1458 }
ligeiro13 0:61ea5c9ad2de 1459 if ( y > 0.3f and y < 0.7f)
ligeiro13 0:61ea5c9ad2de 1460 {
ligeiro13 0:61ea5c9ad2de 1461 para_();
ligeiro13 0:61ea5c9ad2de 1462 //menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1463 }
ligeiro13 0:61ea5c9ad2de 1464 }//fim troca_yz
ligeiro13 0:61ea5c9ad2de 1465 //-----------------------------------------BOTAO ANALOGICO PARA TROCAR O EIXO Z/Y --------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1466
ligeiro13 0:61ea5c9ad2de 1467 if (botao_analog == 0)
ligeiro13 0:61ea5c9ad2de 1468 { troca_yz = !troca_yz; //troca Y/Z
ligeiro13 0:61ea5c9ad2de 1469
ligeiro13 0:61ea5c9ad2de 1470 pc.printf("ZY");
ligeiro13 0:61ea5c9ad2de 1471 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1472 if (troca_yz == 1)
ligeiro13 0:61ea5c9ad2de 1473 {
ligeiro13 0:61ea5c9ad2de 1474 lcd.printf(" Eixo Z Selecionado \n");
ligeiro13 0:61ea5c9ad2de 1475 }
ligeiro13 0:61ea5c9ad2de 1476 if (troca_yz == 0)
ligeiro13 0:61ea5c9ad2de 1477 {
ligeiro13 0:61ea5c9ad2de 1478 lcd.printf(" Eixo Y Selecionado \n");
ligeiro13 0:61ea5c9ad2de 1479 }
ligeiro13 0:61ea5c9ad2de 1480 wait(0.8);
ligeiro13 0:61ea5c9ad2de 1481 menu_enter_2 = 1;
ligeiro13 0:61ea5c9ad2de 1482 }
ligeiro13 0:61ea5c9ad2de 1483
ligeiro13 0:61ea5c9ad2de 1484 //-----------------------------------------GUARDAR PONTOS (BOTAO) --------------------------------------------/
ligeiro13 0:61ea5c9ad2de 1485 if ((guardar_pontos == 1 or botaoC == 0) and posicao_x >= 0 and posicao_y >= 0 and posicao_z >= 0 )
ligeiro13 0:61ea5c9ad2de 1486 { //-------------------------------------------------X--------------------------------/
ligeiro13 0:61ea5c9ad2de 1487
ligeiro13 0:61ea5c9ad2de 1488 pc.printf("GUARDAR PONTOS\r\n");
ligeiro13 0:61ea5c9ad2de 1489 if ( i_x != 0 )
ligeiro13 0:61ea5c9ad2de 1490 {
ligeiro13 0:61ea5c9ad2de 1491 pontos_x[i_x] = posicao_x;
ligeiro13 0:61ea5c9ad2de 1492 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_x,pontos_x[i_x]);
ligeiro13 0:61ea5c9ad2de 1493 i_x++;
ligeiro13 0:61ea5c9ad2de 1494 }
ligeiro13 0:61ea5c9ad2de 1495 if ( i_x == 0 )
ligeiro13 0:61ea5c9ad2de 1496 {
ligeiro13 0:61ea5c9ad2de 1497 pontos_x[i_x] = posicao_x;
ligeiro13 0:61ea5c9ad2de 1498 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_x,pontos_x[i_x]);
ligeiro13 0:61ea5c9ad2de 1499 i_x++;
ligeiro13 0:61ea5c9ad2de 1500 }
ligeiro13 0:61ea5c9ad2de 1501
ligeiro13 0:61ea5c9ad2de 1502 /*if (posicao_x != pontos_x[i_x-1])
ligeiro13 0:61ea5c9ad2de 1503 {
ligeiro13 0:61ea5c9ad2de 1504 pontos_x[i_x] = posicao_x;
ligeiro13 0:61ea5c9ad2de 1505 // pc.printf(" Ponto[%i] Passo: %i \r\n",i_x,pontos_x[i_x]);
ligeiro13 0:61ea5c9ad2de 1506 i_x++;
ligeiro13 0:61ea5c9ad2de 1507 }*/
ligeiro13 0:61ea5c9ad2de 1508
ligeiro13 0:61ea5c9ad2de 1509 //-------------------------------------------------Y--------------------------------/
ligeiro13 0:61ea5c9ad2de 1510
ligeiro13 0:61ea5c9ad2de 1511 if ( i_y != 0 )
ligeiro13 0:61ea5c9ad2de 1512 {
ligeiro13 0:61ea5c9ad2de 1513 pontos_y[i_y] = posicao_y;
ligeiro13 0:61ea5c9ad2de 1514 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_y,pontos_y[i_y]);
ligeiro13 0:61ea5c9ad2de 1515 i_y++;
ligeiro13 0:61ea5c9ad2de 1516 }
ligeiro13 0:61ea5c9ad2de 1517 if ( i_y == 0 )
ligeiro13 0:61ea5c9ad2de 1518 {
ligeiro13 0:61ea5c9ad2de 1519 pontos_y[i_y] = posicao_y;
ligeiro13 0:61ea5c9ad2de 1520 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_y,pontos_y[i_y]);
ligeiro13 0:61ea5c9ad2de 1521 i_y++;
ligeiro13 0:61ea5c9ad2de 1522 }
ligeiro13 0:61ea5c9ad2de 1523 /*if (posicao_y != pontos_y[i_y-1])
ligeiro13 0:61ea5c9ad2de 1524 {
ligeiro13 0:61ea5c9ad2de 1525 pontos_y[i_y] = posicao_y;
ligeiro13 0:61ea5c9ad2de 1526 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_y,pontos_y[i_y]);
ligeiro13 0:61ea5c9ad2de 1527 i_y++;
ligeiro13 0:61ea5c9ad2de 1528 }*/
ligeiro13 0:61ea5c9ad2de 1529 // pc.printf(" Pontos X[%i] Y[%i] Passo X: %i Passo Y: %i\r\n",i_x,i_y, pontos_x[i_x -1],pontos_y[i_y -1]);
ligeiro13 0:61ea5c9ad2de 1530
ligeiro13 0:61ea5c9ad2de 1531 //-------------------------------------------------Z--------------------------------/
ligeiro13 0:61ea5c9ad2de 1532
ligeiro13 0:61ea5c9ad2de 1533 if ( i_z != 0 )
ligeiro13 0:61ea5c9ad2de 1534 {
ligeiro13 0:61ea5c9ad2de 1535 pontos_z[i_z] = posicao_z;
ligeiro13 0:61ea5c9ad2de 1536 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_z,pontos_y[i_z]);
ligeiro13 0:61ea5c9ad2de 1537 i_z++;
ligeiro13 0:61ea5c9ad2de 1538 }
ligeiro13 0:61ea5c9ad2de 1539 if ( i_z == 0 )
ligeiro13 0:61ea5c9ad2de 1540 {
ligeiro13 0:61ea5c9ad2de 1541 pontos_z[i_z] = posicao_z;
ligeiro13 0:61ea5c9ad2de 1542 // pc.printf(" Ponto[%i] Passo: %i \r\n",i_z,pontos_z[i_z]);
ligeiro13 0:61ea5c9ad2de 1543 i_z++;
ligeiro13 0:61ea5c9ad2de 1544 }
ligeiro13 0:61ea5c9ad2de 1545 /* if (posicao_z != pontos_z[i_z-1])
ligeiro13 0:61ea5c9ad2de 1546 {
ligeiro13 0:61ea5c9ad2de 1547 pontos_y[i_z] = posicao_z;
ligeiro13 0:61ea5c9ad2de 1548 //pc.printf(" Ponto[%i] Passo: %i \r\n",i_z,pontos_y[i_z]);
ligeiro13 0:61ea5c9ad2de 1549 i_z++;
ligeiro13 0:61ea5c9ad2de 1550 }*/
ligeiro13 0:61ea5c9ad2de 1551 pc.printf(" Pontos X[%i]=%i Pontos Y[%i]=%i Pontos Z[%i]=%i \r\n",i_x, pontos_x[i_x -1],i_y, pontos_y[i_y -1],i_z, pontos_z[i_z -1]);
ligeiro13 0:61ea5c9ad2de 1552 guardar_pontos = 0;
ligeiro13 0:61ea5c9ad2de 1553 wait(0.5);
ligeiro13 0:61ea5c9ad2de 1554 }
ligeiro13 0:61ea5c9ad2de 1555 }//end mover_motores == 1 and menu == 3
ligeiro13 0:61ea5c9ad2de 1556
ligeiro13 0:61ea5c9ad2de 1557 if (mover_motores == 1 and menu == 2)
ligeiro13 0:61ea5c9ad2de 1558 {
ligeiro13 0:61ea5c9ad2de 1559 //-----------------------------------------IR PARA OS PONTOS GUARDADOS (BOTAO) -----------------------------------------/
ligeiro13 0:61ea5c9ad2de 1560
ligeiro13 0:61ea5c9ad2de 1561 if (colar_pontos == 1 or botaoA == 0)
ligeiro13 0:61ea5c9ad2de 1562 {
ligeiro13 0:61ea5c9ad2de 1563
ligeiro13 0:61ea5c9ad2de 1564 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1565 lcd.printf("Aplicando Cola!\n");
ligeiro13 0:61ea5c9ad2de 1566 pc.printf("colar pontos funcao! \r\n");
ligeiro13 0:61ea5c9ad2de 1567 aciona_pneu = 0;//liga a pressao da valvula
ligeiro13 0:61ea5c9ad2de 1568 for(int h = 0; h < (i_z); h++)
ligeiro13 0:61ea5c9ad2de 1569 {
ligeiro13 0:61ea5c9ad2de 1570
ligeiro13 0:61ea5c9ad2de 1571 //-----------------------------------------Aciona a pneumatica -----------------------------------------/
ligeiro13 0:61ea5c9ad2de 1572 if (cola[h - 1] == 1)
ligeiro13 0:61ea5c9ad2de 1573 {
ligeiro13 0:61ea5c9ad2de 1574 aciona_pneu2 = 0;//abre valvula
ligeiro13 0:61ea5c9ad2de 1575
ligeiro13 0:61ea5c9ad2de 1576 }
ligeiro13 0:61ea5c9ad2de 1577
ligeiro13 0:61ea5c9ad2de 1578 wait(1);
ligeiro13 0:61ea5c9ad2de 1579 pc.printf(" Indo para os Pontos \r\n");
ligeiro13 0:61ea5c9ad2de 1580 //-----------------------------------------pontos X -----------------------------------------/
ligeiro13 0:61ea5c9ad2de 1581 pc.printf(" Pontos X \r\n");
ligeiro13 0:61ea5c9ad2de 1582
ligeiro13 0:61ea5c9ad2de 1583 int set_point_x = pontos_x[h] - posicao_x; //o quanto de passos que o motor ira dar para chegar ao ponto desejado
ligeiro13 0:61ea5c9ad2de 1584 //pc.printf("SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point, pontos_x[h],h);
ligeiro13 0:61ea5c9ad2de 1585 if (set_point_x != 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1586 {
ligeiro13 0:61ea5c9ad2de 1587 enable_x = 0;
ligeiro13 0:61ea5c9ad2de 1588
ligeiro13 0:61ea5c9ad2de 1589 }
ligeiro13 0:61ea5c9ad2de 1590
ligeiro13 0:61ea5c9ad2de 1591 if (set_point_x == 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1592 {
ligeiro13 0:61ea5c9ad2de 1593 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1594 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1595 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1596 }
ligeiro13 0:61ea5c9ad2de 1597 if (set_point_x > 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1598 { // pc.printf("maior q 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1599 // pc.printf(" SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point, pontos_x[h],h);
ligeiro13 0:61ea5c9ad2de 1600 dir_x = 0;
ligeiro13 0:61ea5c9ad2de 1601 posicao_x = posicao_x + movepara(dir_x,vel,set_point_x,0);
ligeiro13 0:61ea5c9ad2de 1602 }
ligeiro13 0:61ea5c9ad2de 1603
ligeiro13 0:61ea5c9ad2de 1604 if (set_point_x < 0) // o ponto atual esta a frente do desejado
ligeiro13 0:61ea5c9ad2de 1605 { // pc.printf("menor q 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1606 // pc.printf(" SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point, pontos_x[h],h);
ligeiro13 0:61ea5c9ad2de 1607 dir_x = 1;
ligeiro13 0:61ea5c9ad2de 1608 posicao_x = posicao_x - movepara(dir_x,vel,set_point_x,0);
ligeiro13 0:61ea5c9ad2de 1609 }
ligeiro13 0:61ea5c9ad2de 1610 //enable_x = 1 ;//desligar o motor na espera
ligeiro13 0:61ea5c9ad2de 1611 //pc.printf("Posicao Passo: %d. \r\n",posicao_x);
ligeiro13 0:61ea5c9ad2de 1612 // wait(1); //espera para ir ao proximo ponto
ligeiro13 0:61ea5c9ad2de 1613
ligeiro13 0:61ea5c9ad2de 1614 //-----------------------------------------pontos y -----------------------------------------/
ligeiro13 0:61ea5c9ad2de 1615 pc.printf(" Pontos Y \r\n");
ligeiro13 0:61ea5c9ad2de 1616 int set_point_y = pontos_y[h] - posicao_y; //o quanto de passos que o motor ira dar para chegar ao ponto desejado
ligeiro13 0:61ea5c9ad2de 1617
ligeiro13 0:61ea5c9ad2de 1618 //pc.printf("SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point_y, pontos_y[h],h);
ligeiro13 0:61ea5c9ad2de 1619 if (set_point_y != 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1620 {
ligeiro13 0:61ea5c9ad2de 1621 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1622 enable_y = 0;
ligeiro13 0:61ea5c9ad2de 1623 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1624 }
ligeiro13 0:61ea5c9ad2de 1625 if (set_point_y == 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1626 {
ligeiro13 0:61ea5c9ad2de 1627 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1628 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1629 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1630 }
ligeiro13 0:61ea5c9ad2de 1631 if (set_point_y > 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1632 { //pc.printf("maior q 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1633 // pc.printf(" SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point_y, pontos_y[h],h);
ligeiro13 0:61ea5c9ad2de 1634 dir_y = 0;
ligeiro13 0:61ea5c9ad2de 1635 posicao_y = posicao_y + movepara(dir_y,vel,set_point_y,1);
ligeiro13 0:61ea5c9ad2de 1636 }
ligeiro13 0:61ea5c9ad2de 1637
ligeiro13 0:61ea5c9ad2de 1638 if (set_point_y < 0) // o ponto atual esta a frente do desejado
ligeiro13 0:61ea5c9ad2de 1639 { // pc.printf("menor q 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1640 //pc.printf(" SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point_y, pontos_y[h],h);
ligeiro13 0:61ea5c9ad2de 1641 dir_y = 1;
ligeiro13 0:61ea5c9ad2de 1642 posicao_y = posicao_y - movepara(dir_y,vel,set_point_y,1);
ligeiro13 0:61ea5c9ad2de 1643 }
ligeiro13 0:61ea5c9ad2de 1644 //enable_y = 1 ;//desligar o motor na espera
ligeiro13 0:61ea5c9ad2de 1645 // pc.printf("Posicao Passo X: %d Passo Y: %d . \r\n",posicao_x,posicao_y);
ligeiro13 0:61ea5c9ad2de 1646 // wait(1); //espera 2 segundos para ir ao proximo ponto
ligeiro13 0:61ea5c9ad2de 1647 //-----------------------------------------pontos z -----------------------------------------/
ligeiro13 0:61ea5c9ad2de 1648 pc.printf(" Pontos Z \r\n");
ligeiro13 0:61ea5c9ad2de 1649
ligeiro13 0:61ea5c9ad2de 1650 int set_point_z = pontos_z[h] - posicao_z; //o quanto de passos que o motor ira dar para chegar ao ponto desejado
ligeiro13 0:61ea5c9ad2de 1651 //pc.printf("SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point_y, pontos_y[h],h);
ligeiro13 0:61ea5c9ad2de 1652 if (set_point_z != 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1653 {
ligeiro13 0:61ea5c9ad2de 1654 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1655 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1656 enable_z = 0;
ligeiro13 0:61ea5c9ad2de 1657 }
ligeiro13 0:61ea5c9ad2de 1658 if (set_point_z == 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1659 {
ligeiro13 0:61ea5c9ad2de 1660 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1661 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1662 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1663 }
ligeiro13 0:61ea5c9ad2de 1664 if (set_point_z > 0) //o ponto atual é menor do que o desejado
ligeiro13 0:61ea5c9ad2de 1665 { //pc.printf("maior q 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1666 // pc.printf(" SetPoint:%i pontos_z[h]:%i h:%i \r\n",set_point_z, pontos_z[h],h);
ligeiro13 0:61ea5c9ad2de 1667 dir_z = 0; //vai para baixo
ligeiro13 0:61ea5c9ad2de 1668 posicao_z = posicao_z + movepara(dir_z,vel,set_point_z,2);
ligeiro13 0:61ea5c9ad2de 1669 }
ligeiro13 0:61ea5c9ad2de 1670
ligeiro13 0:61ea5c9ad2de 1671 if (set_point_z < 0) // o ponto atual esta a frente do desejado
ligeiro13 0:61ea5c9ad2de 1672 { // pc.printf("menor q 0 \r\n");
ligeiro13 0:61ea5c9ad2de 1673 //pc.printf(" SetPoint:%i pontos_x[h]:%i h:%i \r\n",set_point_y, pontos_y[h],h);
ligeiro13 0:61ea5c9ad2de 1674
ligeiro13 0:61ea5c9ad2de 1675 dir_z = 1; //vai para cima
ligeiro13 0:61ea5c9ad2de 1676 posicao_z = posicao_z - movepara(dir_z,vel,set_point_z,2);
ligeiro13 0:61ea5c9ad2de 1677 }
ligeiro13 0:61ea5c9ad2de 1678 //enable_y = 1 ;//desligar o motor na espera
ligeiro13 0:61ea5c9ad2de 1679 pc.printf("Posicao[%d] Passo X: %d Passo Y: %d Passo Z: %d. \r\n",h,posicao_x,posicao_y,posicao_z);
ligeiro13 0:61ea5c9ad2de 1680 colar_pontos = 0;
ligeiro13 0:61ea5c9ad2de 1681
ligeiro13 0:61ea5c9ad2de 1682 // wait(1); //espera 2 segundos para ir ao proximo ponto
ligeiro13 0:61ea5c9ad2de 1683
ligeiro13 0:61ea5c9ad2de 1684 aciona_pneu2 = 1;//fecha valvula
ligeiro13 0:61ea5c9ad2de 1685
ligeiro13 0:61ea5c9ad2de 1686
ligeiro13 0:61ea5c9ad2de 1687 }//loop for
ligeiro13 0:61ea5c9ad2de 1688 enable_x = 1;
ligeiro13 0:61ea5c9ad2de 1689 enable_y = 1;
ligeiro13 0:61ea5c9ad2de 1690 enable_z = 1;
ligeiro13 0:61ea5c9ad2de 1691 aciona_pneu = 1;//desliga a pressao da valvula
ligeiro13 0:61ea5c9ad2de 1692 pc.printf("Acabou rotina aplicador de cola\n");
ligeiro13 0:61ea5c9ad2de 1693 if (botao_emergencia == 1)
ligeiro13 0:61ea5c9ad2de 1694 {
ligeiro13 0:61ea5c9ad2de 1695 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1696 lcd.printf("Finalizado!\n");
ligeiro13 0:61ea5c9ad2de 1697 wait(1);
ligeiro13 0:61ea5c9ad2de 1698 menu_enter = 3;//volta para o menu
ligeiro13 0:61ea5c9ad2de 1699 linha = 3;
ligeiro13 0:61ea5c9ad2de 1700 }
ligeiro13 0:61ea5c9ad2de 1701 }//if botaoA
ligeiro13 0:61ea5c9ad2de 1702
ligeiro13 0:61ea5c9ad2de 1703 }// end mover_motores == 1 and menu == 2
ligeiro13 0:61ea5c9ad2de 1704
ligeiro13 0:61ea5c9ad2de 1705 }//if botao emergencia == 1
ligeiro13 0:61ea5c9ad2de 1706 if ((botao_emergencia == 0 and flag_emergencia == 0) or flag_emergencia2 == 1)
ligeiro13 0:61ea5c9ad2de 1707 {
ligeiro13 0:61ea5c9ad2de 1708 lcd.cls();
ligeiro13 0:61ea5c9ad2de 1709 lcd.printf("Botao Emergencia!\n");
ligeiro13 0:61ea5c9ad2de 1710 lcd.setCursor(TextLCD::CurOff_BlkOff);//desliga o cursor
ligeiro13 0:61ea5c9ad2de 1711 refe = 0;
ligeiro13 0:61ea5c9ad2de 1712 flag_emergencia = 1;
ligeiro13 0:61ea5c9ad2de 1713 flag_emergencia2 = 0;
ligeiro13 0:61ea5c9ad2de 1714 linha = 1;
ligeiro13 0:61ea5c9ad2de 1715 }
ligeiro13 0:61ea5c9ad2de 1716 }//while 1
ligeiro13 0:61ea5c9ad2de 1717 }//main