Calibratie motor, demo, (EMG calibratie en movement werkt niet)

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL Encoder FastPWM

Revision:
4:7d0df890e801
Parent:
3:16df793da2be
Child:
5:810892d669f9
--- a/main.cpp	Wed Oct 30 15:42:23 2019 +0000
+++ b/main.cpp	Wed Oct 30 16:07:58 2019 +0000
@@ -9,8 +9,8 @@
 
 InterruptIn but1(D1);
 InterruptIn but2(D0);
-DigitalIn butsw2(SW2);
-DigitalIn butsw3(SW3);
+DigitalIn butsw2(SW3);
+DigitalIn butsw3(SW2);
 AnalogIn potMeter1(A2);
 AnalogIn potMeter2(A1);
 
@@ -27,8 +27,8 @@
 States state;
 
 // ENCODER .....................................................................
-Encoder enc1 (D13, D12, true); //encoder 1 gebruiken
-Encoder enc2 (D9,  D8,  true); //encoder 2 gebruiken 
+QEI enc1 (D13, D12, NC, 4200); //encoder 1 gebruiken
+QEI enc2 (D9,  D8,  NC, 4200); //encoder 2 gebruiken 
         
 float dt = 0.001;
 double e_int = 0;
@@ -78,12 +78,12 @@
     }
     if (but1_pressed) {
         pc.printf("Encoder has been calibrated \r\n");
-        enc1_value = enc1.getPosition();
-        enc2_value = enc2.getPosition();
+        enc1_value = enc1.getPulses();
+        enc2_value = enc2.getPulses();
     //enc1_value -= enc1_zero;
     //enc2_value -= enc2_zero;
-        theta1 = (float)(enc1_value)/(float)(8400)*2*PI;
-        theta2 = (float)(enc2_value)/(float)(8400)*2*PI;
+        theta1 = (float)(enc1_value)/(float)(4200)*2*PI;
+        theta2 = (float)(enc2_value)/(float)(4200)*2*PI;
         enc1_zero = enc1_value;
         enc2_zero = enc2_value;
         but1_pressed = false;
@@ -109,17 +109,17 @@
 double GetReferencePosition() 
 {
     double Potmeterwaarde = potMeter2.read(); //naam moet universeel worden
-    int maxwaarde = 400;                   // = 64x64
+    int maxwaarde = 400;                   // 
     double refP = Potmeterwaarde*maxwaarde;
-    return refP;                            // value between 0 and 4096 
+    return refP;                            //  
 }
  
 double GetReferencePosition2() 
 {
     double potmeterwaarde2 = potMeter1.read();
-    int maxwaarde2 = 400;                   // = 64x64
+    int maxwaarde2 = 400;                   // 
     double refP2 = potmeterwaarde2*maxwaarde2;
-    return refP2;                            // value between 0 and 4096 
+    return refP2;                            // 
 }
    
 double FeedBackControl(double error, double &e_int)   // schaalt de snelheid naar de snelheid zodat onze chip het begrijpt (is nog niet in werking)
@@ -167,13 +167,13 @@
     //RKI();
     // hier the control of the 1st control system
     refP = GetReferencePosition();                    //moet nog met RKI
-    Huidigepositie1 = enc1.getPosition(); 
+    Huidigepositie1 = enc1.getPulses(); 
     error1 = (refP - Huidigepositie1);// make an error
     motorValue1 = FeedBackControl(error1, e_int);
     SetMotor1(motorValue1);
     // hier the control of the 2nd control system
     refP2 = GetReferencePosition2(); 
-    Huidigepositie2 = enc2.getPosition(); 
+    Huidigepositie2 = enc2.getPulses(); 
     error2 = (refP2 - Huidigepositie2);// make an error
     motorValue2 = FeedBackControl2(error2, e_int2);
     SetMotor2(motorValue2);
@@ -209,9 +209,9 @@
 
 /*void measure_signals()
 {
-    enc1_value = enc1.getPosition();
-    enc2_value = enc2.getPosition();
-    //enc1_value -= enc1_zero;
+    enc1_value = enc1.getPulses();
+    enc2_value = enc2.getPulses();
+    enc1_value -= enc1_zero;
     //enc2_value -= enc2_zero;
     theta1 = (float)(enc1_value)/(float)(8400)*2*PI;
     theta2 = (float)(enc2_value)/(float)(8400)*2*PI;