Reloj RTC I2C con Arduino

Valoración del Usuario:  / 0
MaloBueno 

th rtc arduinoEn este segundo tutorial sobre Arduino les enseñaremos a usar un modulo RTC (Real Time Clock) mediante el bus I2C. Usaremos una librería que nos facilitará la comunicación entre este modulo y Arduino. El módulo que emplearemos es el Tiny RTC I2C que incorpora un reloj de tiempo real DS1307, una batería para memorizar los datos y una pequeña memoria EEPROM 24C32.

Arduino incorpora sus propios temporizadores, uno de ellos es millis(). Muchos usuarios se preguntaran para que usar un modulo externo temporizador, la respuesta es sencilla, los temporizadores de Arduino son contadores que cuando se inician empiezan desde 0, por ejemplo millis() se inicia una vez conectemos la alimentación de Arduino, es el contador encargado de indicar cuanto tiempo lleva encendido Arduino, y una vez se pierde la alimentación, este valor desaparece. Podemos entender entonces, que para algunos proyectos que necesitemos usar el tiempo como variable, estos contadores no nos servirían y necesitaríamos un RTC externo que posea una batería para almacenar los datos.

RTC DS1307 06Módulo Tiny RTC I2C.

Comenzaremos conectando el modulo a nuestra placa Arduino, es sencillo de conectar ya que usa una comunicación I2C.

RTC DS1307 09
Esquema eléctrico Arduino Mega.

RTC DS1307 08
Esquema gráfico Arduino Mega.

RTC DS1307 04
Una vez conectado, tendremos que añadir la librería RTClib a la IDE de Arduino. La descargaremos y descomprimiremos en C:/diretorio arduino/libraries

Esta librería se apoya en la librería Wire para la comunicación I2C, por lo que tendremos que hacer referencia a ella he incluirla en nuestro código. No os preocupeis, la librería Wire ya viene por defecto añadida a la IDE. RTClib es compatible con cualquier modulo RTC que usel el chip DS1307.

Código

#include <Wire.h> 
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Wire.begin(); // Inicia el puerto I2C
RTC.begin(); // Inicia la comunicación con el RTC
RTC.adjust(DateTime(__DATE__, __TIME__)); // Establece la fecha y hora (Comentar una vez establecida la hora)
Serial.begin(9600); // Establece la velocidad de datos del puerto serie
}
void loop () {
}

Descripción del código

RTC.adjust(DateTime(__DATE__, __TIME__));

Joomla SEF URLs by Artio

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso.

Acepto