menu-teclado-lcd-pwm(funca todo) (y el puerto serie tambien)

Dependencies:   TextLCD mbed

Committer:
josedaparte
Date:
Tue Dec 01 03:40:15 2015 +0000
Revision:
3:ef1eaeaf5c4e
Parent:
2:a3cc9101e1c3
Child:
4:96c3f113f0b0
dsa

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