Code om de PID controller af te stellen aan de hand van een sinus golf
Dependencies: mbed QEI MODSERIAL FastPWM biquadFilter
Diff: main.cpp
- 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(); + } + } }