Simple PID example for LabVIEW

Dependencies:   mbed

Committer:
simon
Date:
Mon Aug 02 18:53:02 2010 +0000
Revision:
0:e3b759ab4b5c
Child:
1:ddfe18427154

        

Who changed what in which revision?

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