Archivo de la etiqueta: ds1624

Reloj termómetro con PIC 16F628

Recientemente he creado un reloj-termómetro hecho con un PIC 16F628A, un sensor de temperatura i2c DS1624, un reloj en tiempo real i2c DS1307 y un LCD de 16×2 compatible con Hitachi HD44780.

El sistema, una vez encendido, muestra la fecha y hora, la temperatura junto con los valores máximo y mínimo que alcanza y finalmente un mensaje personalizado. Aquí hay un video que he grabado del mismo:

El esquema del circuito es el siguiente:

Y desde aquí os podeis bajar el .hex y el código fuente (CCS C)

proyecto

La fecha y hora se configuran con sólo un botón pulsador que está conectado a RB0 y que funciona por temporización e indexación. Es decir, si tu pulsas la primera vez el botón, se mostrará en el LCD la fecha y hora y el indice 0, que indica que vas a modificar el día, entónces si pulsas dentro de los dos segundos siguientes el botón, el día se incrementará, si no lo pulsas, el indice se incrementará a 1 y se podrán modificar los meses de igual manera. Así hasta llegar al indice 5 que son los segundos y después mostrará la fecha y hora actualizadas renovandose cada segundo.

A los diez segundos de mostrar la fecha y hora se muestra la temperatura actual junto con los valores máximo (M) y minimo (m) que se han alcanzado. Si son los 30 primeros segundos de medianoche se resetearán esos valores.

A los diez segundos de mostrar la temperatura, se mostrará un mensaje personalizado que se ha guardado en la EEPROM al programar el PIC. Pasados cinco segundos vuelve a mostrar la fecha y hora.

El PIC usa el oscilador interno de 4Mhz. El programa ocupa un 98% de su memoria de código. Aunque en el video vereis que hay un interruptor de encendido/apagado, un led indicador de encendido/apagado y unas resistencias variables para el LCD, con lo que hay en el esquema es suficiente para funcionar. Vcc son 5 voltios conseguidos a través de un 7805.