0% encontró este documento útil (0 votos)
74 vistas15 páginas

Introducción al Módulo RTC DS3231

Un reloj de tiempo real (RTC) permite obtener mediciones precisas del tiempo en unidades como segundos, minutos y horas. Los RTC utilizan un cristal resonador y electrónica para medir el tiempo de forma más precisa que los relojes electrónicos normales. Los RTC como el DS1307 y el DS3231 se usan comúnmente con Arduino para aplicaciones que requieren conocer la fecha y hora exactas.

Cargado por

brandon
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas15 páginas

Introducción al Módulo RTC DS3231

Un reloj de tiempo real (RTC) permite obtener mediciones precisas del tiempo en unidades como segundos, minutos y horas. Los RTC utilizan un cristal resonador y electrónica para medir el tiempo de forma más precisa que los relojes electrónicos normales. Los RTC como el DS1307 y el DS3231 se usan comúnmente con Arduino para aplicaciones que requieren conocer la fecha y hora exactas.

Cargado por

brandon
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

¿QUÉ ES UN RELOJ DE TIEMPO REAL RTC?

Un reloj de tiempo real (RTC) es un dispositivo electrónico que permite obtener mediciones
de tiempo en las unidades temporales que empleamos de forma cotidiana.

El término RTC se creó para diferenciar este tipo de relojes de los relojes electrónicos
habituales, que simplemente miden el tiempo contabilizando pulsos de una señal, sin existir
relación directa con unidades temporales.

Por el contrario, los RTC son más parecidos a los relojes y calendarios que usamos
habitualmente, y que funcionan con segundos, minutos, horas, días, semanas, meses y
años.

Los RTC normalmente están formados por un resonador de cristal integrado con la
electrónica necesaria para contabilizar de forma correcta el paso del tiempo. La electrónica
de los RTC tiene en cuenta las peculiaridades de nuestra forma de medir el tiempo, como
por ejemplo el sistema sexagesimal, los meses con diferentes días, o los años bisiestos.

¿PARA QUE SIRVE Y COMO FUNCIONA?

Los RTC aportan la ventaja de reducir el consumo de energía, aportar mayor precisión y
liberar a Arduino de tener que realizar la contabilización del tiempo. Además,
frecuentemente los RTC incorporan algún tipo de batería que permite mantener el valor del
tiempo en caso de pérdida de alimentación.
En el mundo de la electrónica casera y Arduino existen dos RTC habituales el DS1307 y el
DS3231, ambos fabricados por Maxim (anteriormente Dallas Semiconductor). El DS3231
tiene una precisión muy superior y puede considerarse sustituto del DS1307.

En el modelo DS1307 las variaciones de temperatura que afectan a la medición del


tiempo de los cristales resonadores se traducen en errores en un desfase acumulado. Esto
hace que el DS1307 sufra de un desfase temporal, que puede llegar a ser 1 o 2 minutos al
día.

Para solucionarlo, el DS3231 incorpora medición y compensación de la


temperatura garantizando una precisión de al menos 2ppm, lo que equivale a un desfase
máximo 172ms/día o un segundo cada 6 días. En el mundo real normalmente consiguen
precisiones superiores, equivalente a desfases de 1-2 segundos al mes.

La comunicación en ambos modelos se realiza a través del bus I2C, por lo que es sencillo
obtener los datos medidos. La tensión de alimentación es 4.5 a 5.5 para el DS1307, y 2.3
a 5.5V para el DS3231.

Frecuentemente estos módulos también incorporan una pequeña EEPROM AT24C32, que
puede ser empleada para almacenar registros y mediciones. En el caso del DS3231, la
medición de temperatura también está disponible, aunque tiene una precisión baja ±3ºC, y
el tiempo de adquisición puede durar hasta 1 segundo.

También incorporan una batería CR2032 para mantener el dispositivo en hora al retirar la
alimentación. Esta batería debería ser capaz de mantener alimentado durante varios años
al DS1307, y durante meses al DS3231. La tensión de alimentación de batería es de 2.0 a
3.5 para el DS1307 y de 2.3 a 5.0 para el DS3231.

Los RTC son dispositivos ampliamente utilizados en electrónica. Todos los ordenadores
personales, servidores, tablets, y smartphone incorporan uno. También son muy frecuentes
en sistemas embebidos y, en general, en multitud de dispositivos que requieren realizar un
registro del tiempo.

En nuestros proyectos de electrónica frecuentemente necesitáramos un RTC. Por ejemplo,


podemos temporizar el encendido de luces o sistemas de riego, realizar un datalogger, o
incluso encender y apagar el propio Arduino para ahorra batería.
ESQUEMA DE MONTAJE

