control de temperatura por medio de un sensor LM35
Dependencies: Keypad TextLCD mbed
Fork of control_onoff by
main.cpp@0:e007beba2811, 2017-05-03 (annotated)
- Committer:
- franni
- Date:
- Wed May 03 16:09:35 2017 +0000
- Revision:
- 0:e007beba2811
- Child:
- 1:b5269aa460c0
Control On-Off Keypad LCD
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
franni | 0:e007beba2811 | 1 | #include "mbed.h" |
franni | 0:e007beba2811 | 2 | #include "TextLCD.h" |
franni | 0:e007beba2811 | 3 | #include "Keypad.h" |
franni | 0:e007beba2811 | 4 | |
franni | 0:e007beba2811 | 5 | Serial rs232(USBTX, USBRX); |
franni | 0:e007beba2811 | 6 | AnalogIn AnalogPin(PTB0); |
franni | 0:e007beba2811 | 7 | DigitalOut pinOut(PTB1); |
franni | 0:e007beba2811 | 8 | |
franni | 0:e007beba2811 | 9 | TextLCD lcd(PTE20,PTE21,PTE22,PTE23,PTE29,PTE30, TextLCD::LCD16x2); // Rs, E, d4, d5, d6, d7, RW=GND |
franni | 0:e007beba2811 | 10 | Keypad keypad(PTC4,PTC3,PTC0,PTC7,PTC11,PTC10,PTC6,PTC5); // c1, c2, c3, c4, f1, f2, f3, f4 |
franni | 0:e007beba2811 | 11 | |
franni | 0:e007beba2811 | 12 | char key; |
franni | 0:e007beba2811 | 13 | int released=1,unidades,decenas,centenas; |
franni | 0:e007beba2811 | 14 | float setpoint,valor_adc; |
franni | 0:e007beba2811 | 15 | |
franni | 0:e007beba2811 | 16 | void read_kpad() |
franni | 0:e007beba2811 | 17 | { |
franni | 0:e007beba2811 | 18 | key=keypad.ReadKey(); |
franni | 0:e007beba2811 | 19 | if(key=='\0') released=1; |
franni | 0:e007beba2811 | 20 | if((key!='\0') && (released==1)) { |
franni | 0:e007beba2811 | 21 | released=0; |
franni | 0:e007beba2811 | 22 | } |
franni | 0:e007beba2811 | 23 | |
franni | 0:e007beba2811 | 24 | } |
franni | 0:e007beba2811 | 25 | |
franni | 0:e007beba2811 | 26 | void setup_pyrom() |
franni | 0:e007beba2811 | 27 | { |
franni | 0:e007beba2811 | 28 | int i=0; |
franni | 0:e007beba2811 | 29 | lcd.cls(); |
franni | 0:e007beba2811 | 30 | lcd.locate(1,1); |
franni | 0:e007beba2811 | 31 | lcd.printf("SETUP..."); |
franni | 0:e007beba2811 | 32 | wait(1); |
franni | 0:e007beba2811 | 33 | lcd.cls(); |
franni | 0:e007beba2811 | 34 | while(i<=2){ |
franni | 0:e007beba2811 | 35 | read_kpad(); |
franni | 0:e007beba2811 | 36 | if(key!='\0'){ |
franni | 0:e007beba2811 | 37 | if(i==0){centenas=key-48;lcd.locate(1,1);lcd.printf("%c",key);if(centenas>1){centenas=1;}} |
franni | 0:e007beba2811 | 38 | if(i==1){decenas=key-48;lcd.locate(2,1);lcd.printf("%c",key);} |
franni | 0:e007beba2811 | 39 | if(i==2){unidades=key-48;lcd.locate(3,1);lcd.printf("%c",key);} |
franni | 0:e007beba2811 | 40 | ++i;} |
franni | 0:e007beba2811 | 41 | } |
franni | 0:e007beba2811 | 42 | wait(0.25); |
franni | 0:e007beba2811 | 43 | setpoint=unidades+10.0*decenas+100.0*centenas; |
franni | 0:e007beba2811 | 44 | lcd.cls(); |
franni | 0:e007beba2811 | 45 | lcd.locate(1,1); |
franni | 0:e007beba2811 | 46 | lcd.printf("SP: %fdegC ",setpoint); |
franni | 0:e007beba2811 | 47 | wait(1); |
franni | 0:e007beba2811 | 48 | lcd.cls(); |
franni | 0:e007beba2811 | 49 | lcd.locate(1,1); |
franni | 0:e007beba2811 | 50 | lcd.printf("SETUP OK"); |
franni | 0:e007beba2811 | 51 | wait(1); |
franni | 0:e007beba2811 | 52 | } |
franni | 0:e007beba2811 | 53 | |
franni | 0:e007beba2811 | 54 | |
franni | 0:e007beba2811 | 55 | |
franni | 0:e007beba2811 | 56 | |
franni | 0:e007beba2811 | 57 | int main() |
franni | 0:e007beba2811 | 58 | { |
franni | 0:e007beba2811 | 59 | |
franni | 0:e007beba2811 | 60 | rs232.printf("Control ON-OFF \n\r"); |
franni | 0:e007beba2811 | 61 | lcd.printf("Control ON-OFF \r\n"); |
franni | 0:e007beba2811 | 62 | wait(1); |
franni | 0:e007beba2811 | 63 | lcd.cls(); |
franni | 0:e007beba2811 | 64 | |
franni | 0:e007beba2811 | 65 | while (1) { |
franni | 0:e007beba2811 | 66 | valor_adc=AnalogPin.read()*5; |
franni | 0:e007beba2811 | 67 | lcd.locate(1,1); |
franni | 0:e007beba2811 | 68 | lcd.printf("SP; %fdegC ",setpoint); |
franni | 0:e007beba2811 | 69 | lcd.locate(1,2); |
franni | 0:e007beba2811 | 70 | lcd.printf("PV; %fdegC ",valor_adc); |
franni | 0:e007beba2811 | 71 | rs232.printf("%f,%f",setpoint,valor_adc); |
franni | 0:e007beba2811 | 72 | |
franni | 0:e007beba2811 | 73 | read_kpad(); |
franni | 0:e007beba2811 | 74 | if(key=='*') { |
franni | 0:e007beba2811 | 75 | setup_pyrom(); |
franni | 0:e007beba2811 | 76 | } |
franni | 0:e007beba2811 | 77 | |
franni | 0:e007beba2811 | 78 | if(valor_adc>=setpoint) { |
franni | 0:e007beba2811 | 79 | pinOut=0; |
franni | 0:e007beba2811 | 80 | } else { |
franni | 0:e007beba2811 | 81 | pinOut=1;; |
franni | 0:e007beba2811 | 82 | } |
franni | 0:e007beba2811 | 83 | |
franni | 0:e007beba2811 | 84 | |
franni | 0:e007beba2811 | 85 | } |
franni | 0:e007beba2811 | 86 | } |