EE192 Team 4 / Mbed 2 deprecated EE192_BetterPID

Dependencies:   PID mbed

main.cpp

Committer:
openg
Date:
2016-03-16
Revision:
1:f2a8a330983b
Parent:
0:f641e7f8973f
Child:
2:486214873b2c

File content as of revision 1:f2a8a330983b:

#include "mbed.h"
#include "PID.h"

float Kp = 30.0;
float Ki = 0.0;
float Kd = 0.0;
float interval = 0.1; //in seconds
float outputPWM = 0.0;

PID controller(Kp, Ki, Kd, interval);
float currentVelocity;
PwmOut motorControl(PTD5);

Ticker executeController;

void control() {
    controller.setProcessValue(currentVelocity);
    outputPWM = controller.compute();
    motorControl.pulsewidth_us(int(1000*outputPWM));
}

int main() {
    controller.setInputLimits(0.0, 6.0); //max input speeds in m/s
    controller.setOutputLimits(0.0, 1.0); //PWM outputs from 0% to 100%
    controller.setSetPoint(3.0); //reference velocity is 3.0 m/s
    controller.setBias(0.0); //no bias for controller to output
    controller.setMode(1); //AUTO mode
    
    motorControl.period_us(1000);
    
    executeController.attach(&control, interval);
        
}