martes, 12 de abril de 2016

Reloj en tiempo real Tiny RTC I²C con LCD 2004


El Tiny RTC I²C, es uno de los diferentes relojes en tiempo real con comunicación I²C que nos podemos encontrar en el mercado actual. Está compuesto por un RTC DS1307, una memoria EEPROM 24C32N y una batería CR2032 de 3V, gracias a ello es capaz de almacenar los datos y de seguir en funcionamiento aunque lo desconectemos de la alimentación de nuestro Arduino, y por lo tanto, cuando volvamos a conectarlo, mantendrá intacta tanto la hora como la fecha que le hayamos introducido mediante programación, aunque siempre que estemos trabajando con él es muy recomendable mantenerlo correctamente alimentado.

Tiny RTC I²C

Los valores tanto de hora como de fecha, les vamos a poder visualizar a través de un display LCD 2004, que no es más que un simple LCD que cuenta con cuatro líneas en las que se pueden mostrar hasta 20 caracteres en cada una de ellas. Tanto el LCD 2004 como el RTC van a compartir los pines SCL y SDA  para conectarse con nuestro Arduino mediante comunicación I²C, aunque podríamos incluir en nuestros proyectos hasta 128 dispositivos gracias a este protocolo de comunicación, siempre y cuando respetemos la dirección que tenga asignado cada uno de ellos. 

Otra cosa muy importante a recordar es que dentro de la programación, exactamente en la línea “LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);”, donde pone 0x20, es justo la dirección que va a tener nuestro LCD 2004. Dicha dirección se obtiene midiendo el valor de los pines de dirección A0, A1 y A2, que están justo detrás del módulo LCM 2004 I2C V1 conectado al LCD 2004, con un potenciómetro, que en mi caso están todos conectados a GND (A0=0, A1=0 y A2=0) como se puede apreciar en la siguiente imagen.

Configuración de los pines A0, A1 y A2 (direcciones) en el LCD 2004

El programa simplemente cargará automáticamente la hora y la fecha que tengamos ajustada en nuestro PC al Tiny RTC I²C a través de la conexión serie USB de nuestro Arduino y gracias al uso de la librería "RTClib.h", una vez que comience la ejecución del programa, se mostrará los valores a través del LCD 2004. A parte de mostrarnos la hora y la fecha en tiempo real, este sistema nos permite poder crear diferentes alarmas y eventos en función del instante de tiempo que deseemos, siempre que se contemple dentro de la programación y tengamos correctamente conectado el hardware externo que necesitemos, por ejemplo, que a las 18:00:00h del día 14/04/2016 se encienda una bombilla a través de un Relé conectado a uno de los pines digitales de salida de los que nuestro Arduino dispone, para que posteriormente se apague a las 18:30:00h. Para más información debéis revisar el POST donde se explica detenidamente el manejo de los Relés.



Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         RTC DS1307.

·         Batería de 3V CR2032.

·         Módulo LCM 2004 I2C V1.

·         Display 20x4 LCD 2004.

·         Protoboard.

·         Cables de conexión.


Código del programa:



Video:


2 comentarios:

  1. Muy Buen hice uno que ya registro las datos en mysql

    ResponderEliminar
  2. Gracias por esta referencia. saludos. Tengo el plan de usar esta base para temporizar varias salidas para controlar cosas.

    ResponderEliminar