Domina Arduino con RTC DS3231: Tutorial paso a paso completo
En este tutorial de Arduino aprenderemos a usar el Módulo Reloj en Tiempo Real DS3231. Puedes ver el siguiente vídeo o leer el tutorial escrito a continuación. La primera pregunta que surge aquí es por qué realmente necesitamos un RTC separado para nuestro proyecto de Arduino cuando el propio Arduino tiene un cronómetro incorporado. Bueno, el punto es que el módulo RTC funciona con una batería y puede mantener la hora incluso si reprogramamos el microcontrolador o desconectamos la alimentación principal. El DS3231 es un Reloj en Tiempo Real de bajo costo y alta precisión que puede mantener horas, minutos y segundos, así como día, mes e información de año. También tiene compensación automática para años bisiestos y para meses con menos de 31 días. El módulo puede funcionar tanto a 3,3 V como a 5 V, lo que lo hace adecuado para muchas plataformas de desarrollo o microcontroladores. La entrada de batería es de 3 V y una batería típica CR2032 de 3 V puede alimentar el módulo y mantener la información por más de un año. El módulo usa el Protocolo de Comunicación I2C, lo que hace que la conexión a la placa Arduino sea muy fácil. Aquí está el esquema del circuito: Así que todo lo que necesitamos son 4 cables: los pines VCC y GND para alimentar el módulo, y los dos pines de comunicación I2C, SDA y SCL. Puedes conseguir los componentes necesarios para este tutorial de Arduino en los enlaces a continuación: Una vez conectado el módulo, necesitamos programar la placa Arduino para trabajar con el Reloj en Tiempo Real. Sin embargo, cuando se trata de programar una comunicación entre Arduino y un módulo I2C, el código no es tan pequeño y fácil. Por suerte, ya hay varias librerías para el RTC DS3231 que se pueden encontrar en internet. Para este tutorial elegí usar la Librería hecha por Henning Karlsen que se puede encontrar y descargar de su sitio web, www.rinkydinkelectronics.com. Así que una vez descargamos e instalamos la librería, podemos usar su primer ejemplo demo para activar inicialmente el reloj del módulo RTC. En la sección setup del código del ejemplo demo podemos notar que hay tres líneas que necesitamos descomentar para establecer inicialmente el día de la semana, la hora y la fecha. La primera línea es para establecer el día de la semana, la segunda línea es para establecer la hora en horas, minutos y segundos, y la tercera línea es para establecer la fecha en días, meses y años. Una vez subimos este código, necesitamos comentar de nuevo las tres líneas y volver a subir el código. Si echamos un vistazo a la sección loop del código, podemos ver que ahora, usando las tres funciones personalizadas, obtenemos la información del RTC e la imprimimos en el Monitor Serial. Así es como aparecen en el Monitor Serial. Ahora, incluso si desconectamos la alimentación del Arduino y luego la reconectamos y ejecutamos el Monitor Serial de nuevo, podemos notar que la hora sigue avanzando sin reiniciarse. Así que ahora tenemos nuestro Reloj en Tiempo Real funcionando y podemos usarlo en cualquier proyecto de Arduino. Como segundo ejemplo, conecté una LCD al Arduino e imprimí la hora y la fecha en ella. Aquí está el código fuente de este ejemplo: Eso es todo para este tutorial de Arduino, siéntete libre de hacer cualquier pregunta en la sección de comentarios a continuación.Resumen

DS3231 Reloj en Tiempo Real


Programación
// Código del Ejemplo Demo de la Librería DS3231
void setup() {
// Configurar conexión Serial
Serial.begin(115200);
// Descomenta la siguiente línea si usas Arduino Leonardo
//while (!Serial) {}
// Inicializar el objeto rtc
rtc.begin();
// Las siguientes líneas pueden descomentarse para establecer fecha y hora
//rtc.setDOW(WEDNESDAY); // Establecer Día-de-Semana a MIÉRCOLES
//rtc.setTime(12, 0, 0); // Establecer hora a 12:00:00 (formato 24h)
//rtc.setDate(1, 1, 2014); // Establecer fecha a 1 de Enero, 2014
}Lenguaje: Arduino (arduino)// Código del Ejemplo Demo de la Librería DS3231
void loop() {
// Enviar Día-de-Semana
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Enviar fecha
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Enviar hora
Serial.println(rtc.getTimeStr());
// Esperar un segundo antes de repetir
delay(1000);
}Lenguaje: Arduino (arduino)

/*
* Tutorial Módulo Reloj en Tiempo Real Arduino DS3231
* Creado por Dejan Nedelkovski, www.HowToMechatronics.com
* Librería DS3231 hecha por Henning Karlsen, descargable en www.rinkydinkelectronics.com
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // incluye la librería LiquidCrystal
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Crea objeto LC. Parámetros: (rs, enable, d4, d5, d6, d7)
void setup() {
rtc.begin(); // Inicializa el objeto rtc
lcd.begin(16,2); // Inicializa la interfaz a la pantalla LCD, y especifica las dimensiones (ancho y alto) del display
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(1000);
}Lenguaje: Arduino (arduino)
Proceso de manufactura
- Reloj POV con Arduino: Construye una pantalla LED de persistencia de visión
- Crea un Cerrojo RFID Seguro con Arduino – Guía Paso a Paso
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
- Construye un Reloj Berlín con Arduino UNO – Reloj de Matriz LED DIY
- Reloj Digital TM1637 con Configuración de Hora y Alarma - Prototipo Arduino Nano
- eDOT: Reloj Preciso y Estación Meteorológica Arduino con Control IR Integrado
- Reloj Meteorológico Arduino en Tiempo Real: Pantalla OLED para Hora, Fecha y Temperatura
- Proyecto Sensor de Huella Dactilar con Arduino Nano – Tutorial Paso a Paso
- Construye un Portátil Raspberry Pi 3 y Arduino: Guía Paso a Paso
- Detección de Cambios 3D en Tiempo Real por Robot Mejora Seguridad del Soldado vía RA