EMG check. met knopjes en toetsenboard emg signalen simuleren om de code te testen. groepje 12

Dependencies:   MODSERIAL QEI mbed

Fork of EMG_check by sibren vuurberg

Revision:
14:4b934ac37656
Parent:
12:7903c0e55cd7
Child:
15:706e18b43dd6
--- a/main.cpp	Mon Oct 10 13:38:59 2016 +0000
+++ b/main.cpp	Mon Oct 10 14:31:10 2016 +0000
@@ -5,6 +5,8 @@
 DigitalIn encoder1A(D13); 
 DigitalIn encoder1B(D12);
 DigitalIn button_cw(D11);
+DigitalIn encoder2A(D15);
+DigitalIn encoder2B(D14);
 DigitalIn button_ccw(D9);
 DigitalOut ledcw(D10);
 DigitalOut ledccw(D2);
@@ -13,16 +15,32 @@
 PwmOut pwm_motor1(D5);
 DigitalOut richting_motor2(D7);
 PwmOut pwm_motor2(D6);
+
+
+
 int n = 0; //start van de teller wordt op nul gesteld
  
 void SwitchN() {                        // maakt simpele functie die 1 bij n optelt
     n++;
     }
     
+//constanten voor de encoder
+const int CW = 2.5; //definitie rechtsom 'lage waarde'
+const int CCW =0; //definitie linksom 'hoge waarde'
+const float gearboxratio=131; // gearboxratio van encoder naar motor
+const int rev_rond=32;        // aantal revoluties per omgang van de encoder
+    
  
 int main()
 {
   pc.baud(115200);                      // zorgt voor de link voor putty, 115200 is snelheid
+  QEI Encoder(D12,D13, NC, rev_rond);  // maakt een encoder aan! D12/D13 ingangen, rev_rond zijn aantal pulsen per revolutie! Bovenaan in te stellen. 
+  QEI Encoder2(D15,D14, NC, rev_rond);
+    float counts_encoder1;                  //variabele counts aanmaken
+    float rev_counts_motor1;                   //variabele motor rondjes aanmaken in radialen!!
+    float counts_encoder2;
+    float rev_counts_motor2;
+             
  const float a=1.0;
  const float b=10.0;
  
@@ -41,6 +59,9 @@
            richting_motor1 = 1;
            pwm_motor1 = a; 
            ledcw=1; ledccw=0;
+           counts_encoder1 = Encoder.getPulses(); //tellen van de pulsen in  
+        rev_counts_motor1=counts_encoder1/(gearboxratio*rev_rond);              //berekenen van het aantal rondjes van motor. Gedeeld door gearboxratio en rev rond, om naar motorrondjes te gaan in plaats van pulsen van encoder!
+        pc.printf("motor rondjes omhoog: %f \r\n", rev_counts_motor1);                  //weergeven
           
          } 
          
@@ -52,6 +73,9 @@
            pwm_motor2 = b;
            ledcw=1;
            ledccw=1;
+           counts_encoder2 = Encoder.getPulses(); //tellen van de pulsen in  
+        rev_counts_motor2=counts_encoder2/(gearboxratio*rev_rond);            //weergeven van het aantal rondjes
+        pc.printf("motor rondjes omhoog: %f \r\n", rev_counts_motor2);   
          }      
               
     }
@@ -64,6 +88,9 @@
            richting_motor1 = 0;
            pwm_motor1 = a;
            ledccw=1; ledcw=0;
+           counts_encoder1 = Encoder.getPulses(); //tellen van de pulsen in  
+        rev_counts_motor1=counts_encoder1/(gearboxratio*rev_rond);            //weergeven van het aantal rondjes
+        pc.printf("motor rondjes omhoog: %f \r\n", rev_counts_motor1);   
          
            
          } 
@@ -74,6 +101,9 @@
            richting_motor2 = 0;
            pwm_motor2 = b;
            ledccw=1; ledcw=0;
+           counts_encoder2 = Encoder.getPulses(); //tellen van de pulsen in  
+        rev_counts_motor2=counts_encoder2/(gearboxratio*rev_rond);            //weergeven van het aantal rondjes
+        pc.printf("motor rondjes naar rechts: %f \r\n", rev_counts_motor2);   
         
          }  
     }