menu-teclado-lcd-sensores de temperatura (y el puerto serie tambien)

Dependencies:   TextLCD mbed

Fork of programa principal by proyectotecnicas

Committer:
josedaparte
Date:
Tue Dec 01 15:56:26 2015 +0000
Revision:
4:96c3f113f0b0
Parent:
3:ef1eaeaf5c4e
programa principal

Who changed what in which revision?

UserRevisionLine numberNew contents of line
josedaparte 0:1334d6f26f42 1 #include "mbed.h"
josedaparte 0:1334d6f26f42 2 #include "TextLCD.h"
josedaparte 0:1334d6f26f42 3 #include "AnalogIn.h"
josedaparte 0:1334d6f26f42 4
josedaparte 0:1334d6f26f42 5 Serial pc(USBTX, USBRX);
josedaparte 0:1334d6f26f42 6 TextLCD lcd(PTD3, PTA12, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD16x2);
josedaparte 0:1334d6f26f42 7
josedaparte 3:ef1eaeaf5c4e 8 Timer t;
josedaparte 0:1334d6f26f42 9 DigitalIn key1(PTE31);
josedaparte 0:1334d6f26f42 10 DigitalIn key2(PTE19);
josedaparte 0:1334d6f26f42 11 DigitalIn key3(PTE18);
josedaparte 0:1334d6f26f42 12 DigitalIn key4(PTE17);
josedaparte 1:9ab0f526b7a7 13 InterruptIn Enable(PTA13);
josedaparte 0:1334d6f26f42 14 AnalogIn externo(PTC2);
josedaparte 0:1334d6f26f42 15 AnalogIn interno(PTB3);
josedaparte 0:1334d6f26f42 16
josedaparte 0:1334d6f26f42 17 int temp = 26;
josedaparte 0:1334d6f26f42 18 char tipo;
josedaparte 0:1334d6f26f42 19 int sel = 1;
josedaparte 0:1334d6f26f42 20 float casinterno;
josedaparte 0:1334d6f26f42 21 float casexterno;
josedaparte 0:1334d6f26f42 22 float tinterno;
josedaparte 0:1334d6f26f42 23 float texterno;
josedaparte 2:a3cc9101e1c3 24 char modo = 'M';
josedaparte 2:a3cc9101e1c3 25 int set = 0;
josedaparte 2:a3cc9101e1c3 26 int pdig, sdig, val;
josedaparte 2:a3cc9101e1c3 27 int i = 0;
josedaparte 2:a3cc9101e1c3 28 int tipobanio = 0;
josedaparte 3:ef1eaeaf5c4e 29 int tempauto=0;
josedaparte 4:96c3f113f0b0 30 int hora=0, min=0, seg=0, horain = 8, minin = 0, horafin = 22, minfin = 0, j = 0;
josedaparte 3:ef1eaeaf5c4e 31 int B1,B2,B3,B4,num;
josedaparte 3:ef1eaeaf5c4e 32 int hh1,hh0,mm0,mm1;
josedaparte 0:1334d6f26f42 33
josedaparte 0:1334d6f26f42 34 void menu();
josedaparte 0:1334d6f26f42 35 void selec();
josedaparte 4:96c3f113f0b0 36 void func();
josedaparte 4:96c3f113f0b0 37
josedaparte 4:96c3f113f0b0 38 void sethora(){
josedaparte 4:96c3f113f0b0 39 if(i == 0) { //set de primer digito hora
josedaparte 4:96c3f113f0b0 40 if(num > 2){
josedaparte 4:96c3f113f0b0 41 lcd.locate(0,0);
josedaparte 4:96c3f113f0b0 42 lcd.printf("valor invalido");
josedaparte 4:96c3f113f0b0 43 wait(.7);
josedaparte 4:96c3f113f0b0 44 func();
josedaparte 4:96c3f113f0b0 45 }
josedaparte 4:96c3f113f0b0 46 else{
josedaparte 4:96c3f113f0b0 47 hh1 = num;
josedaparte 4:96c3f113f0b0 48 lcd.cls();
josedaparte 4:96c3f113f0b0 49 lcd.printf("%dx:xx",hh1);
josedaparte 4:96c3f113f0b0 50 lcd.locate(0,1);
josedaparte 4:96c3f113f0b0 51 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 4:96c3f113f0b0 52 wait(.7);
josedaparte 4:96c3f113f0b0 53 i++;}}else //fin de set 1er digito hora ok
josedaparte 4:96c3f113f0b0 54 if(i == 1){
josedaparte 4:96c3f113f0b0 55 pc.printf("aca ingresaria 2 dig hora\n\r"); //inicio 2do digito hora
josedaparte 4:96c3f113f0b0 56 if(hh1 == 2 && num > 4){
josedaparte 4:96c3f113f0b0 57 lcd.locate(0,0);
josedaparte 4:96c3f113f0b0 58 lcd.printf("valor invalido");
josedaparte 4:96c3f113f0b0 59 wait(.7);
josedaparte 4:96c3f113f0b0 60 func();
josedaparte 4:96c3f113f0b0 61 }else{
josedaparte 4:96c3f113f0b0 62 hh0 = num;
josedaparte 4:96c3f113f0b0 63 lcd.cls();
josedaparte 4:96c3f113f0b0 64 lcd.printf("%d%d:xx",hh1,hh0);
josedaparte 4:96c3f113f0b0 65 lcd.locate(0,1);
josedaparte 4:96c3f113f0b0 66 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 4:96c3f113f0b0 67 wait(.7);
josedaparte 4:96c3f113f0b0 68 i++;}
josedaparte 4:96c3f113f0b0 69 }else //fin 2do digito hora
josedaparte 4:96c3f113f0b0 70 if(i == 2){
josedaparte 4:96c3f113f0b0 71 pc.printf("aca ingresaria 1 dig seg\n\r"); //inicio 1er digito minuto
josedaparte 4:96c3f113f0b0 72 if(num > 6){
josedaparte 4:96c3f113f0b0 73 lcd.locate(0,0);
josedaparte 4:96c3f113f0b0 74 lcd.printf("valor invalido");
josedaparte 4:96c3f113f0b0 75 wait(.7);
josedaparte 4:96c3f113f0b0 76 func();
josedaparte 4:96c3f113f0b0 77 }else{
josedaparte 4:96c3f113f0b0 78 mm1 = num;
josedaparte 4:96c3f113f0b0 79 lcd.cls();
josedaparte 4:96c3f113f0b0 80 lcd.printf("%d%d:%dx",hh1,hh0,mm1);
josedaparte 4:96c3f113f0b0 81 lcd.locate(0,1);
josedaparte 4:96c3f113f0b0 82 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 4:96c3f113f0b0 83 wait(.7);
josedaparte 4:96c3f113f0b0 84 i++;}
josedaparte 4:96c3f113f0b0 85 }else //fin 2do digito minuto
josedaparte 4:96c3f113f0b0 86 if(i == 3){
josedaparte 4:96c3f113f0b0 87 pc.printf("aca ingresaria 2 dig seg\n\r"); //inicio 2do digito minuto
josedaparte 4:96c3f113f0b0 88 if(mm1 == 6){
josedaparte 4:96c3f113f0b0 89 mm0 = 0;
josedaparte 4:96c3f113f0b0 90 }else{
josedaparte 4:96c3f113f0b0 91 mm0 = num;
josedaparte 4:96c3f113f0b0 92 }
josedaparte 4:96c3f113f0b0 93 lcd.cls();
josedaparte 4:96c3f113f0b0 94 lcd.printf("%d%d:%d%d",hh1,hh0,mm1,mm0);
josedaparte 4:96c3f113f0b0 95 lcd.locate(0,1);
josedaparte 4:96c3f113f0b0 96 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 4:96c3f113f0b0 97 i++;
josedaparte 4:96c3f113f0b0 98
josedaparte 4:96c3f113f0b0 99 } //fin 2do digito minuto
josedaparte 4:96c3f113f0b0 100 }
josedaparte 3:ef1eaeaf5c4e 101 void imprimehora(){
josedaparte 3:ef1eaeaf5c4e 102 lcd.locate(11,1);
josedaparte 3:ef1eaeaf5c4e 103 if(min < 10 && hora >= 10)
josedaparte 3:ef1eaeaf5c4e 104 lcd.printf("%2i:0%i", hora, min);
josedaparte 3:ef1eaeaf5c4e 105 if(hora < 10 && min >= 10)
josedaparte 3:ef1eaeaf5c4e 106 lcd.printf("0%i:%2i", hora, min);
josedaparte 3:ef1eaeaf5c4e 107 if(hora < 10 && min < 10)
josedaparte 3:ef1eaeaf5c4e 108 lcd.printf("0%i:0%i", hora, min);
josedaparte 3:ef1eaeaf5c4e 109 if(hora >= 10 && min >= 10)
josedaparte 3:ef1eaeaf5c4e 110 lcd.printf("%i:%i", hora, min);
josedaparte 3:ef1eaeaf5c4e 111 }
josedaparte 0:1334d6f26f42 112
josedaparte 0:1334d6f26f42 113 void func()
josedaparte 0:1334d6f26f42 114 {
josedaparte 0:1334d6f26f42 115 B1 = key1.read();
josedaparte 0:1334d6f26f42 116 B2 = key2.read();
josedaparte 0:1334d6f26f42 117 B3 = key3.read();
josedaparte 0:1334d6f26f42 118 B4 = key4.read();
josedaparte 2:a3cc9101e1c3 119
josedaparte 0:1334d6f26f42 120 num = 2*2*2*B1 + 2*2*B2 + 2*B3 + B4;
josedaparte 2:a3cc9101e1c3 121 pc.printf("llama a func\n\r");
josedaparte 2:a3cc9101e1c3 122 if(num == 10) {
josedaparte 2:a3cc9101e1c3 123 set = 0;
josedaparte 0:1334d6f26f42 124 menu();
josedaparte 2:a3cc9101e1c3 125 } else if(num == 11) {
josedaparte 2:a3cc9101e1c3 126 set = 0;
josedaparte 2:a3cc9101e1c3 127 selec();
josedaparte 2:a3cc9101e1c3 128 } else if(num != 10 && num != 11) {
josedaparte 0:1334d6f26f42 129
josedaparte 2:a3cc9101e1c3 130 pc.printf("antes del case\n\r");
josedaparte 2:a3cc9101e1c3 131 switch(set) {
josedaparte 2:a3cc9101e1c3 132 case 0:
josedaparte 2:a3cc9101e1c3 133 pc.printf("case 0");
josedaparte 2:a3cc9101e1c3 134 break;
josedaparte 3:ef1eaeaf5c4e 135 case 1: //seteo hora
josedaparte 4:96c3f113f0b0 136 sethora();
josedaparte 4:96c3f113f0b0 137 if(i == 4) { //pasa la hora al reloj
josedaparte 3:ef1eaeaf5c4e 138 hora = (hh1 * 10) + hh0;
josedaparte 3:ef1eaeaf5c4e 139 min = (mm1 * 10) + mm0;
josedaparte 4:96c3f113f0b0 140 hh0 = hh1 = mm1 = mm0 = 0;
josedaparte 3:ef1eaeaf5c4e 141 t.start();
josedaparte 3:ef1eaeaf5c4e 142 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 143 lcd.printf("reloj ");
josedaparte 3:ef1eaeaf5c4e 144 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 145 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 3:ef1eaeaf5c4e 146 i = 0;}
josedaparte 4:96c3f113f0b0 147 break; //fin pasa hora al reloj
josedaparte 2:a3cc9101e1c3 148 case 2:
josedaparte 4:96c3f113f0b0 149 pc.printf("ingreso temperaturas de auto\n\r"); //set temperaturas auto
josedaparte 3:ef1eaeaf5c4e 150 if(num == 0 || num == 1 || num == 2) {
josedaparte 3:ef1eaeaf5c4e 151 tempauto = num;
josedaparte 3:ef1eaeaf5c4e 152 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 153 if(num == 0)
josedaparte 3:ef1eaeaf5c4e 154 lcd.printf("tipo frio ");
josedaparte 3:ef1eaeaf5c4e 155 else if(num == 1)
josedaparte 3:ef1eaeaf5c4e 156 lcd.printf("tipo normal ");
josedaparte 3:ef1eaeaf5c4e 157 else
josedaparte 3:ef1eaeaf5c4e 158 lcd.printf("tipo caliente");
josedaparte 3:ef1eaeaf5c4e 159 wait(1);
josedaparte 3:ef1eaeaf5c4e 160 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 161 lcd.printf("temperatura");
josedaparte 3:ef1eaeaf5c4e 162 set = 0;
josedaparte 3:ef1eaeaf5c4e 163 } else {
josedaparte 3:ef1eaeaf5c4e 164 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 165 lcd.printf("valor invalido");
josedaparte 3:ef1eaeaf5c4e 166 wait(1);
josedaparte 3:ef1eaeaf5c4e 167 lcd.printf("tipo banio");
josedaparte 3:ef1eaeaf5c4e 168 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 169 }
josedaparte 2:a3cc9101e1c3 170 break;
josedaparte 4:96c3f113f0b0 171 case 3: //tipo de baño
josedaparte 2:a3cc9101e1c3 172 pc.printf("ingreso tipo banio %d\n\r",num);
josedaparte 2:a3cc9101e1c3 173 if(num == 0 || num == 1) {
josedaparte 2:a3cc9101e1c3 174 tipobanio = num;
josedaparte 2:a3cc9101e1c3 175 lcd.locate(0,0);
josedaparte 2:a3cc9101e1c3 176 if(num == 0)
josedaparte 3:ef1eaeaf5c4e 177 lcd.printf("banio rapido ");
josedaparte 2:a3cc9101e1c3 178 else
josedaparte 3:ef1eaeaf5c4e 179 lcd.printf("banio normal ");
josedaparte 2:a3cc9101e1c3 180 wait(1);
josedaparte 2:a3cc9101e1c3 181 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 182 lcd.printf("tipo banio ");
josedaparte 2:a3cc9101e1c3 183 pc.printf("%.1d\n\r", tipobanio);
josedaparte 2:a3cc9101e1c3 184 set = 0;
josedaparte 2:a3cc9101e1c3 185 } else {
josedaparte 2:a3cc9101e1c3 186 lcd.locate(0,0);
josedaparte 2:a3cc9101e1c3 187 lcd.printf("valor invalido");
josedaparte 2:a3cc9101e1c3 188 wait(1);
josedaparte 2:a3cc9101e1c3 189 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 190 lcd.printf("tipo banio ");
josedaparte 2:a3cc9101e1c3 191 }
josedaparte 2:a3cc9101e1c3 192 break;
josedaparte 4:96c3f113f0b0 193 case 4: //set de horarios
josedaparte 2:a3cc9101e1c3 194 pc.printf("case 4\n\r");
josedaparte 4:96c3f113f0b0 195 sethora();
josedaparte 4:96c3f113f0b0 196 if(i == 4 && j == 0) { //pasa la hora al reloj
josedaparte 4:96c3f113f0b0 197 horain = (hh1 * 10) + hh0;
josedaparte 4:96c3f113f0b0 198 minin = (mm1 * 10) + mm0;
josedaparte 4:96c3f113f0b0 199 hh0 = hh1 = mm1 = mm0 = 0;
josedaparte 4:96c3f113f0b0 200 lcd.locate(0,0);
josedaparte 4:96c3f113f0b0 201 lcd.printf("horario ");
josedaparte 4:96c3f113f0b0 202 lcd.locate(0,1);
josedaparte 4:96c3f113f0b0 203 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 4:96c3f113f0b0 204 pc.printf("hora de inicio %d:%d\n\r",horain,minin);
josedaparte 4:96c3f113f0b0 205 pc.printf("hora de fin %d:%d\n\r",horafin,minfin);
josedaparte 4:96c3f113f0b0 206 i = 0;
josedaparte 4:96c3f113f0b0 207 j = 1;}
josedaparte 4:96c3f113f0b0 208 if(i == 4 && j == 1) { //pasa la hora al reloj
josedaparte 4:96c3f113f0b0 209 horafin = (hh1 * 10) + hh0;
josedaparte 4:96c3f113f0b0 210 minfin = (mm1 * 10) + mm0;
josedaparte 4:96c3f113f0b0 211 hh0 = hh1 = mm1 = mm0 = 0;
josedaparte 4:96c3f113f0b0 212 lcd.locate(0,0);
josedaparte 4:96c3f113f0b0 213 lcd.printf("horario ");
josedaparte 4:96c3f113f0b0 214 lcd.locate(0,1);
josedaparte 4:96c3f113f0b0 215 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 4:96c3f113f0b0 216 pc.printf("hora de inicio %d:%d\n\r",horain,minin);
josedaparte 4:96c3f113f0b0 217 pc.printf("hora de fin %d:%d\n\r",horafin,minfin);
josedaparte 4:96c3f113f0b0 218 i = 0;
josedaparte 4:96c3f113f0b0 219 j = 0;}
josedaparte 2:a3cc9101e1c3 220 break;
josedaparte 4:96c3f113f0b0 221 case 5: //set temperatura manual
josedaparte 2:a3cc9101e1c3 222 if(i == 0) {
josedaparte 2:a3cc9101e1c3 223 pdig = num;
josedaparte 2:a3cc9101e1c3 224 pc.printf("%.1d\n\r", pdig);
josedaparte 2:a3cc9101e1c3 225 } else if(i == 1) {
josedaparte 2:a3cc9101e1c3 226 sdig = num;
josedaparte 2:a3cc9101e1c3 227 pc.printf("%.1d\n\r", sdig);
josedaparte 2:a3cc9101e1c3 228 val = (pdig * 10) + sdig;
josedaparte 2:a3cc9101e1c3 229 pc.printf("%.1d\n\r", val);
josedaparte 3:ef1eaeaf5c4e 230 imprimehora();
josedaparte 3:ef1eaeaf5c4e 231 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 232 lcd.printf("temperatura a %d",val);
josedaparte 3:ef1eaeaf5c4e 233 wait(1);
josedaparte 3:ef1eaeaf5c4e 234 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 235 lcd.printf("temperatura ");
josedaparte 2:a3cc9101e1c3 236 }
josedaparte 2:a3cc9101e1c3 237 i++;
josedaparte 2:a3cc9101e1c3 238 if(i == 2) {
josedaparte 2:a3cc9101e1c3 239 i = 0;
josedaparte 2:a3cc9101e1c3 240 }
josedaparte 2:a3cc9101e1c3 241 break;
josedaparte 4:96c3f113f0b0 242 case 6: //tipo de banio manual
josedaparte 2:a3cc9101e1c3 243 pc.printf("ingreso tipo banio %d\n\r",num);
josedaparte 2:a3cc9101e1c3 244 if(num == 0 || num == 1) {
josedaparte 2:a3cc9101e1c3 245 tipobanio = num;
josedaparte 2:a3cc9101e1c3 246 lcd.locate(0,0);
josedaparte 2:a3cc9101e1c3 247 if(num == 0)
josedaparte 3:ef1eaeaf5c4e 248 lcd.printf("banio rapido ");
josedaparte 2:a3cc9101e1c3 249 else
josedaparte 3:ef1eaeaf5c4e 250 lcd.printf("banio normal ");
josedaparte 2:a3cc9101e1c3 251 wait(1);
josedaparte 2:a3cc9101e1c3 252 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 253 lcd.printf("tipo banio ");
josedaparte 2:a3cc9101e1c3 254 pc.printf("%.1d\n\r", tipobanio);
josedaparte 2:a3cc9101e1c3 255 set = 0;
josedaparte 2:a3cc9101e1c3 256 } else {
josedaparte 2:a3cc9101e1c3 257 lcd.locate(0,0);
josedaparte 2:a3cc9101e1c3 258 lcd.printf("valor invalido");
josedaparte 2:a3cc9101e1c3 259 wait(1);
josedaparte 2:a3cc9101e1c3 260 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 261 lcd.printf("tipo banio ");
josedaparte 2:a3cc9101e1c3 262 }
josedaparte 2:a3cc9101e1c3 263 break;
josedaparte 2:a3cc9101e1c3 264 }
josedaparte 2:a3cc9101e1c3 265 pc.printf("salgo case\n\r");
josedaparte 3:ef1eaeaf5c4e 266 pc.printf("%d",i);
josedaparte 2:a3cc9101e1c3 267 }
josedaparte 2:a3cc9101e1c3 268 }
josedaparte 2:a3cc9101e1c3 269
josedaparte 2:a3cc9101e1c3 270 void menu ()
josedaparte 2:a3cc9101e1c3 271 {
josedaparte 0:1334d6f26f42 272 lcd.cls();
josedaparte 3:ef1eaeaf5c4e 273 imprimehora();
josedaparte 2:a3cc9101e1c3 274 switch (sel) {
josedaparte 2:a3cc9101e1c3 275 case 1:
josedaparte 0:1334d6f26f42 276 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 277 lcd.printf("auto");
josedaparte 0:1334d6f26f42 278 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 279 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 280 sel = 2;
josedaparte 0:1334d6f26f42 281 break;
josedaparte 0:1334d6f26f42 282 case 2:
josedaparte 0:1334d6f26f42 283 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 284 lcd.printf("manual");
josedaparte 0:1334d6f26f42 285 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 286 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 287 sel = 3;
josedaparte 0:1334d6f26f42 288 break;
josedaparte 2:a3cc9101e1c3 289 case 3:
josedaparte 0:1334d6f26f42 290 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 291 lcd.printf("reloj");
josedaparte 0:1334d6f26f42 292 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 293 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 294 sel = 1;
josedaparte 0:1334d6f26f42 295 break;
josedaparte 2:a3cc9101e1c3 296 case 4:
josedaparte 0:1334d6f26f42 297 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 298 lcd.printf("temperatura");
josedaparte 0:1334d6f26f42 299 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 300 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 301 sel = 5;
josedaparte 0:1334d6f26f42 302 break;
josedaparte 0:1334d6f26f42 303 case 5:
josedaparte 0:1334d6f26f42 304 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 305 lcd.printf("tipo banio ");
josedaparte 0:1334d6f26f42 306 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 307 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 308 sel = 6;
josedaparte 0:1334d6f26f42 309 break;
josedaparte 2:a3cc9101e1c3 310 case 6:
josedaparte 0:1334d6f26f42 311 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 312 lcd.printf("horarios");
josedaparte 0:1334d6f26f42 313 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 314 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 315 sel = 9;
josedaparte 0:1334d6f26f42 316 break;
josedaparte 2:a3cc9101e1c3 317 case 7:
josedaparte 0:1334d6f26f42 318 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 319 lcd.printf("temperatura");
josedaparte 0:1334d6f26f42 320 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 321 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 322 sel = 8;
josedaparte 0:1334d6f26f42 323 break;
josedaparte 2:a3cc9101e1c3 324 case 8:
josedaparte 0:1334d6f26f42 325 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 326 lcd.printf("tipo banio ");
josedaparte 0:1334d6f26f42 327 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 328 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 329 sel = 10;
josedaparte 0:1334d6f26f42 330 break;
josedaparte 2:a3cc9101e1c3 331 case 9:
josedaparte 0:1334d6f26f42 332 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 333 lcd.printf("salir");
josedaparte 0:1334d6f26f42 334 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 335 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 336 sel = 4;
josedaparte 0:1334d6f26f42 337 break;
josedaparte 0:1334d6f26f42 338 case 10:
josedaparte 0:1334d6f26f42 339 lcd.locate(0,0);
josedaparte 0:1334d6f26f42 340 lcd.printf("salir");
josedaparte 0:1334d6f26f42 341 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 342 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 343 sel = 7;
josedaparte 2:a3cc9101e1c3 344 break;
josedaparte 2:a3cc9101e1c3 345 }
josedaparte 0:1334d6f26f42 346 }
josedaparte 0:1334d6f26f42 347
josedaparte 0:1334d6f26f42 348
josedaparte 2:a3cc9101e1c3 349 void selec()
josedaparte 2:a3cc9101e1c3 350 {
josedaparte 2:a3cc9101e1c3 351 switch (sel) {
josedaparte 0:1334d6f26f42 352 case 2:
josedaparte 2:a3cc9101e1c3 353 modo = 'A';
josedaparte 0:1334d6f26f42 354 sel = 4;
josedaparte 0:1334d6f26f42 355 menu();
josedaparte 0:1334d6f26f42 356 break;
josedaparte 0:1334d6f26f42 357 case 3:
josedaparte 0:1334d6f26f42 358 modo = 'M';
josedaparte 0:1334d6f26f42 359 sel = 7;
josedaparte 0:1334d6f26f42 360 menu();
josedaparte 0:1334d6f26f42 361 break;
josedaparte 0:1334d6f26f42 362 case 1:
josedaparte 0:1334d6f26f42 363 pc.printf("aca ingresaria la hora\r\n");
josedaparte 2:a3cc9101e1c3 364 set = 1;
josedaparte 0:1334d6f26f42 365 break;
josedaparte 0:1334d6f26f42 366 case 5:
josedaparte 0:1334d6f26f42 367 pc.printf("aca ingresaria la temperatura\r\n");
josedaparte 3:ef1eaeaf5c4e 368 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 369 lcd.printf(" 0_F 1_N 2_C");
josedaparte 2:a3cc9101e1c3 370 set = 2;
josedaparte 0:1334d6f26f42 371 break;
josedaparte 0:1334d6f26f42 372 case 6:
josedaparte 0:1334d6f26f42 373 pc.printf("aca ingresaria el tipo de banio\r\n");
josedaparte 3:ef1eaeaf5c4e 374 lcd.locate(0,0);
josedaparte 2:a3cc9101e1c3 375 lcd.printf(" 0_rap 1_norm");
josedaparte 2:a3cc9101e1c3 376 set = 3;
josedaparte 0:1334d6f26f42 377 break;
josedaparte 0:1334d6f26f42 378 case 4:
josedaparte 0:1334d6f26f42 379 sel = 1;
josedaparte 0:1334d6f26f42 380 menu(); //salida1
josedaparte 0:1334d6f26f42 381 break;
josedaparte 0:1334d6f26f42 382 case 8:
josedaparte 0:1334d6f26f42 383 pc.printf("aca ingresaria la temperatura2\r\n");
josedaparte 3:ef1eaeaf5c4e 384 lcd.locate(0,0);
josedaparte 3:ef1eaeaf5c4e 385 lcd.printf("ingrese temperat");
josedaparte 2:a3cc9101e1c3 386 set = 5;
josedaparte 0:1334d6f26f42 387 break;
josedaparte 0:1334d6f26f42 388 case 7:
josedaparte 0:1334d6f26f42 389 sel = 2;
josedaparte 0:1334d6f26f42 390 menu();
josedaparte 0:1334d6f26f42 391 break;
josedaparte 0:1334d6f26f42 392 case 9:
josedaparte 0:1334d6f26f42 393 pc.printf("aca ingresaria el horario\r\n");
josedaparte 2:a3cc9101e1c3 394 set = 4;
josedaparte 0:1334d6f26f42 395 break;
josedaparte 0:1334d6f26f42 396 case 10:
josedaparte 0:1334d6f26f42 397 pc.printf("aca ingresaria tipo banio\r\n");
josedaparte 3:ef1eaeaf5c4e 398 lcd.locate(0,0);
josedaparte 2:a3cc9101e1c3 399 lcd.printf(" 0_rap 1_norm");
josedaparte 2:a3cc9101e1c3 400 set = 6;
josedaparte 0:1334d6f26f42 401 break;
josedaparte 0:1334d6f26f42 402 }
josedaparte 2:a3cc9101e1c3 403
josedaparte 2:a3cc9101e1c3 404 }
josedaparte 2:a3cc9101e1c3 405
josedaparte 2:a3cc9101e1c3 406
josedaparte 2:a3cc9101e1c3 407 int main()
josedaparte 2:a3cc9101e1c3 408 {
josedaparte 3:ef1eaeaf5c4e 409 t.start();
josedaparte 0:1334d6f26f42 410 pc.baud(115200);
josedaparte 1:9ab0f526b7a7 411 Enable.rise(&func);
josedaparte 2:a3cc9101e1c3 412
josedaparte 0:1334d6f26f42 413 int comp;
josedaparte 2:a3cc9101e1c3 414 while(1) {
josedaparte 3:ef1eaeaf5c4e 415 //reloj
josedaparte 3:ef1eaeaf5c4e 416 seg = t.read();
josedaparte 3:ef1eaeaf5c4e 417 if(seg == 60)
josedaparte 3:ef1eaeaf5c4e 418 {
josedaparte 3:ef1eaeaf5c4e 419 seg=0;
josedaparte 3:ef1eaeaf5c4e 420 t.reset();
josedaparte 3:ef1eaeaf5c4e 421 min++;
josedaparte 3:ef1eaeaf5c4e 422 }
josedaparte 3:ef1eaeaf5c4e 423 if(min==60)
josedaparte 3:ef1eaeaf5c4e 424 {
josedaparte 3:ef1eaeaf5c4e 425 min=0;
josedaparte 3:ef1eaeaf5c4e 426 hora++;
josedaparte 3:ef1eaeaf5c4e 427 }
josedaparte 3:ef1eaeaf5c4e 428 if(hora==24)
josedaparte 3:ef1eaeaf5c4e 429 {
josedaparte 3:ef1eaeaf5c4e 430 hora=0;}
josedaparte 3:ef1eaeaf5c4e 431 imprimehora();
josedaparte 3:ef1eaeaf5c4e 432
josedaparte 2:a3cc9101e1c3 433 //convierte voltaje a temperatura
josedaparte 0:1334d6f26f42 434 casexterno = externo.read() * 3.3;
josedaparte 2:a3cc9101e1c3 435 texterno = (casexterno + 0.2) * 100 / 5;
josedaparte 0:1334d6f26f42 436 casinterno = interno.read() * 3.3;
josedaparte 0:1334d6f26f42 437 tinterno = (casinterno + 2) * 100 / 8;
josedaparte 2:a3cc9101e1c3 438
josedaparte 0:1334d6f26f42 439 lcd.locate(0,1);
josedaparte 3:ef1eaeaf5c4e 440 lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
josedaparte 0:1334d6f26f42 441 comp = tinterno;
josedaparte 0:1334d6f26f42 442 if(comp == temp)
josedaparte 0:1334d6f26f42 443 pc.printf("las temperaturas son iguales\n\r");
josedaparte 0:1334d6f26f42 444 else
josedaparte 0:1334d6f26f42 445 pc.printf("temperaturas distintas\n\r");
josedaparte 2:a3cc9101e1c3 446 wait(1);
josedaparte 0:1334d6f26f42 447 }
josedaparte 0:1334d6f26f42 448 }