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

Committer:
josedaparte
Date:
Thu Dec 10 13:42:30 2015 +0000
Revision:
4:f30ca1a8ca5f
Parent:
3:7de9f8f4a15e
pwm y presion

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Twistx77 0:647746eea42d 1 #include "mbed.h"
josedaparte 2:be4ea24f1cdd 2 #include "TextLCD.h"
josedaparte 2:be4ea24f1cdd 3 #include "AnalogIn.h"
josedaparte 2:be4ea24f1cdd 4 PwmOut pwmsal(PTD2);
josedaparte 4:f30ca1a8ca5f 5 AnalogIn pident(PTB1);
Twistx77 0:647746eea42d 6 Serial pc(USBTX,USBRX);
josedaparte 4:f30ca1a8ca5f 7 float valorpwm, valorpid;
josedaparte 2:be4ea24f1cdd 8 TextLCD lcd(PTD3, PTA12, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2);
josedaparte 2:be4ea24f1cdd 9 AnalogIn presionin(PTB3);
josedaparte 2:be4ea24f1cdd 10 float caspresion;
Twistx77 0:647746eea42d 11
Twistx77 0:647746eea42d 12
Twistx77 0:647746eea42d 13 int main()
Twistx77 0:647746eea42d 14 {
josedaparte 4:f30ca1a8ca5f 15 pc.baud(115200);
josedaparte 4:f30ca1a8ca5f 16 pwmsal.period(7);
josedaparte 4:f30ca1a8ca5f 17
josedaparte 4:f30ca1a8ca5f 18 while(1) {
josedaparte 4:f30ca1a8ca5f 19
josedaparte 4:f30ca1a8ca5f 20 caspresion = presionin.read() * 3.3;
josedaparte 2:be4ea24f1cdd 21 lcd.cls();
josedaparte 2:be4ea24f1cdd 22 lcd.locate(0,1);
josedaparte 2:be4ea24f1cdd 23 lcd.printf("%.2f",caspresion);
josedaparte 4:f30ca1a8ca5f 24
josedaparte 4:f30ca1a8ca5f 25 if(caspresion >= 2.34) {
josedaparte 2:be4ea24f1cdd 26 lcd.locate(0,0);
josedaparte 2:be4ea24f1cdd 27 lcd.printf("maximo");
josedaparte 4:f30ca1a8ca5f 28 }
josedaparte 4:f30ca1a8ca5f 29
josedaparte 4:f30ca1a8ca5f 30 if(caspresion >= 1.68 && caspresion <= 1.85) {
josedaparte 2:be4ea24f1cdd 31 lcd.locate(0,0);
josedaparte 2:be4ea24f1cdd 32 lcd.printf("medio");
josedaparte 4:f30ca1a8ca5f 33 }
josedaparte 4:f30ca1a8ca5f 34
josedaparte 4:f30ca1a8ca5f 35 if(caspresion <= 1.03) {
josedaparte 2:be4ea24f1cdd 36 lcd.locate(0,0);
josedaparte 2:be4ea24f1cdd 37 lcd.printf("minimo");
josedaparte 4:f30ca1a8ca5f 38 }
josedaparte 4:f30ca1a8ca5f 39
josedaparte 4:f30ca1a8ca5f 40 valorpid = pident.read();
josedaparte 4:f30ca1a8ca5f 41
josedaparte 4:f30ca1a8ca5f 42 if(valorpid >1)
josedaparte 4:f30ca1a8ca5f 43 pwmsal.write(1);
josedaparte 4:f30ca1a8ca5f 44 else if(valorpid <= 1 && valorpid >= 0.6) {
josedaparte 4:f30ca1a8ca5f 45 valorpwm = 2.5 * valorpid - 1.5;
josedaparte 4:f30ca1a8ca5f 46 pwmsal.write(valorpwm);
josedaparte 4:f30ca1a8ca5f 47 } else
josedaparte 4:f30ca1a8ca5f 48 pwmsal.write(0);
josedaparte 4:f30ca1a8ca5f 49
josedaparte 4:f30ca1a8ca5f 50 wait(1);
josedaparte 2:be4ea24f1cdd 51 }
Twistx77 0:647746eea42d 52 }