La conexión es sencilla y similar tanto para el DS1307 como el DS3231. Simplemente


alimentamos el módulo desde Arduino mediante 5V y Gnd. Por otro lado, conectamos los
pines del bus I2C a los correspondientes de Arduino.

La conexión de un módulo con DS3231 sería la siguiente,

DIAGRAMA DEL CIRCUTO


CIRCUITO EN FISICO
EJEMPLOS DE CÓDIGO

Para realizar la lectura del DS1307 y del DS3231 usaremos la librería desarrollada por
Adafruit válida para ambos modelos, disponible en este enlace. La librería proporciona
ejemplos de código, que resulta aconsejable revisar.

OBTENER LA FECHA Y HORA

El primer ejemplo emplea el RTC para obtener los datos de fecha y hora actual.
Posteriormente se emplean estos valores para mostrarlos por puerto serie. También se
muestra como fijar la fecha y la hora, y detectar la perdida de energía.

CODIGO DEL PROGRAMA


PRUEBA DE FUNCIONAMIENTO
FECHA Y HORA MOSTRADOS EN EL PUERTO SERIAL EN TIEMPO REAL
USANDO UN RTC PARA CONTROLAR UN RELÉ
En ciertas ocasiones necesitamos realizar acciones de forma coordinada o a una hora
determinada. Es en estos casos cuando necesitamos conocer la fecha y hora actualizada,
cosa que podemos hacer con un RTC. Ese dispositivo desconocido para muchos y adorado
por otros que permite a nuestro microcontrolador conocer la fecha y la hora en base al área
de tiempo en el que te encuentres.

Por ejemplo, podemos llegar a necesitar activar un relé a una hora concreta. Imagina
despertarte a las 07:00 de la mañana y justo cuando llegues a la cocina acabe de caer a tu
taza de la suerte la última gota de tu café favorito. Esta es una de las míticas e infinitas
aplicaciones para las cuales puedes necesitar un RTC. Así que ya sabes, pon un RTC en
tu vida.

Cuando se trata de que el microcontrolador sepa qué hora exacta es, podemos recurrir a
distintas técnicas, pero la reina indiscutible es usar un reloj de tiempo real.

Podemos conectar un dispositivo a Internet y obtener la hora desde un servidor NTP, sin
embargo, el RTC sigue siendo una alternativa muy interesante para aquellos dispositivos
que no están conectados. Otra opción puede ser combinar estas dos tecnologías, podemos
tener un RTC que una vez al día se sincroniza con un servidor NTP.

Controlar un relé con un RTC

En este caso vamos a ver un ejemplo que nos permitirá activar un pin digital a una hora
concreta y desactivarlo a otra hora también definida. Usaremos la librería RTClib.h la cual
puedes descargar desde aquí.

La conexión entre el RTC y Arduino se suele realizar por medio de I2C o de SPI.

En el caso del I2C conectaremos el pin SDA del módulo RTC con el pin SDA de Arduino y
lo mismo para el SCL.

En caso de usar SPI, las conexiones son idénticas, solo que con los nombres MISO, MOSI,
SCK y CS, lo conectaremos siguiendo los nombres.

Las líneas I2C deben estar unidas a Vcc mediante dos resistencias PullUp, sin embargo,
esto es algo que no te debe preocupar en exceso, probablemente la resistencia PullUp esté
ya integrada en el propio módulo del RTC.

DIAGRAMA DEL CIRCUITO


CIRCUITO EN FISICO
CODIGO DEL PROGRAMA
PRUEBA DE FUNCIONAMIENTO
En el programa está definido que se active el relé cada día a las 16:08 horas y que se
apague alas 16:09 horas lo cual la hora puede cambiar ala hora que sea solo se puso esa
hora para hacer la prueba. Cuando sean las 16:08 horas el relé se va activar durante un
minuto y se desactivara a las 16:09 horas, a su vez también mostrara un mensaje en el
puerto serial indicando que el relé se activo o se desactivo según sea el caso.

MOMENTO EN EL QUE EL RELÉ SE ACTIVA.


MOMENTO EN EL QUE EL RELÉ SE DESACTIVA.
CONCLUCION

Los relojes en tiempo real le permiten realizar proyectos en los que cualquier proceso debe
comenzar según un cronograma. En casi cualquier proyecto relativamente complejo para
uso práctico existe tal necesidad; no importa si se trata de un sistema de riego automático
para plantas o un sistema de control de procesos en producción.

Debido al bajo costo de las piezas y la simplicidad de la conexión y la programación, ahora


cualquiera puede implementar dichos sistemas.

REFERENCIAS

[Link]

[Link]

También podría gustarte