pwm recibe la entrada del pid y varia el ciclo de trabajo y = 2.5x - 1.5 presion dice si esta lleno o que se yo (actualizar valores)

Dependencies:   TextLCD mbed

Fork of PWM by proyectotecnicas

main.cpp

Committer:
josedaparte
Date:
2015-12-10
Revision:
4:f30ca1a8ca5f
Parent:
3:7de9f8f4a15e

File content as of revision 4:f30ca1a8ca5f:

#include "mbed.h"
#include "TextLCD.h"
#include "AnalogIn.h"
PwmOut pwmsal(PTD2);
AnalogIn pident(PTB1);
Serial pc(USBTX,USBRX);
float valorpwm, valorpid;
TextLCD lcd(PTD3, PTA12, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2);
AnalogIn presionin(PTB3);
float caspresion;


int main()
{
    pc.baud(115200);
    pwmsal.period(7);

    while(1) {

        caspresion = presionin.read() * 3.3;
        lcd.cls();
        lcd.locate(0,1);
        lcd.printf("%.2f",caspresion);

        if(caspresion >= 2.34) {
            lcd.locate(0,0);
            lcd.printf("maximo");
        }

        if(caspresion >= 1.68 && caspresion <= 1.85) {
            lcd.locate(0,0);
            lcd.printf("medio");
        }

        if(caspresion <= 1.03) {
            lcd.locate(0,0);
            lcd.printf("minimo");
        }

        valorpid = pident.read();

        if(valorpid >1)
            pwmsal.write(1);
        else if(valorpid <= 1 && valorpid >= 0.6) {
            valorpwm = 2.5 * valorpid - 1.5;
            pwmsal.write(valorpwm);
        } else
            pwmsal.write(0);

        wait(1);
    }
}