Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of teclado-menu-lcd-reloj by
Revision 3:ef1eaeaf5c4e, committed 2015-12-01
- Comitter:
- josedaparte
- Date:
- Tue Dec 01 03:40:15 2015 +0000
- Parent:
- 2:a3cc9101e1c3
- Commit message:
- dsa
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Nov 30 23:19:34 2015 +0000 +++ b/main.cpp Tue Dec 01 03:40:15 2015 +0000 @@ -5,6 +5,7 @@ Serial pc(USBTX, USBRX); TextLCD lcd(PTD3, PTA12, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2); +Timer t; DigitalIn key1(PTE31); DigitalIn key2(PTE19); DigitalIn key3(PTE18); @@ -25,12 +26,24 @@ int pdig, sdig, val; int i = 0; int tipobanio = 0; - -int num, B1,B2,B3,B4; +int tempauto=0; +int hora=0, min=0, seg=0; +int B1,B2,B3,B4,num; +int hh1,hh0,mm0,mm1; void menu(); void selec(); - +void imprimehora(){ + lcd.locate(11,1); + if(min < 10 && hora >= 10) + lcd.printf("%2i:0%i", hora, min); + if(hora < 10 && min >= 10) + lcd.printf("0%i:%2i", hora, min); + if(hora < 10 && min < 10) + lcd.printf("0%i:0%i", hora, min); + if(hora >= 10 && min >= 10) + lcd.printf("%i:%i", hora, min); + } void func() { @@ -54,11 +67,100 @@ case 0: pc.printf("case 0"); break; - case 1: - pc.printf("case 1\n\r"); + case 1: //seteo hora + if(i == 0) { //set de primer digito hora + if(num > 2){ + lcd.locate(0,0); + lcd.printf("valor invalido"); + wait(.7); + func(); + } + else{ + hh1 = num; + lcd.cls(); + lcd.printf("%dx:xx",hh1); + lcd.locate(0,1); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); + wait(.7); + i++;}}else //fin de set 1er digito hora ok + if(i == 1){ + pc.printf("aca ingresaria 2 dig hora\n\r"); //inicio 2do digito hora + if(hh1 == 2 && num > 4){ + lcd.locate(0,0); + lcd.printf("valor invalido"); + wait(.7); + func(); + }else{ + hh0 = num; + lcd.cls(); + lcd.printf("%d%d:xx",hh1,hh0); + lcd.locate(0,1); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); + wait(.7); + i++;} + }else //fin 2do digito hora creo ok + if(i == 2){ + pc.printf("aca ingresaria 1 dig seg\n\r"); //inicio 1er digito minuto + if(num > 6){ + lcd.locate(0,0); + lcd.printf("valor invalido"); + wait(.7); + func(); + }else{ + mm1 = num; + lcd.cls(); + lcd.printf("%d%d:%dx",hh1,hh0,mm1); + lcd.locate(0,1); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); + wait(.7); + i++;} + }else //fin 2do digito minuto + if(i == 3){ + pc.printf("aca ingresaria 2 dig seg\n\r"); //inicio 2do digito minuto + if(mm1 == 6){ + mm0 = 0; + }else{ + mm0 = num; + } + lcd.cls(); + lcd.printf("%d%d:%d%d",hh1,hh0,mm1,mm0); + lcd.locate(0,1); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); + i++; + + } //fin 2do digito minuto + if(i == 4) { + hora = (hh1 * 10) + hh0; + min = (mm1 * 10) + mm0; + t.start(); + lcd.locate(0,0); + lcd.printf("reloj "); + lcd.locate(0,1); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); + i = 0;} break; case 2: - pc.printf("case 2\n\r"); + pc.printf("ingreso temperaturas de auto\n\r"); + if(num == 0 || num == 1 || num == 2) { + tempauto = num; + lcd.locate(0,0); + if(num == 0) + lcd.printf("tipo frio "); + else if(num == 1) + lcd.printf("tipo normal "); + else + lcd.printf("tipo caliente"); + wait(1); + lcd.cls(); + lcd.printf("temperatura"); + set = 0; + } else { + lcd.locate(0,0); + lcd.printf("valor invalido"); + wait(1); + lcd.printf("tipo banio"); + lcd.cls(); + } break; case 3: pc.printf("ingreso tipo banio %d\n\r",num); @@ -66,20 +168,20 @@ tipobanio = num; lcd.locate(0,0); if(num == 0) - lcd.printf("banio rapido"); + lcd.printf("banio rapido "); else - lcd.printf("banio normal"); + lcd.printf("banio normal "); wait(1); lcd.cls(); - lcd.printf("tipo banio"); + lcd.printf("tipo banio "); pc.printf("%.1d\n\r", tipobanio); set = 0; } else { lcd.locate(0,0); lcd.printf("valor invalido"); wait(1); - lcd.printf("tipo banio"); lcd.cls(); + lcd.printf("tipo banio "); } break; case 4: @@ -94,6 +196,12 @@ pc.printf("%.1d\n\r", sdig); val = (pdig * 10) + sdig; pc.printf("%.1d\n\r", val); + imprimehora(); + lcd.locate(0,0); + lcd.printf("temperatura a %d",val); + wait(1); + lcd.locate(0,0); + lcd.printf("temperatura "); } i++; if(i == 2) { @@ -106,99 +214,101 @@ tipobanio = num; lcd.locate(0,0); if(num == 0) - lcd.printf("banio rapido"); + lcd.printf("banio rapido "); else - lcd.printf("banio normal"); + lcd.printf("banio normal "); wait(1); lcd.cls(); - lcd.printf("tipo banio"); + lcd.printf("tipo banio "); pc.printf("%.1d\n\r", tipobanio); set = 0; } else { lcd.locate(0,0); lcd.printf("valor invalido"); wait(1); - lcd.printf("tipo banio"); lcd.cls(); + lcd.printf("tipo banio "); } break; } pc.printf("salgo case\n\r"); + pc.printf("%d",i); } } void menu () { lcd.cls(); + imprimehora(); switch (sel) { case 1: lcd.locate(0,0); lcd.printf("auto"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 2; break; case 2: lcd.locate(0,0); lcd.printf("manual"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 3; break; case 3: lcd.locate(0,0); lcd.printf("reloj"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 1; break; case 4: lcd.locate(0,0); lcd.printf("temperatura"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 5; break; case 5: lcd.locate(0,0); - lcd.printf("tipo banio"); + lcd.printf("tipo banio "); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 6; break; case 6: lcd.locate(0,0); lcd.printf("horarios"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 9; break; case 7: lcd.locate(0,0); lcd.printf("temperatura"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 8; break; case 8: lcd.locate(0,0); - lcd.printf("tipo banio"); + lcd.printf("tipo banio "); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 10; break; case 9: lcd.locate(0,0); lcd.printf("salir"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 4; break; case 10: lcd.locate(0,0); lcd.printf("salir"); lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); sel = 7; break; } @@ -221,14 +331,16 @@ case 1: pc.printf("aca ingresaria la hora\r\n"); set = 1; - wait(3); break; case 5: pc.printf("aca ingresaria la temperatura\r\n"); + lcd.locate(0,0); + lcd.printf(" 0_F 1_N 2_C"); set = 2; break; case 6: pc.printf("aca ingresaria el tipo de banio\r\n"); + lcd.locate(0,0); lcd.printf(" 0_rap 1_norm"); set = 3; break; @@ -238,6 +350,8 @@ break; case 8: pc.printf("aca ingresaria la temperatura2\r\n"); + lcd.locate(0,0); + lcd.printf("ingrese temperat"); set = 5; break; case 7: @@ -250,6 +364,7 @@ break; case 10: pc.printf("aca ingresaria tipo banio\r\n"); + lcd.locate(0,0); lcd.printf(" 0_rap 1_norm"); set = 6; break; @@ -260,12 +375,30 @@ int main() { - + t.start(); pc.baud(115200); Enable.rise(&func); int comp; while(1) { +//reloj + seg = t.read(); + if(seg == 60) + { + seg=0; + t.reset(); + min++; + } + if(min==60) + { + min=0; + hora++; + } + if(hora==24) + { + hora=0;} + imprimehora(); + //convierte voltaje a temperatura casexterno = externo.read() * 3.3; texterno = (casexterno + 0.2) * 100 / 5; @@ -273,7 +406,7 @@ tinterno = (casinterno + 2) * 100 / 8; lcd.locate(0,1); - lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo); + lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo); comp = tinterno; if(comp == temp) pc.printf("las temperaturas son iguales\n\r");