control de temperatura por medio de un sensor LM35

Dependencies:   Keypad TextLCD mbed

Fork of control_onoff by Frank Girald

Committer:
Luis_San
Date:
Thu Nov 16 01:03:09 2017 +0000
Revision:
1:b5269aa460c0
Parent:
0:e007beba2811
Control ON / OFF de un bombillo de 60W basado en temperaturas dadas por un LM35

Who changed what in which revision?

UserRevisionLine numberNew 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
Luis_San 1:b5269aa460c0 10 Keypad keypad(PTB11,PTB10,PTB9,PTB8,PTE5,PTE4,PTE3,PTE2); // 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...");
Luis_San 1:b5269aa460c0 32 rs232.printf("SETUP...");
franni 0:e007beba2811 33 wait(1);
franni 0:e007beba2811 34 lcd.cls();
franni 0:e007beba2811 35 while(i<=2){
franni 0:e007beba2811 36 read_kpad();
Luis_San 1:b5269aa460c0 37 wait(0.5);
franni 0:e007beba2811 38 if(key!='\0'){
franni 0:e007beba2811 39 if(i==0){centenas=key-48;lcd.locate(1,1);lcd.printf("%c",key);if(centenas>1){centenas=1;}}
franni 0:e007beba2811 40 if(i==1){decenas=key-48;lcd.locate(2,1);lcd.printf("%c",key);}
franni 0:e007beba2811 41 if(i==2){unidades=key-48;lcd.locate(3,1);lcd.printf("%c",key);}
franni 0:e007beba2811 42 ++i;}
franni 0:e007beba2811 43 }
franni 0:e007beba2811 44 wait(0.25);
franni 0:e007beba2811 45 setpoint=unidades+10.0*decenas+100.0*centenas;
franni 0:e007beba2811 46 lcd.cls();
franni 0:e007beba2811 47 lcd.locate(1,1);
franni 0:e007beba2811 48 lcd.printf("SP: %fdegC ",setpoint);
Luis_San 1:b5269aa460c0 49 rs232.printf("SP: %fdegC ",setpoint);
franni 0:e007beba2811 50 wait(1);
franni 0:e007beba2811 51 lcd.cls();
franni 0:e007beba2811 52 lcd.locate(1,1);
franni 0:e007beba2811 53 lcd.printf("SETUP OK");
Luis_San 1:b5269aa460c0 54 rs232.printf("SETUP OK");
franni 0:e007beba2811 55 wait(1);
franni 0:e007beba2811 56 }
franni 0:e007beba2811 57
franni 0:e007beba2811 58 int main()
franni 0:e007beba2811 59 {
Luis_San 1:b5269aa460c0 60 rs232.baud(115200);
franni 0:e007beba2811 61 rs232.printf("Control ON-OFF \n\r");
franni 0:e007beba2811 62 lcd.printf("Control ON-OFF \r\n");
franni 0:e007beba2811 63 wait(1);
franni 0:e007beba2811 64 lcd.cls();
franni 0:e007beba2811 65
franni 0:e007beba2811 66 while (1) {
Luis_San 1:b5269aa460c0 67 valor_adc=AnalogPin.read()*300;//guardar en entero y mostrar el enetero
franni 0:e007beba2811 68 lcd.locate(1,1);
franni 0:e007beba2811 69 lcd.printf("SP; %fdegC ",setpoint);
franni 0:e007beba2811 70 lcd.locate(1,2);
franni 0:e007beba2811 71 lcd.printf("PV; %fdegC ",valor_adc);
Luis_San 1:b5269aa460c0 72 rs232.printf("%f,%f \r \n",setpoint,valor_adc);
franni 0:e007beba2811 73
franni 0:e007beba2811 74 read_kpad();
franni 0:e007beba2811 75 if(key=='*') {
franni 0:e007beba2811 76 setup_pyrom();
franni 0:e007beba2811 77 }
franni 0:e007beba2811 78
franni 0:e007beba2811 79 if(valor_adc>=setpoint) {
franni 0:e007beba2811 80 pinOut=0;
franni 0:e007beba2811 81 } else {
franni 0:e007beba2811 82 pinOut=1;;
franni 0:e007beba2811 83 }
Luis_San 1:b5269aa460c0 84 wait(0.3);
franni 0:e007beba2811 85
franni 0:e007beba2811 86 }
franni 0:e007beba2811 87 }