Using HIDScope for P(I)D controller
Dependencies: FastPWM HIDScope MODSERIAL QEI biquadFilter mbed
Fork of PES_tutorial_5 by
main.cpp
- Committer:
- nicollevanrijswijk
- Date:
- 2018-10-15
- Revision:
- 5:a1fb2d2fb2d0
- Parent:
- 4:49c5fd62a192
- Child:
- 6:bd73804c8cec
File content as of revision 5:a1fb2d2fb2d0:
#include "mbed.h" #include "FastPWM.h" // FastPWM library #include "MODSERIAL.h" #include "QEI.h" MODSERIAL pc(USBTX, USBRX); DigitalOut motor1_direction(D7); AnalogIn pot1(A4); InterruptIn but2(D3); FastPWM motor1_pwm(D6); //FastPWM input, PES lecture 2 Ticker MotorInterrupt; pc.baud(115200); void Motor() { // Aflezen Potentiometers voor PWM motor1_pwm = pot1.read(); // Aflezen PotMeter 1 (volatile omdat je altijd de potmeter wil blijven lezen) } void buttonpress() { motor1_direction = 1 - motor1_direction; float motor1_velocity = pot1.read() *2.0; pc.printf("Velocity is %f \r\n", motor1_velocity); } int main() { motor1_pwm.period_us(60.0); // 60 microseconds PWM period, 16.7 kHz, defines all PWM pins (only needs to done once), FastPWM variabele MotorInterrupt.attach(Motor, 0.5); // Ticker die de functie Motor aanroept elke halve seconde, meer tijd is tragere respons op potmeter but2.rise(buttonpress); int counts; QEI Encoder (D12, D13, NC, 64, QEI::X4_ENCODING); counts = Encoder.getPulses(); pc.printf("%i\r\n", counts); while(true){} // Endless loop }