Version Final

Dependencies:   mbed DS1820

Files at this revision

API Documentation at this revision

Comitter:
NIcolasFernandezSanz
Date:
Sun Jun 16 01:16:02 2019 +0000
Parent:
9:56bfbc0947af
Commit message:
VersionFinal; Fernandez-Clerici;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Sun Jun 09 19:11:46 2019 +0000
+++ b/main.cpp	Sun Jun 16 01:16:02 2019 +0000
@@ -1,6 +1,6 @@
 /*
-FERNANDEZ-CLERICI
-EJER01 - TP01
+                FERNANDEZ-CLERICI
+                  EJER01 - TP01
 
 PTB0 -- Habilitacion Cooler
 PTB1 -- DS18B20 (Data) (4K7 PullUp)
@@ -20,7 +20,7 @@
 #define EN_COOLER          PTB0
 #define DS18B20_PIN        PTB1
 #define VELOCIDAD          D3
-#define PULSADOR           A5
+#define PULSADOR           PTC1
 #define PRESET             PTC2
 
 /*Definicion de Elementos*/
@@ -124,7 +124,7 @@
 
 
 /*VALORES DE CONFIGURACION LAZO CERRADO*/
-#define DEFINICION_CAMBIO_PWM 0.02f //Resolucion de barrido, valores altos agilizan el cambio pero pueden hacer que nunca se alcance lo pedido..
+#define DEFINICION_CAMBIO_PWM 0.01f //Resolucion de barrido, valores altos agilizan el cambio pero pueden hacer que nunca se alcance lo pedido..
 #define MinRPM 500.0f               //Minima velocidad establecida por el Cooler
 #define ToleranciaRPM 100.0f        //Tolerancia de calculos en torno a la velocidad (Cuanto me puedo desviar de la regla de tres simple y considerarlo verdadero)
 
@@ -380,7 +380,7 @@
     static float temperatura = 0;
     float val = 0;
     static bool suptempmax = 0; //Flag que me indica si ya puse al maximo el duty
-    
+
     switch(CPT) {
         case INICIO_LC:
             Rojo = 1;//Apago el Led rojo..
@@ -397,9 +397,9 @@
             temperatura = probe.temperature();                      //Guardo la temperatura
             printf("La temperatura es de %3.1foC\r\n",temperatura );
             /*Si tengo mas de 70 grados directamente pongo la maxima velocidad*/
-            if(temperatura >= 70) {
+            if(temperatura >= 70.00f) {
                 /*Aviso que supere los 70ºC*/
-                if(!suptempmax){
+                if(!suptempmax) {
                     printf("Supere los 70oC... Pongo el duty al maximo.. Dejo de medir RPM momentaneamente..\r\n");
                     suptempmax = 1;     //Seteo el flag de superar los 70ºC
                 }
@@ -410,9 +410,13 @@
                 break;
             } else {
                 /*Aviso que baje de los 70ºC*/
-                if(suptempmax){
-                   printf("Baje de los 70oC... duty dinamico.. Vuelvo a medir RPM ..\r\n"); 
-                   suptempmax = 0;     //Reinicio el flag de superar los 70ºC
+                if(suptempmax) {
+                    printf("Baje de los 70oC... duty dinamico.. Vuelvo a medir RPM ..\r\n");
+                    Cooler.write(0.5f);
+                    duty = 0.5f;
+                    CPT = ESPERA_LC;
+                    suptempmax = 0;     //Reinicio el flag de superar los 70ºC
+                    
                 }
                 /*Reinicio la medicion de RPM*/
                 tv = 0;             //Reinicio el acumulador de tiempo de la maquina de estados que mide velocidad
@@ -450,7 +454,7 @@
                         printf("EL duty es correcto! Estoy en %0.1f% :D\r\n", floor(duty * 100.0f));
                         IM = 0;
                         CPT = ESPERA_LC;
-                        break; 
+                        break;
 
                     }
 
@@ -505,8 +509,8 @@
 
             dtf = obj; //Fijo el nuevo objetivo...
             tdm = 0;                //Aviso que estoy modificando el duty...
-            printf("Inicio el cambio de duty....\r\n");
-            Rojo = 0;
+            //printf("Inicio el cambio de duty....\r\n");
+            //Rojo = 0;
 
             /*Si estoy por debajo del minimo del Cooler directamente lo apago...*/
             if(dtf < 0.07f) {