final

Dependencies:   TextLCD mbed

Fork of general by proyectotecnicas

Committer:
josedaparte
Date:
Mon Dec 07 19:30:59 2015 +0000
Revision:
6:eb50c82e7d93
Parent:
5:c047b49f74e7
Child:
7:e27232481540
jj

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