Tengo 2 leds de 50w c/u montados en disipadores separados, cada uno con su cooler pero conectados a la misma señal PWM ya que los LEDS y los disipadores son iguales, así que se calientan parejo.
A uno de los disipadores le puse un termistor con otra resistencia para hacer un divisor resistivo y detectar cuando la temperatura comienza a subir, en ese momento le digo que se enciendan los coolers.
Mi problema es el siguiente, si el led, el cual tiene el termistor se llegase a quemar, los coolers no encenderían y como consecuencia se quemaría el led de al lado porque no se estaría enfriando.
Mi idea es detectar el fallo del Led esperando 1,5 minutos desde que los Leds se encendieron y hacer las comparaciones.
if ( (digitalRead(relay) == LOW) && (analogRead(termistor) < 630) && (flag_millis == false) ) //Si los led están encendidos y el termistor esta por debajo de 630
{
cap_millis = millis(); // Capturo el tiempo en el que se encendieron los leds
flag_millis = true;
}
if ( (digitalRead(relay) == LOW) && (millis() > (cap_millis + 90000)) && (analogRead(termistor) < 630) ) // Acá hago lo mismo pero le sumo 1.5 minutos al tiempo que capture antes y lo comparo con millis()
{
pwmWrite(PWM_fan_leds, 255); //Si pasados 1.5 minutos el termistor sigue estando por debajo de 630 enciendo los coolers
}
if (digitalRead(relay) == HIGH) // Si los Leds estan apagados
{
flag_millis=false;
}
if ( (analogRead(termistor) >= 620) && (digitalRead(relay) == LOW) ) // Si los Leds están encendidos
{
if (analogRead(termistor)>=730) // Condiciono la lectura maxima del termistor
{
termistor_val=730;
}
if (analogRead(termistor)<=350) // Condiciono la lectura minima del termistor
{
termistor_val=350;
}
termistor_val= map(analogRead(termistor),350,730, 180, 255);
pwmWrite(PWM_fan_leds, termistor_val);
porcentaje_fan_leds= map(termistor_val,180,255,0,100);
}
if( (analogRead(termistor) <= 610) && (digitalRead(relay) == HIGH) ) // Si los Leds están apagados
{
pwmWrite(PWM_fan_leds, 0);
porcentaje_fan_leds=0;
}
Todavía no probé el código y no se si esta bien (no tengo mucha experiencia programando), pero mi pregunta es si en algún momento la función millis() va a ocasionarme algún tipo de problema, porque estuve leyendo y después de unos 50 días se desbordaba lo que no me queda claro.