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)
Fork of PWM by
main.cpp@4:f30ca1a8ca5f, 2015-12-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |