Jorn-Jan van de Beld
/
PID_pulses
PID control with use of pulses of encoder
main.cpp@0:cf438428bc75, 2017-10-20 (annotated)
- Committer:
- JornJan
- Date:
- Fri Oct 20 12:37:13 2017 +0000
- Revision:
- 0:cf438428bc75
- Child:
- 1:8c585244c1b0
werkend Kp controller;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JornJan | 0:cf438428bc75 | 1 | #include "mbed.h" |
JornJan | 0:cf438428bc75 | 2 | #include "Serial.h" |
JornJan | 0:cf438428bc75 | 3 | #include "QEI.h" |
JornJan | 0:cf438428bc75 | 4 | #include "math.h" |
JornJan | 0:cf438428bc75 | 5 | |
JornJan | 0:cf438428bc75 | 6 | |
JornJan | 0:cf438428bc75 | 7 | QEI encoder(D13, D12, NC, 32); //encoder instellen |
JornJan | 0:cf438428bc75 | 8 | DigitalOut motor1DirectionPin(D4); //Motorrichting op D4 (connected op het bord) |
JornJan | 0:cf438428bc75 | 9 | PwmOut motor1MagnitudePin(D5); //Motorkracht op D5 (connected op het bord) |
JornJan | 0:cf438428bc75 | 10 | Ticker controller; //toets sample tijd |
JornJan | 0:cf438428bc75 | 11 | |
JornJan | 0:cf438428bc75 | 12 | int pulses; |
JornJan | 0:cf438428bc75 | 13 | int ref = 400; |
JornJan | 0:cf438428bc75 | 14 | int er; |
JornJan | 0:cf438428bc75 | 15 | float Kp=0.0008; |
JornJan | 0:cf438428bc75 | 16 | float P; |
JornJan | 0:cf438428bc75 | 17 | |
JornJan | 0:cf438428bc75 | 18 | void PD() |
JornJan | 0:cf438428bc75 | 19 | { |
JornJan | 0:cf438428bc75 | 20 | pulses=encoder.getPulses(); |
JornJan | 0:cf438428bc75 | 21 | er=ref-pulses; |
JornJan | 0:cf438428bc75 | 22 | P = Kp*er; |
JornJan | 0:cf438428bc75 | 23 | |
JornJan | 0:cf438428bc75 | 24 | if (P<0) |
JornJan | 0:cf438428bc75 | 25 | { |
JornJan | 0:cf438428bc75 | 26 | motor1MagnitudePin = fabs(P); |
JornJan | 0:cf438428bc75 | 27 | motor1DirectionPin = 1; |
JornJan | 0:cf438428bc75 | 28 | } |
JornJan | 0:cf438428bc75 | 29 | else if (P>0) |
JornJan | 0:cf438428bc75 | 30 | { |
JornJan | 0:cf438428bc75 | 31 | motor1MagnitudePin = fabs(P); |
JornJan | 0:cf438428bc75 | 32 | motor1DirectionPin = 0; |
JornJan | 0:cf438428bc75 | 33 | } |
JornJan | 0:cf438428bc75 | 34 | |
JornJan | 0:cf438428bc75 | 35 | } |
JornJan | 0:cf438428bc75 | 36 | |
JornJan | 0:cf438428bc75 | 37 | int main() |
JornJan | 0:cf438428bc75 | 38 | { |
JornJan | 0:cf438428bc75 | 39 | controller.attach_us(&PD, 10000); |
JornJan | 0:cf438428bc75 | 40 | |
JornJan | 0:cf438428bc75 | 41 | while(true) |
JornJan | 0:cf438428bc75 | 42 | { |
JornJan | 0:cf438428bc75 | 43 | } |
JornJan | 0:cf438428bc75 | 44 | |
JornJan | 0:cf438428bc75 | 45 | |
JornJan | 0:cf438428bc75 | 46 | } |