Using HIDScope for P(I)D controller

Dependencies:   FastPWM HIDScope MODSERIAL QEI biquadFilter mbed

Fork of PES_tutorial_5 by BMT Module 9 Group 4

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  
}