Simon Ford
/
LabVIEW_PID
Simple PID example for LabVIEW
main.cpp@0:e3b759ab4b5c, 2010-08-02 (annotated)
- Committer:
- simon
- Date:
- Mon Aug 02 18:53:02 2010 +0000
- Revision:
- 0:e3b759ab4b5c
- Child:
- 1:ddfe18427154
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:e3b759ab4b5c | 1 | #include "mbed.h" |
simon | 0:e3b759ab4b5c | 2 | #include "QEI.h" |
simon | 0:e3b759ab4b5c | 3 | |
simon | 0:e3b759ab4b5c | 4 | PwmOut MotorA(p21); |
simon | 0:e3b759ab4b5c | 5 | PwmOut MotorB(p22); |
simon | 0:e3b759ab4b5c | 6 | Serial pc(USBTX, USBRX); |
simon | 0:e3b759ab4b5c | 7 | QEI Encoder(p29 ,p30, NC, 48); |
simon | 0:e3b759ab4b5c | 8 | |
simon | 0:e3b759ab4b5c | 9 | |
simon | 0:e3b759ab4b5c | 10 | int main(){ |
simon | 0:e3b759ab4b5c | 11 | float MotorOutput = 0; |
simon | 0:e3b759ab4b5c | 12 | float Percentage = 0; |
simon | 0:e3b759ab4b5c | 13 | float NoPulses; |
simon | 0:e3b759ab4b5c | 14 | |
simon | 0:e3b759ab4b5c | 15 | Encoder.reset(); |
simon | 0:e3b759ab4b5c | 16 | |
simon | 0:e3b759ab4b5c | 17 | while(1) { |
simon | 0:e3b759ab4b5c | 18 | pc.scanf("%f", &MotorOutput); |
simon | 0:e3b759ab4b5c | 19 | NoPulses = Encoder.getPulses(); |
simon | 0:e3b759ab4b5c | 20 | Percentage = (NoPulses / 48) * 100; |
simon | 0:e3b759ab4b5c | 21 | pc.printf("%f\n", Percentage); |
simon | 0:e3b759ab4b5c | 22 | |
simon | 0:e3b759ab4b5c | 23 | if(MotorOutput > 50){ |
simon | 0:e3b759ab4b5c | 24 | MotorA = (MotorOutput - 50) * 2 / 100; |
simon | 0:e3b759ab4b5c | 25 | MotorB = 0; |
simon | 0:e3b759ab4b5c | 26 | }else{ |
simon | 0:e3b759ab4b5c | 27 | MotorA = 0; |
simon | 0:e3b759ab4b5c | 28 | MotorB = (50 - MotorOutput) * 2 / 100; |
simon | 0:e3b759ab4b5c | 29 | } |
simon | 0:e3b759ab4b5c | 30 | wait(0.005); |
simon | 0:e3b759ab4b5c | 31 | } |
simon | 0:e3b759ab4b5c | 32 | } |