testando

Dependencies:   mbed TextLCD2

Revision:
24:38820e43b9fe
Parent:
23:1c74f54c9d4a
Child:
30:179ceb3e5791
--- a/main_PM.cpp	Tue May 26 12:53:29 2020 +0000
+++ b/main_PM.cpp	Tue May 26 13:28:39 2020 +0000
@@ -4,20 +4,21 @@
 #include "Keypad.h"
 
 //local para a declaração de variáveis
-float t_motor = 0.002;
-float t_teclado = 0.01;
-int hor[] = {12,6,3,9};
-int antihor[] = {3,6,12,9};
-int parado[] = {0,0,0,0};
-char tecla;
-float coord_x = 0;
-float coord_y = 0;
-float coord_z = 0;
-int est_x = 0;
-int est_y = 0;
-int est_z = 0;
+float t_motor = 0.002;  //delay entre o acionamento de uma bobina do motor e a outra
+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
+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
+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
+int parado[] = {0,0,0,0};   //valores enviados às bobinas do motor para deixá-lo parado
+char tecla; //variável que guarda a tecla apertada no teclado
+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
+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
+float coord_z = 0; //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
 
-//pinos usados pelos botões de fim de curso
+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
+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
+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
+
+//pinos usados pelos botões de fim de curso,
 DigitalIn fdc_x(PC_10);
 DigitalIn fdc_y(PC_11);
 DigitalIn fdc_z(PC_12);
@@ -48,19 +49,24 @@
     printf("\n%i",est_x);
     printf("\n%i",est_y);
     printf("\n%i",est_z);
-    lcd.printf("Bem-vindo ao Pipemax");
-    lcd.locate(0,1);
+    lcd.locate(10,0);
+    lcd.printf("Pipemax"); //tela de boas-vindas a ser mostrada enquanto a máquina faz o seu referenciamento
+    lcd.locate(5,1);
     lcd.printf("o seu sistema");
-    lcd.locate(0,2);
+    lcd.locate(6,2);
     lcd.printf("automatizado");
-    lcd.locate(0,3);
+    lcd.locate(5,3);
     lcd.printf("de pipetagem");
-    while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}}
+    //rotina de referenciamento dos eixos
+    //variável est_eixo vai para 1 para impedir que o motor seja girado no sentido horário mais a frente
+    //na rotina de programação da máquina. Voltará para zero quando o motor for acionado no sentido anti horário
+    while (fdc_x != 0){for(int i = 0; i < 4; i++){eixox = hor[i];wait(t_motor);est_x = 1;}}                                                                    
     while (fdc_y != 0){for(int i = 0; i < 4; i++){eixoy = hor[i];wait(t_motor);est_y = 1;}}
     while (fdc_z != 0){for(int i = 0; i < 4; i++){eixoz = hor[i];wait(t_motor);est_z = 1;}}
     printf("\n%i",est_x);
     printf("\n%i",est_y);
     printf("\n%i",est_z);
+    
     while(1) {
          int solta = 1;
          tecla = teclado.ReadKey();               //leitura da tecla apertada