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

Dependencies:   TextLCD mbed

Fork of programa principal by proyectotecnicas

Revision:
2:a3cc9101e1c3
Parent:
1:9ab0f526b7a7
Child:
3:ef1eaeaf5c4e
--- a/main.cpp	Mon Nov 30 16:47:32 2015 +0000
+++ b/main.cpp	Mon Nov 30 23:19:34 2015 +0000
@@ -20,15 +20,16 @@
 float casexterno;
 float tinterno;
 float texterno;
-char modo = 'M';  
+char modo = 'M';
+int set = 0;
+int pdig, sdig, val;
+int i = 0;
+int tipobanio = 0;
 
 int num, B1,B2,B3,B4;
 
 void menu();
 void selec();
-void ingresat(){
-    
-    }
 
 
 void func()
@@ -37,19 +38,100 @@
     B2 = key2.read();
     B3 = key3.read();
     B4 = key4.read();
-    
+
     num = 2*2*2*B1 + 2*2*B2 + 2*B3 + B4;
-    
-    if(num == 10){
+    pc.printf("llama a func\n\r");
+    if(num == 10) {
+        set = 0;
         menu();
-                }else if(num == 11){
-                                    selec();
-                                            }}
+    } else if(num == 11) {
+        set = 0;
+        selec();
+    } else if(num != 10 && num != 11) {
 
-void menu (){
+        pc.printf("antes del case\n\r");
+        switch(set) {
+            case 0:
+                pc.printf("case 0");
+                break;
+            case 1:
+                pc.printf("case 1\n\r");
+                break;
+            case 2:
+                pc.printf("case 2\n\r");
+                break;
+            case 3:
+                pc.printf("ingreso tipo banio %d\n\r",num);
+                if(num == 0 || num == 1) {
+                    tipobanio = num;
+                    lcd.locate(0,0);
+                    if(num == 0)
+                        lcd.printf("banio rapido");
+                    else
+                        lcd.printf("banio normal");
+                    wait(1);
+                    lcd.cls();
+                    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();
+                }
+                break;
+            case 4:
+                pc.printf("case 4\n\r");
+                break;
+            case 5:
+                if(i == 0) {
+                    pdig = num;
+                    pc.printf("%.1d\n\r", pdig);
+                } else if(i == 1) {
+                    sdig = num;
+                    pc.printf("%.1d\n\r", sdig);
+                    val = (pdig * 10) + sdig;
+                    pc.printf("%.1d\n\r", val);
+                }
+                i++;
+                if(i == 2) {
+                    i = 0;
+                }
+                break;
+            case 6:
+                pc.printf("ingreso tipo banio %d\n\r",num);
+                if(num == 0 || num == 1) {
+                    tipobanio = num;
+                    lcd.locate(0,0);
+                    if(num == 0)
+                        lcd.printf("banio rapido");
+                    else
+                        lcd.printf("banio normal");
+                    wait(1);
+                    lcd.cls();
+                    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();
+                }
+                break;
+        }
+        pc.printf("salgo case\n\r");
+    }
+}
+
+void menu ()
+{
     lcd.cls();
-    switch (sel){
-        case 1:                      
+    switch (sel) {
+        case 1:
             lcd.locate(0,0);
             lcd.printf("auto");
             lcd.locate(0,1);
@@ -63,14 +145,14 @@
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 3;
             break;
-        case 3:            
+        case 3:
             lcd.locate(0,0);
             lcd.printf("reloj");
             lcd.locate(0,1);
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 1;
             break;
-        case 4:           
+        case 4:
             lcd.locate(0,0);
             lcd.printf("temperatura");
             lcd.locate(0,1);
@@ -84,28 +166,28 @@
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 6;
             break;
-        case 6:            
+        case 6:
             lcd.locate(0,0);
             lcd.printf("horarios");
             lcd.locate(0,1);
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 9;
             break;
-        case 7:            
+        case 7:
             lcd.locate(0,0);
             lcd.printf("temperatura");
             lcd.locate(0,1);
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 8;
             break;
-        case 8:           
+        case 8:
             lcd.locate(0,0);
             lcd.printf("tipo banio");
             lcd.locate(0,1);
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 10;
             break;
-        case 9:           
+        case 9:
             lcd.locate(0,0);
             lcd.printf("salir");
             lcd.locate(0,1);
@@ -118,15 +200,16 @@
             lcd.locate(0,1);
             lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
             sel = 7;
-            break;        
-            }       
+            break;
+    }
 }
 
 
-void selec(){
-    switch (sel){
+void selec()
+{
+    switch (sel) {
         case 2:
-            modo = 'A';       
+            modo = 'A';
             sel = 4;
             menu();
             break;
@@ -137,16 +220,17 @@
             break;
         case 1:
             pc.printf("aca ingresaria la hora\r\n");
-            wait(1.5);
+            set = 1;
+            wait(3);
             break;
         case 5:
             pc.printf("aca ingresaria la temperatura\r\n");
-            ingresat();
-            wait(1.5);
+            set = 2;
             break;
         case 6:
             pc.printf("aca ingresaria el tipo de banio\r\n");
-            wait(1.5);
+            lcd.printf(" 0_rap 1_norm");
+            set = 3;
             break;
         case 4:
             sel = 1;
@@ -154,7 +238,7 @@
             break;
         case 8:
             pc.printf("aca ingresaria la temperatura2\r\n");
-            wait(1.5);
+            set = 5;
             break;
         case 7:
             sel = 2;
@@ -162,31 +246,32 @@
             break;
         case 9:
             pc.printf("aca ingresaria el horario\r\n");
-            wait(1.5);
+            set = 4;
             break;
         case 10:
             pc.printf("aca ingresaria tipo banio\r\n");
-            wait(1.5);
+            lcd.printf(" 0_rap 1_norm");
+            set = 6;
             break;
-            }
-    
     }
-    
-        
-int main() {
-    
+
+}
+
+
+int main()
+{
+
     pc.baud(115200);
     Enable.rise(&func);
-    
+
     int comp;
-    while(1){
-
-//convierte voltaje a temperatura        
+    while(1) {
+//convierte voltaje a temperatura
         casexterno = externo.read() * 3.3;
-        texterno = (casexterno + 0.2) * 100 / 5;        
+        texterno = (casexterno + 0.2) * 100 / 5;
         casinterno = interno.read() * 3.3;
         tinterno = (casinterno + 2) * 100 / 8;
-        
+
         lcd.locate(0,1);
         lcd.printf("%.0fC %.0fC %c ho:ra", texterno, tinterno, modo);
         comp = tinterno;
@@ -194,6 +279,6 @@
             pc.printf("las temperaturas son iguales\n\r");
         else
             pc.printf("temperaturas distintas\n\r");
-            wait(1);
+        wait(1);
     }
 }
\ No newline at end of file