Control On-Off Keypad LCD

Dependencies:   Keypad TextLCD mbed

Committer:
franni
Date:
Wed May 03 16:09:35 2017 +0000
Revision:
0:e007beba2811
Control On-Off Keypad LCD

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
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 }