Versão 2022
Dependencies: QEI USBDevice mbed
Diff: main.cpp
- Revision:
- 2:70151b51aba8
- Parent:
- 1:8ae261460176
- Child:
- 3:0a6596c337e8
diff -r 8ae261460176 -r 70151b51aba8 main.cpp --- a/main.cpp Tue Sep 27 16:36:54 2022 +0000 +++ b/main.cpp Tue Sep 27 16:48:42 2022 +0000 @@ -4,7 +4,7 @@ //#include "PTC3471.h" #define Ts 0.01 //periodo de amostragem -#define pi 3.14159 +#define pi 3.141592653589793 /******************************************************************************/ /**************** Definição de Variaveis, Objetos e Funções ******************/ @@ -14,12 +14,12 @@ Ticker Control_Interrupt; // Interrupção de Tempo para acionamento do algoritmo de controle -QEI Encoder_Motor (PTD0,PTB17,NC, 300, QEI::X4_ENCODING); // Objeto de leitura do encoder do motor -QEI Encoder_Pendulo (PTA12,PTA13,NC, 500, QEI::X4_ENCODING); // Objeto de leitura do encoder do pêndulo +QEI Encoder_Motor (PTD0,PTB17,NC, 300, QEI::X4_ENCODING); // Objeto de leitura do encoder do motor +QEI Encoder_Pendulo (PTA12,PTA13,NC, 600, QEI::X4_ENCODING);// Objeto de leitura do encoder do pêndulo -DigitalOut Horario(PTC1); // DigitalOut que sinaliza se deve virar o motor no sentido horário -DigitalOut AntiHorario(PTD6); // DigitalOut que sinaliza se deve virar o motor no sentido anti-horário -PwmOut Motor(PTD5); // AnalogOut (PWM) que indica de 0 a 1 qual o módulo da tensão sobre o motor +DigitalOut Horario(PTC1); // DigitalOut que sinaliza se deve virar o motor no sentido horário +DigitalOut AntiHorario(PTD5); // DigitalOut que sinaliza se deve virar o motor no sentido anti-horário +PwmOut Motor(PTD6); // D.C. do PWM [0, 1]: porcentagem de tensão sobre o motor char c; int gotRead = 0; @@ -74,15 +74,15 @@ switch(c) { case 'a': u = u+0.01; - pc.printf("u: %f\n\r", u); + //pc.printf("u: %f\n\r", u); break; case 'd': u = u-0.01; - pc.printf("u: %f\n\r", u); + //pc.printf("u: %f\n\r", u); break; case 's': u = 0; - pc.printf("u: %f\n\r", u); + //pc.printf("u: %f\n\r", u); break; } } @@ -116,20 +116,20 @@ dth0 = (th0-th0_a)/Ts; // Calculo das velocidades por backward dth1 = (th1-th1_a)/Ts; // É interessante propor outro método - if(u>1) - u=1; - if(u<-1) - u=-1; + if(u>0.22) + u=0.22; + if(u<-0.22) + u=-0.22; if(u<0){ Motor = -u; - Horario = 0; - AntiHorario = 1; + Horario = 1; + AntiHorario = 0; } else if(u>0){ Motor = u; - Horario = 1; - AntiHorario = 0; + Horario = 0; + AntiHorario = 1; } else{ Motor = 0;