Versão 2022

Dependencies:   QEI USBDevice mbed

Revision:
2:70151b51aba8
Parent:
1:8ae261460176
Child:
3:0a6596c337e8
--- 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;