Reloj con Arduino y el módulo Tiny RTC I2C

Hola, recientemente compre en Dealextreme el módulo Tiny RTC I2C para Arduino, una vez puesto en marcha y configurado nos permite conocer la hora y día actual. Este modulo se compone entre otros elementos de un reloj DS1307, una memoria EEPROM 24C32AN y un soporte para pila de litio CR2032.

Tiny RTC I2C

Gracias a la pila de litio y a la memoria EEPROM el módulo almacena los datos y sigue en funcionamiento aunque desconectemos Arduino y por lo tanto cuando lo volvamos a encender seguiremos teniendo la hora correcta. (He detectado fallos cuando el módulo se desconecta de la alimentación.)

SOLUCION AL PROBLEMA (Gracias a Daniel):

http://proyectosarduinoylabview.blogspot.com/2013/10/configurando-adecuadamente-el-modulo.html

(El programa y conexiones siguientes están sin actualizar y continúan dando error)

Las conexiones son muy sencillas:

  • SCL –> Pin analógico A5
  • SDA –> Pin analógico A4
  • VCC –> 5V
  • GND –> GND

RTC

Este módulo tiene dos grupos de conexiones P2 y P1, son exactamente las mismas excepto en el caso de BAT y SQ que no están repetidas. Las conexiones SQ, DS y BAT no las vamos a utilizar.

Antes de cargar el programa necesitamos descargar e instalar la siguiente librería de Jeelab: RTClib, tendremos que cambiar el nombre de la carpeta RTClib-master por RTClib.

Una vez instalada la librería cargamos el programa para leer los datos y enviarlos por el puerto serie (En los comentarios del programa esta indicada la linea que hay que editar para configurar el reloj con la hora y día actual):

//Arduino con Tiny RTC I2C http://zygzax.com
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

void setup () {
 //Inicializamos el puerto serie, wire y el modulo RTC
 Serial.begin(9600);
 Wire.begin();
 RTC.begin();
 //Si quitamos el comentario de la linea siguiente, se ajusta la hora y la fecha con la del ordenador
 //RTC.adjust(DateTime(__DATE__, __TIME__));
}
 
void loop () {
 DateTime now = RTC.now();
 //Imprimimos el dia
 Serial.print(now.day(), DEC);
 Serial.print('/');
 //Imprimimos el mes
 Serial.print(now.month(), DEC);
 Serial.print('/');
 //Imprimimos el año
 Serial.print(now.year(), DEC);
 Serial.print(' ');
 //Imprimimos la hora
 Serial.print(now.hour(), DEC);
 Serial.print(':');
 //Imprimimos los minutos
 Serial.print(now.minute(), DEC);
 Serial.print(':');
 //Imprimimos los segundos
 Serial.print(now.second(), DEC);
 Serial.println();
 //Comprobamos la hora y la enviamos por el puerto serie cada 3s
 delay(3000);
}

Los mensajes que deberíamos recibir en la ventana del monitor serie en el ordenador deberían ser similares a los siguientes:

monitorserie

Fuentes: Adafruit Github – Adafruit

21 pensamientos en “Reloj con Arduino y el módulo Tiny RTC I2C

  1. Joel

    He notado que algunos componentes del BUS IC2 necesitan ser soldados , para que trabajen bien, es decir soldadas las patillas del header.

  2. Pingback: Reloj RTC I2C con Arduino | Fotologger Project

Los comentarios están cerrados.