Termostato electrónico con PIC y LCD


Gracias a la sonda de temperatura LM35 hemos podido realizar este pequeño pero muy versátil termostato que sirve tanto para calentar como para enfriar.

El circuito centra su funcionamiento en el micro controlador PIC16F870 el cual dispone en su interior de convertidor AD de 10 bits de resolución. Cuatro pulsadores permiten establecer el punto de activación y desactivación del relé. Estos parámetros se almacenan automáticamente en la EEPROM interna del PIC por lo que no deben ser recargados al quitar la corriente. El LCD, una pantalla de 2 líneas x 16 caracteres indica en su parte superior la temperatura actual medida y en su parte inferior los parámetros inferior y superior. Un buzzer (del tipo con oscilador) pita por 100ms cada vez que se presiona un pulsador.

El principio de funcionamiento es muy simple. Si la temperatura cae por debajo del límite inferior se activa el relé. Si la temperatura sobrepasa el límite superior se desactiva el relé. Dado que ambos puntos son seteables podemos lograr el punto de histéresis (estado intermedio) que queramos. 

Si vamos a emplear este equipo para controlar, por ejemplo, una heladera deberemos conectar el compresor entre los contactos Común y Normal cerrado del relé. De esta forma cuando la temperatura alcance el tope superior del seteo se encenderá el compresor y, cuando de tanto enfriar, alcance el tope inferior lo apagará.

Si, en cambio, vamos a usar esto para calefaccionar, deberemos conectar el elemento calefactor entre los contactos Común y Normal Abierto del relé. De esta forma, cuando la temperatura caiga bajo el seteo inferior el calefactor arrancará y, cuando de tanto calentar, supere el tope el calefactor será desconectado.

A primera vista el código fuente parece algo complicado por lo extenso, pero es muy simple de entender. Primeramente se definen las posiciones de memoria a utilizar y los bits a emplear. Luego se inicializan las posiciones que así lo requieran y se lee de la EEPROM interna los seteos. Seguidamente se inicializa el LCD y se completan los caracteres fijos. Tras la primera conversión se coloca la temperatura en pantalla así como los seteos. Estos tres parámetros (Temp. actual, seteo inferior y seteo superior) son los únicos datos que se modifican en el LCD. Se compara si la temperatura esta por debajo de la mínima para conectar el relé o por sobre la máxima para desconectarlos. Luego se controlan las teclas de mando, si alguna es accionada se actúa en consecuencia y por último cicla al principio donde se toma una nueva muestra de la temperatura.

Disponible también el código compilado listo para cargar en el micro.