Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net
Descripcin
Este es un reloj de tiempo real con batera de respaldo (RTC Real Time Clock) que permite al
microcontrolador mantener tiempo; hora y fecha, an si el circuito electrnico en el que se
encuentra se queda sin energa. Es perfecto para llevar registro de datos, reloj de capacidad,
sellado de tiempo, temporizadores y alarmas, etc. Este RTC se usa en conjunto con un
microcontrolador.
El DS1307 RTC es el ms popular, y funciona mejor con los microcontroladores basados en 5V
como el Arduino. Un reloj de tiempo real es bsicamente un reloj que funciona con una batera y
mantiene la hora, incluso cuando hay un corte de energa. El uso de un RTC, puede realizar un
seguimiento de los plazos largos, aunque se reprogramar el microcontrolador al desconectarlo del
USB o de un enchufe de alimentacin.
La imagen de arriba muestra una placa base con un reloj de tiempo real y dentro hay una batera
de litio, es por eso que es tan grande.
En conjunto se utiliza una pila de botn (batera de litio 3V CR2025 o CR2032), el DS1307 se
activara lo largo de mucho tiempo, incluso cuando el Arduino se apague o se reprograme.
Librera de Arduino
Cualquier microcontrolador de 5V con protocolo de comunicacin i2c integrado puede utilizar
fcilmente el DS1307 y el ms usado con este es el Arduino. Para la biblioteca RTC, se debe utilizar
la librera RTClib de JeeLab, permite obtener y establecer el tiempo de un DS1307 (originalmente
escrito por JeeLab). Lo pueden descargar del siguiente link:
https://github.com/adafruit/RTClib
Para saber cmo instalar una librera visite el siguiente link
VCC y GND: Se utilizan 5V para alimentar el circuito integrado RTC cuando se desea
consultar por el tiempo desde el microcontrolador. Si no hay seal de 5V, el chip se va a
dormir usando la energa de la batera de litio de 3V para efectuar la copia de seguridad.
SCL es el pin de reloj i2c - es necesario para la comunicacin con el RTC
SDA es el pin de datos I2C - es necesario para la comunicacin con el RTC
En caso de utilizar Arduino UNO o LEONARDO el cableado deber de ser de la siguiente manera:
En caso de Arduino UNO y LEONARDO los pines de comunicacin I2C se encuentran cerca del
pulsador de RESET y corresponden a SCL y SDA:
LECTURA DE HORA
//Ejemplo bsico para la lectura de la hora y fecha
//del mdulo DS1307
//www.ABCelectronica.net
#include <Wire.h> //llamado de libreria
#include "RTClib.h" //llamado de libreria DS1307
RTC_DS1307 RTC;
void setup() {
Serial.begin(57600);
Serial.println("Inicio de lectura");
Wire.begin();
RTC.begin();
}
void loop() {
DateTime now = RTC.now();// funcion que regresa tiempo
Serial.print(now.year(), DEC);//ao
Serial.print('/');
Serial.print(now.month(), DEC);//mes
Serial.print('/');
Serial.print(now.day(), DEC);//dia
Serial.print(' ');
Serial.print(now.hour(), DEC);//hora
Serial.print(':');
Serial.print(now.minute(), DEC);//minuto
Serial.print(':');
Serial.print(now.second(), DEC);//segundo
Serial.println();
delay(950);
}
Utilizando la funcin callnow() esta nos regresa el objeto DateTime el cual describe el ao, mes,
da, hora, minuto y segundo. Dentro de la librera se encuentran RTC.year() que proporciona el
ao, RTC.hour() que proporciona la hora y as sucesivamente.
Esto significa que el RTC no posee la hora, por lo que el tiempo ser de 0:0:0, debido a que
anteriormente no tena la batera instalada o no fue escrita la hora y fecha. Por lo que una vez
instalada la batera se recomienda no quitarla para no perder la hora.
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(950);
}
Permite tomar la fecha y hora segn el equipo (PC) en que se encuentra conectado el Arduino y
permite programar el RTC. Por lo que se debe tomar en cuenta que la PC tenga la hora correcta.
OJO: Una vez abierto el software deber de cargar inmediatamente el cdigo de escritura, ya que
si lo compila y lo carga ms tarde, el reloj se apagar y el tiempo se encontrara atrasado.
Una vez cargado el cdigo, en el monitor serial (herramientas>monitor serial) se observara algo
como lo siguiente:
Una vez realizada la escritura de la hora en el RTC, se recomienda cargar nuevamente el codigo
de LECTURA u otro codigo que no posea las tres lineas adicionales ya que puede existir una
sobreescritura cada vez que se conecte el arduino a la PC.
Tomar en cuenta que los baudios del monitor serial deben ser iguales al de cdigo programacin
ya que de lo contrario aparecern smbolos de modo aleatorio.