![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Version Final
Diff: main.cpp
- Revision:
- 10:d0d3e0429c6f
- Parent:
- 9:56bfbc0947af
--- 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) {