final

Dependencies:   TextLCD mbed

Fork of general by proyectotecnicas

Revision:
5:c047b49f74e7
Parent:
4:96c3f113f0b0
Child:
6:eb50c82e7d93
--- a/main.cpp	Tue Dec 01 15:56:26 2015 +0000
+++ b/main.cpp	Mon Dec 07 19:27:17 2015 +0000
@@ -2,114 +2,112 @@
 #include "TextLCD.h"
 #include "AnalogIn.h"
 
+//clases
+Timer t;
 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);
-DigitalIn key4(PTE17);
+//entradas
+DigitalIn key1(PTE31), key4(PTE17), key2(PTE19), key3(PTE18);
 InterruptIn Enable(PTA13);
-AnalogIn externo(PTC2);
-AnalogIn interno(PTB3);
+AnalogIn externo(PTC2),interno(PTB3), presionin(PTB2), pwment(PTB1);
+PwmOut pwmsal(PTD2);
 
-int temp = 26;
-char tipo;
-int sel = 1;
-float casinterno;
-float casexterno;
-float tinterno;
-float texterno;
-char modo = 'M';
-int set = 0;
-int pdig, sdig, val;
-int i = 0;
-int tipobanio = 0;
-int tempauto=0;
-int hora=0, min=0, seg=0, horain = 8, minin = 0, horafin = 22, minfin = 0, j = 0;
-int B1,B2,B3,B4,num;
-int hh1,hh0,mm0,mm1;
+//declaracion de variables
 
+char tipo, modo = 'M';
+float tinterno, texterno, presion, casexterno, casinterno, caspresion, valorpwm;
+int i = 0, j = 0, sel = 1, hora=0, min=0, seg=0, horain = 8, minin = 0, horafin = 22, minfin = 0, temp = 26;
+int hh1, hh0, mm0, mm1, B1, B2, B3, B4, num, tempauto = 0, tipobanio = 0, pdig, sdig, tempmanual = 40, set = 0;
 void menu();
 void selec();
 void func();
 
-void sethora(){
-    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 
-                    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 
-    }
-void imprimehora(){
-        lcd.locate(11,1);
-        if(min < 10 && hora >= 10)
+//funcion de set de hora
+void sethora()
+{
+    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
+            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
+}
+// fin funcion set de hora
+
+//funcion que imprime la hora
+void imprimehora()
+{
+    lcd.locate(11,1);
+    if(min < 10 && hora >= 10)
         lcd.printf("%2i:0%i", hora, min);
-        if(hora < 10 && min >= 10)
+    if(hora < 10 && min >= 10)
         lcd.printf("0%i:%2i", hora, min);
-        if(hora < 10 && min < 10)
+    if(hora < 10 && min < 10)
         lcd.printf("0%i:0%i", hora, min);
-        if(hora >= 10 && min >= 10)   
+    if(hora >= 10 && min >= 10)
         lcd.printf("%i:%i", hora, min);
-        }
+}
 
