Ok
Al llegar a la consigna de temperatura el programa manda la orden de paro, poniendo a "0" el pin de salida , pero ocurre lo siguiente, debido a la inercia termica del calefactor, la temperatura seguirá subiendo , y lo mismo ocurrirá el en caso contrario, cuando en la rampa de bajada de la temperatura, el programa detecte "low temp" activara el pin correspondiente, tardando un cierto tiempo en superar de nuevo la inercia térmica del calefactor.
Esto, en mi caso, lo solucione haciendo que el sistema detectara la distancia a la consigna (los grados que faltan o sobran de la temperatura leída a la consigna) DIFERENCIAL.
Una vez sabemos cuanto estamos tanto por arriba como por abajo, a través de una modulación en PWM, la señal del calefactor sera proporcional a la diferencia.
Tb implemente una rutina de aprendizaje del sistema, de forma que el mismo programa "aprende" cual debe ser la señal de corrección de error, con lo que el ancho del pulso PWM, se adecua a la demanda de temperatura, tanto en bajada como en subida.
Cuanto mas tiempo este el sistema funcionando, mejor sera la corrección del error
P---salida proporcional al error
I---salida integral del error
D--salida diferencial al error
Pero en todo caso, como ya te comente, no creo que necesites tal precisión en tu proyecto, pero si necesitas las subrrutina , no dudes en pedírmela..
juanfra