PID, tarea 3, procesadores

Dependencies:   Debounced TextLCD mbed

main.cpp

Committer:
mandres7
Date:
2013-11-10
Revision:
0:6ef000c1b903
Child:
1:80f82aa3d0ec

File content as of revision 0:6ef000c1b903:

#include "mbed.h"
#include "TextLCD.h"
#include "DebouncedIn.h"
 

TextLCD lcd(PTC10, PTC11, PTC12, PTC13, PTC16, PTC17); // rs, e, d4-d7TextLCD lcd(PTC10, PTC11, PTC12, PTC13, PTC16, PTC17); // rs, e, d4-d7
DigitalOut myled(LED1);
AnalogOut Aout(PTE30);
AnalogIn Ain(PTC2);
DebouncedIn up(PTE3);
DebouncedIn down(PTE4);
DebouncedIn Gain(PTE2);
int ap,n,ai,ad; 

float i=0.7; // set point
float j=0; // salida planta
float h=0; // entrada planta
float m=0; // Error
float mv=0;
float g=0;
float x=0;
int kp=3;
int ki=15;
int kd=1;


int main(){ 

//float Setpoint=0.6;

    while(1) {

        wait(0.3);
              
        if(i<0.999){
       
        j=Ain;
        m=(i-j);
        //n=m*100;
        ap=kp*m;
        ai=(ki*m)+ai;
        
        if (ai>999){
        ai=998;
                   }
        
        ad=kd*(m-mv);
        h=ap+ai+ad;
        x=h/100;
        g=(h*3.3/100);
        
        if (h<0){
            h=0;
                }
                

                        
        Aout=g;
        wait(0.22);
 
        
        lcd.cls();
        lcd.printf("Er:%.3f",m);
        lcd.locate(8,0);
        lcd.printf("Me:%.3f",j);
        lcd.locate(0,1);
        lcd.printf("Sp:%.2f",i);
        lcd.locate(8,1);
        lcd.printf("Co:%.3f",x);
        }


        mv=m;
    }
    
}