+//lectura de teclado y navegacion por menu
 void func()
 {
     B1 = key1.read();
@@ -132,21 +130,22 @@
             case 0:
                 pc.printf("case 0");
                 break;
-            case 1:                                 //seteo hora
-                        sethora();                           
-                        if(i == 4) {                                        //pasa la hora al reloj
-                            hora = (hh1 * 10) + hh0;
-                            min = (mm1 * 10) + mm0;
-                            hh0 = hh1 = mm1 = mm0 = 0;
-                            t.start();
-                            lcd.locate(0,0);
-                            lcd.printf("reloj          ");
-                            lcd.locate(0,1);
-                            lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
-                            i = 0;}
-                break;                                                          //fin pasa hora al reloj
+            case 1:                                                  //seteo hora
+                sethora();
+                if(i == 4) {                                        //pasa la hora al reloj
+                    hora = (hh1 * 10) + hh0;
+                    min = (mm1 * 10) + mm0;
+                    hh0 = hh1 = mm1 = mm0 = 0;
+                    t.start();
+                    lcd.locate(0,0);
+                    lcd.printf("reloj          ");
+                    lcd.locate(0,1);
+                    lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
+                    i = 0;
+                }
+                break;                                                              //fin pasa hora al reloj
             case 2:
-                 pc.printf("ingreso temperaturas de auto\n\r");                    //set temperaturas auto                
+                pc.printf("ingreso temperaturas de auto\n\r");                    //set temperaturas auto
                 if(num == 0 || num == 1 || num == 2) {
                     tempauto = num;
                     lcd.locate(0,0);
@@ -154,8 +153,8 @@
                         lcd.printf("tipo frio    ");
                     else if(num == 1)
                         lcd.printf("tipo normal  ");
-                        else
-                            lcd.printf("tipo caliente");
+                    else
+                        lcd.printf("tipo caliente");
                     wait(1);
                     lcd.cls();
                     lcd.printf("temperatura");
@@ -168,7 +167,7 @@
                     lcd.cls();
                 }
                 break;
-            case 3:                                                         //tipo de baño
+            case 3:                                                                         //tipo de baño
                 pc.printf("ingreso tipo banio %d\n\r",num);
                 if(num == 0 || num == 1) {
                     tipobanio = num;
@@ -190,33 +189,35 @@
                     lcd.printf("tipo banio  ");
                 }
                 break;
-            case 4:                                                 //set de horarios                                            
+            case 4:                                                             //set de horarios
                 pc.printf("case 4\n\r");
-                sethora();                           
-                        if(i == 4 && j == 0) {                                        //pasa la hora al reloj
-                            horain = (hh1 * 10) + hh0;
-                            minin = (mm1 * 10) + mm0;
-                            hh0 = hh1 = mm1 = mm0 = 0;
-                            lcd.locate(0,0);
-                            lcd.printf("horario         ");
-                            lcd.locate(0,1);
-                            lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
-                            pc.printf("hora de inicio %d:%d\n\r",horain,minin);
-                            pc.printf("hora de fin %d:%d\n\r",horafin,minfin);
-                            i = 0;
-                            j = 1;}
-                        if(i == 4 && j == 1) {                                        //pasa la hora al reloj
-                            horafin = (hh1 * 10) + hh0;
-                            minfin = (mm1 * 10) + mm0;
-                            hh0 = hh1 = mm1 = mm0 = 0;
-                            lcd.locate(0,0);
-                            lcd.printf("horario         ");
-                            lcd.locate(0,1);
-                            lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
-                            pc.printf("hora de inicio %d:%d\n\r",horain,minin);
-                            pc.printf("hora de fin %d:%d\n\r",horafin,minfin);
-                            i = 0;
-                            j = 0;}
+                sethora();
+                if(i == 4 && j == 0) {                                          //pasa la hora al reloj
+                    horain = (hh1 * 10) + hh0;
+                    minin = (mm1 * 10) + mm0;
+                    hh0 = hh1 = mm1 = mm0 = 0;
+                    lcd.locate(0,0);
+                    lcd.printf("horario         ");
+                    lcd.locate(0,1);
+                    lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
+                    pc.printf("hora de inicio %d:%d\n\r",horain,minin);
+                    pc.printf("hora de fin %d:%d\n\r",horafin,minfin);
+                    i = 0;
+                    j = 1;
+                }
+                if(i == 4 && j == 1) {                                        //pasa la hora al reloj
+                    horafin = (hh1 * 10) + hh0;
+                    minfin = (mm1 * 10) + mm0;
+                    hh0 = hh1 = mm1 = mm0 = 0;
+                    lcd.locate(0,0);
+                    lcd.printf("horario         ");
+                    lcd.locate(0,1);
+                    lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
+                    pc.printf("hora de inicio %d:%d\n\r",horain,minin);
+                    pc.printf("hora de fin %d:%d\n\r",horafin,minfin);
+                    i = 0;
+                    j = 0;
+                }
                 break;
             case 5:                                                 //set temperatura manual
                 if(i == 0) {
@@ -225,11 +226,11 @@
                 } else if(i == 1) {
                     sdig = num;
                     pc.printf("%.1d\n\r", sdig);
-                    val = (pdig * 10) + sdig;
-                    pc.printf("%.1d\n\r", val);
+                    tempmanual = (pdig * 10) + sdig;
+                    pc.printf("%.1d\n\r", tempmanual);
                     imprimehora();
                     lcd.locate(0,0);
-                    lcd.printf("temperatura a %d",val);
+                    lcd.printf("temperatura a %d",tempmanual);
                     wait(1);
                     lcd.locate(0,0);
                     lcd.printf("temperatura     ");
@@ -267,10 +268,11 @@
     }
 }
 
+//impresion de menu
 void menu ()
 {
     lcd.cls();
-    imprimehora();  
+    imprimehora();
     switch (sel) {
         case 1:
             lcd.locate(0,0);
@@ -377,7 +379,7 @@
             break;
         case 4:
             sel = 1;
-            menu();                    //salida1
+            menu();                                                         //salida1
             break;
         case 8:
             pc.printf("aca ingresaria la temperatura2\r\n");
@@ -403,46 +405,53 @@
 
 }
 
-
+//programa principal
 int main()
 {
     t.start();
     pc.baud(115200);
     Enable.rise(&func);
-
-    int comp;
+    
     while(1) {
 //reloj
-    seg = t.read();
-        if(seg == 60)
-        {
+        seg = t.read();
+        if(seg == 60) {
             seg=0;
             t.reset();
-            min++;   
+            min++;
         }
-        if(min==60)
-        {
+        if(min==60) {
             min=0;
-            hora++; 
+            hora++;
+        }
+        if(hora==24) {
+            hora=0;
         }
-        if(hora==24)
-        {
-            hora=0;}
-        imprimehora();            
-        
+        imprimehora();
+//pwm
+        pwmsal.period(5);
+        valorpwm = pwment.read();
+        pwmsal.write(valorpwm);
 //convierte voltaje a temperatura
         casexterno = externo.read() * 3.3;
         texterno = (casexterno + 0.2) * 100 / 5;
         casinterno = interno.read() * 3.3;
         tinterno = (casinterno + 2) * 100 / 8;
+//sensor de presion
+        caspresion = presionin.read() * 3.3;
+        if(caspresion >= 2.34){
+            
+            }
+        if(caspresion >= 1.68 && caspresion <= 1.85){
+           
+            }
+        if(caspresion <= 1.03){
+                        
+            }
 
         lcd.locate(0,1);
         lcd.printf("%.0fC %.0fC %c ", texterno, tinterno, modo);
-        comp = tinterno;
-        if(comp == temp)
-            pc.printf("las temperaturas son iguales\n\r");
-        else
-            pc.printf("temperaturas distintas\n\r");
+
         wait(1);
     }
 }
\ No newline at end of file