Code om de PID controller af te stellen aan de hand van een sinus golf

Dependencies:   mbed QEI MODSERIAL FastPWM biquadFilter

Revision:
1:58f34947c674
Parent:
0:a9a42914138c
Child:
2:926d56babb1a
--- a/main.cpp	Tue Mar 12 13:40:32 2019 +0000
+++ b/main.cpp	Wed Mar 13 14:01:03 2019 +0000
@@ -1,26 +1,51 @@
 #include "mbed.h"
+DigitalIn button2(SW2);
+DigitalIn button3(SW3);
 DigitalOut direction1(D4);
 PwmOut pwmpin1(D5);
 PwmOut pwmpin2(D6);
 DigitalOut direction2(D7);
+AnalogIn pot(A1);
+Ticker Pot;
 
 DigitalOut led(LED_RED);
-float PWM1 = 0.9f;
-float PWM2;
+volatile float PWM1;
+volatile float PWM2;
 
-void Period(void){
-    pwmpin1.period_us(60);
+void Period(void)
+    {
+    pwmpin2.period_us(60);
     }
+void Potread(void)
+    {     
+    pwmpin2 = pot.read();
+    }  
+void MotorOn(void)
+    {
+    Pot.attach (Potread, 0.1);
+    direction2 = 1;
+    }
+void MotorOff(void)
+    {
+    Pot.detach ();    
+    pwmpin2 = 0;
+    }
+    
+
+       
 int main() {
     Period();
-    led =!led;
-    //direction1 = PWM1 > 0.0f; 
-    //pwmpin1 = fabs(PWM1);
-    PWM2 = 0.6f;
-    direction2 = PWM2 > 0.0f; 
-    pwmpin2 = fabs(PWM2); 
-    //PWM2 = 0.0f;   
-    //wait (0.9f);   
+    while (1){
+    if (!button2)
+    {
+        led = !led;
+        MotorOn();
+    }
+    if (!button3)
+    {
+        MotorOff();
+    }
+    }
     }