electro

Dependencies:   mbed QEI mbed-os KeypadLib TextLCD

Revision:
8:3649a359ee91
Parent:
7:52b459308d55
Child:
9:1683e8d3454f
--- a/electrocoagulador_final.cpp	Tue Mar 05 13:33:10 2019 +0000
+++ b/electrocoagulador_final.cpp	Sat Mar 09 17:20:18 2019 +0000
@@ -19,10 +19,10 @@
 InterruptIn button(USER_BUTTON);    // Cancelar operación
 
 /*******************VARIABLES********************/
-int tempUser1 = 5;                  // Tiempo tope de electrocoagulacion
-int tempUser2 = 5;                  // Tiempo tope de reposo de la vinaza
-int tempUser3 = 5;                  // Tiempo tope de vaciado del agua en el tanque 2
-int tempUser4 = 5;                  // Tiempo tope de vaciado de residuos en el tanque 2
+int tempUser1 = 1;                  // Tiempo tope de electrocoagulacion
+int tempUser2 = 1;                  // Tiempo tope de reposo de la vinaza
+int tempUser3 = 1;                  // Tiempo tope de vaciado del agua en el tanque 2
+int tempUser4 = 1;                  // Tiempo tope de vaciado de residuos en el tanque 2
 int pwm = 50.0f;                       // Duty cycle del motor
 int tiempoLlenado = 5;              // Tiempo de llenado del tanque 1
 
@@ -40,6 +40,8 @@
 float r=1.0f;
 float e_pas=0;
 
+int timeScale = 60;
+
 /******************** TECLADO Y LCD ***********************/
 Serial pc(USBTX, USBRX); //rs, e,d4,d5,d6,d7
 TextLCD lcd(PC_8,PC_9,PC_10,PC_11,PC_12,PD_2);
@@ -47,8 +49,7 @@
 
 /********************* FUNCIONES **************************/
 
-void printLCD()
-{
+void printLCD(){
     while(1) {
         lcd.cls();
         lcd.locate(0,0);
@@ -97,39 +98,28 @@
     while(1) {
         char key = keypad.getKey();
         switch(key) {
-            case '0':
-                return 0;
-            case '1':
-                return 1;
-            case '2':
-                return 2;
-            case '3':
-                return 3;
-            case '4':
-                return 4;
-            case '5':
-                return 5;
-            case '6':
-                return 6;
-            case '7':
-                return 7;
-            case '8':
-                return 8;
-            case '9':
-                return 9;
+            case '0':                 return 0;
+            case '1':                 return 1;
+            case '2':                 return 2;
+            case '3':                 return 3;
+            case '4':                 return 4;
+            case '5':                 return 5;
+            case '6':                 return 6;
+            case '7':                 return 7;
+            case '8':                 return 8;
+            case '9':                 return 9;
             case 'A':
                 campo++;
                 if(campo==6) campo=1;
-                return -1;
-            //case 'B': return -2;
-            //case 'C': return -3;
+                return -2;
+            //case 'B': return -3;
+            //case 'C': return -4;
             case 'D':
-                return -4;
+                return -5;
             default:
                 ;
                 break;
-        }
-        wait_ms(100);
+        }        
     }
 }
 
@@ -155,41 +145,45 @@
 void setUserTimes()
 {
     while(1) {
-setvalue:
+        
+    setvalue:
+        while(keypad.getKey()!='*'){}
         a = 100*getNum();
-        wait_ms(200);
-        if(a==-1)goto setvalue;
-        if(a==-4)break;
+            if(a==-200)goto setvalue;
+            if(a==-500)break;
+        while(keypad.getKey()!='*'){}
         b = 10*getNum();
-        wait_ms(200);
-        if(b==-1)goto setvalue;
-        if(b==-4)break;
+            if(b==-20)goto setvalue;
+            if(b==-50)break;
+        while(keypad.getKey()!='*'){}
         c = getNum();
-        wait_ms(200);
-        if(c==-1)goto setvalue;
-        if(c==-4)break;
+            if(c==-2)goto setvalue;
+            if(c==-5)break;
+        
 
         switch(campo) {
             case 1:
-                tempUser1=a+b+c;
+                tempUser1 = 60*(a+b+c);
                 break;
             case 2:
-                tempUser2=a+b+c;
+                tempUser2 = timeScale*(a+b+c);
                 break;
             case 3:
-                tempUser3=a+b+c;
+                tempUser3 = timeScale*(a+b+c);
                 break;
             case 4:
-                tempUser4=a+b+c;
+                tempUser4 = timeScale*(a+b+c);
                 break;
             case 5:
                 pwm=a+b+c;
+                if(pwm < 5)   pwm = 5;
+                if(pwm > 100) pwm = 100;
                 break;
             default:
                 ;
                 break;
         }
-        wait_ms(200);
+        wait_ms(2);
     }
     return;
 }
@@ -264,9 +258,7 @@
             running = 1;
             init();
             Thread lcdprint;
-            lcdprint.start(printLCD);
-            
-
+            lcdprint.start(printLCD);    
 
             campo = 1;
             setUserTimes();
@@ -274,8 +266,8 @@
             campo = 0;
             finished = 0;
             canceled = 0;
+
             E_1 = 1;
-
             t.attach(&tiempoValvula1, tiempoLlenado);
 
         }