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:
12:7903c0e55cd7
Parent:
10:06d0fe6b3bcf
Child:
14:4b934ac37656
--- a/main.cpp	Fri Sep 30 11:45:34 2016 +0000
+++ b/main.cpp	Fri Oct 07 07:52:22 2016 +0000
@@ -1,76 +1,89 @@
-#include "mbed.h"
-//#include "MODSERIAL.h"
- 
-//DigitalOut led(LED_RED);
-//DigitalOut led2(LED_BLUE);
+#include "mbed.h" //standaard bieb mbed
+#include "QEI.h"  //bieb voor encoderfuncties in c++
+#include "MODSERIAL.h" //bieb voor modserial
 InterruptIn sw3(SW3);
-Serial pc(USBTX, USBRX);
-DigitalOut motor1(D4);
+DigitalIn encoder1A(D13); 
+DigitalIn encoder1B(D12);
+DigitalIn button_cw(D11);
+DigitalIn button_ccw(D9);
+DigitalOut ledcw(D10);
+DigitalOut ledccw(D2);
+MODSERIAL pc(USBTX, USBRX);
+DigitalOut richting_motor1(D4);
 PwmOut pwm_motor1(D5);
-DigitalOut motor2(D7);
+DigitalOut richting_motor2(D7);
 PwmOut pwm_motor2(D6);
-int n = 0;
+int n = 0; //start van de teller wordt op nul gesteld
  
 void SwitchN() {                        // maakt simpele functie die 1 bij n optelt
     n++;
     }
+    
  
 int main()
 {
-  pc.baud(115200);                      // zorgt voor de link voor putty
-  
+  pc.baud(115200);                      // zorgt voor de link voor putty, 115200 is snelheid
+ const float a=1.0;
+ const float b=10.0;
+ 
   while (true) {                        // zorgt er voor dat de code oneindig doorgelopen wordt
     
-    sw3.fall(&SwitchN);                  // zorrgt er voor dat void switch wordt gedaan als switch 3 wordt ingedrukt
+    sw3.fall(&SwitchN);                  // zorgt er voor dat void switch wordt gedaan als switch 3 wordt ingedrukt
+    
     
-    char c = pc.getc();                 // zorgt ervoor dat er in het toetsenboard characters gebruikt kunnen worden
-    
-    if (c=='s')                           // als s ingedrukt wordt gebeurd het volgende
+   
+    if (button_cw==0)                           // als s ingedrukt wordt gebeurd het volgende
     {
          if (n%2==0)                     // als s ingedrukt wordt en het getal is even gebeurd het onderstaande
          {
            pc.printf("n is even \n\r"); // print lijn "n is even"
            pc.printf("up \n\r");        // print lijn "up"   
-           motor1 = 1;                  // zegt dat motor 1 clockwise draaid
-           pwm_motor1 = 1;              // zegt dat motor 1 op maximale snelheid draaid
-           wait (0.03);                 // wacht van 0.03 seconde
-           pwm_motor1 = 0;              // zorgt er voor dat de snelheid van motor 1 uitgaat.
+           richting_motor1 = 1;
+           pwm_motor1 = a; 
+           ledcw=1; ledccw=0;
+          
          } 
          
          else                           // als s is ingedrukt maar het getal is niet even (dus oneven) gebeurdt het onderstaande
          {
            pc.printf("n is odd \n\r");  // print lijn "n is odd"
            pc.printf("left \n\r");      // print lijn "left"
-           motor2 = 1;                  // zegt dat motor 2 clockwise draaid
-           pwm_motor2 = 1;              // zorgt er voor dat motor 2 maximale snelheid draaid
-          wait (0.03);                  // wacht van 0.03 seconde
-          pwm_motor2 = 0;               // zorgt er voor dat de snelheid van motor 2 weer 0 wordt
+           richting_motor2 = 1;
+           pwm_motor2 = b;
+           ledcw=1;
+           ledccw=1;
          }      
               
     }
-    else if (c=='d')                     // als d ingedrukt wordt gebeurd het volgende
+    else if (button_ccw==0)                     // als d ingedrukt wordt gebeurd het volgende
     {
          if (n%2==0)                     // als d is ingedrukt en n is even dan gebeurd het volgende
          {
            pc.printf("n is even \n\r"); // print lijn "n is even"
            pc.printf("down \n\r");      // print lijn "down"   
-           motor1 = 0;                  // zorgt er voor dat motor 1 counter clockwise gaat draaien 
-           pwm_motor1 = 1;              // zorgt er voor dat motor 1 maximale snelheid gaat draaien
-           wait (0.03);                 // wacht van 0.03 seconde
-           pwm_motor1 = 0;              // zorgt er voor dat de snelheid van motor 1 nul wordt als de knop wordt losgelaten
+           richting_motor1 = 0;
+           pwm_motor1 = a;
+           ledccw=1; ledcw=0;
+         
+           
          } 
-         
          else                           // als d is ingedrukt maar het getal is niet even (dus oneven) gebeurdt het onderstaande
          {
            pc.printf("n is odd \n\r"); // print lijn "n is odd"
            pc.printf("right \n\r");    // print lijn "right"
-           motor2 = 0;                 // zorgt erg voor dat motor 2 counterclockwise draaid
-           pwm_motor2 = 1;             // zorgt er voor dat motor 2 maximale snelheid draaid
-           wait (0.03);                // wacht van 0.03 seconde
-           pwm_motor2=0;               // zorgt er voor dat de snelheid van motor 2 nul wordt als de knop wordt losgelaten
-         }     
-                     
-    }    
+           richting_motor2 = 0;
+           pwm_motor2 = b;
+           ledccw=1; ledcw=0;
+        
+         }  
+    }   
+    else{
+       pc.printf("motor staat stil \n\r");
+    pwm_motor2=0;
+    pwm_motor1=0;
+    ledccw=0; ;ledcw=0;
+    }              
+      
            
 }
 }