PID control with use of pulses of encoder

Dependencies:   QEI mbed

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?

UserRevisionLine numberNew 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 }