Projeto Mecatrônico
/
ProjetoMecatronico
testando
Diff: main_PM.cpp
- 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