Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MARCO TEÓRICO
Un módulo RTC (Real Time Clock) o Reloj de tiempo real consiste en un circuito integrado
alimentado por una batería 2032 el cual, en todo momento, registra la fecha, día de la semana
y hora al igual que un reloj digital convencional. Sólo que estos datos únicamente podrán ser
consultados mediante comunicación I2C.
DESCRIPCIÓN
El chip DS1302 contiene un reloj/calendario de tiempo real y 31 bytes de RAM estática. Se
comunica con un microprocesador mediante una interfaz serial simple.
Solamente se requieren 3 alambres para comunicarse con el reloj y la RAM: CE (chip enable),
I/O (data line) y SCLK (serial Clock). Los datos pueden ser transferidos desde y hacia el
reloj/RAM 1byte a la vez o 31 bytes de una sola vez. El DS1302 está diseñado para operar con
muy baja potencia y retiene los datos y la información del reloj con menos de 1 µW.
Para su funcionamiento se necesita un cristal de 32.768 kHz con capacitancia de carga de 6 pF
(vendido por separado). Recuerde que hablamos del Chip, el módulo si tiene el cristal.
Características:
• Cuenta segundos, minutos, horas, mes, día de la semana y año
• Año bisiesto válido hasta el 2100
• Soporta modo de 24 o 12 horas con indicador AM/PM
• RAM estática de 31 bytes
• Empaque: 8-pin DIP
Especificaciones Clave:
• Requerimiento de potencia: 2 a 5 VDC; menos de ~300 nA
• Comunicación: TTL compatible serial sincrónico de 3 líneas
• Temperatura de Operación: -32° a +185° F (-0° a + 70° C)
• Dimensiones: 0.4 x .025 in (10 x 6.4 mm)
Fuente de información:
http://librearduino.blogspot.com/2014/01/rtc-arduino-modulo-reloj-tiempo-real-tutorial.html
Http://www.bolanosdj.com.ar/movil/arduino2/rtcds1302.pdf
DESCRIPCIÓN DE EJEMPLO
Se conectar el RTC DS1302, especialmente 3 pines CLK al pin 5, DAT al pin 4 y RST al pin 2,
básicamente el funcionamiento refiere a configurar una fecha y hora de inicio y posteriormente
arranca el reloj con su ciclo normal para marca fecha y hora sin necesidad de que el Arduino
esté conectado al equipo de cómputo, debido a que cuenta con la batería 2032 para su
alimentación independiente.
Para este ejemplo se requiere la librería ThreeWire.h y RtcDS1302.h que se puede agregar
descargando de los siguientes enlaces:
https://github.com/Makuna/Rtc
MATERIAL A UTILIZAR
• Arduino UNO
• Protoboard
• Cables
• RTC DS1302
• Pantalla LCD 16x02 con I2C
• Batería 2032 3v
DIAGRAMA DE CONEXIÓN
CÓDIGO FUENTE
//SE AGREGA LIBRERÍAS DE LCD
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#include <ThreeWire.h>
#include <RtcDS1302.h>
//SE CREA Y CONFIGURA OBJETO PARA MANEJAR RTC
ThreeWire myWire(4,5,2); //PINES IO, SCLK, CE -> DE RTC DS1302
RtcDS1302<ThreeWire> Rtc(myWire);
void setup () {
// SE INICAR MONITOR SERIE E IMPRIME FECHA Y HORA
Serial.begin(57600);
Serial.print("CONFIGURACIÓN INICIAL ");
Serial.print(__DATE__);
Serial.println(__TIME__);
lcd.begin(16,2); //SE INICIARLIZA LCD
Rtc.Begin();// SE INICIALIZA RTC
RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);//SE CONFIGURA FECHA Y HORA ACTUAL
printDateTime(compiled); //SE IMPRIME FECHA Y HORA
Serial.println();
}
void loop () {
//SE OBTENIE FECHA Y HORA ACTUAL Y SE ACTUALIZA
RtcDateTime now = Rtc.GetDateTime();
printDateTime(now);
Serial.println();
if (!now.IsValid()){
Serial.println("ERROR EN FECHA Y HORA");
}
delay(1000);RETARDO DE 1 SEGUNDO
}
RESULTADO