¡Bienvenidos al tutorial sobre Arduino y el reloj en tiempo real DS3231! En este artículo, exploraremos cómo utilizar el módulo DS3231 para obtener la hora actual con precisión y cómo integrarlo con Arduino para crear proyectos increíbles. ¡Sigue leyendo para aprender cómo aprovechar al máximo este increíble dispositivo!
En este tutorial de Arduino aprenderemos a utilizar el módulo de reloj en tiempo real DS3231. Puede ver el vídeo a continuación o leer el tutorial escrito a continuación.
descripción general
La primera pregunta que surge aquí es por qué realmente necesitamos un RTC separado para nuestro proyecto Arduino cuando el propio Arduino tiene un temporizador integrado. La cuestión es que el módulo RTC funciona con batería y puede realizar un seguimiento del tiempo incluso si reprogramamos el microcontrolador o desconectamos la alimentación principal.
Reloj en tiempo real DS3231
El DS3231 es un reloj en tiempo real rentable y de alta precisión que almacena horas, minutos y segundos, así como información de día, mes y año. También dispone de compensación automática para años bisiestos y meses con menos de 31 días.
El>
El módulo utiliza el protocolo de comunicación I2C, lo que facilita la conexión a la placa Arduino.
Aquí están los esquemas:
Así>
Puede obtener los componentes necesarios para este tutorial de Arduino a través de los siguientes enlaces:
- Reloj en tiempo real DS3231………….. Amazon / Banggood / AliExpress
- Placa Arduino……………………………… Amazon / Banggood / AliExpress
- Cables de puente y placa de pruebas………… Amazon / Banggood / AliExpress
Divulgación: estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
programación
Una vez que hemos conectado el módulo, necesitamos programar la placa Arduino para que funcione con el reloj de tiempo real. Sin embargo, cuando se trata de programar la comunicación entre Arduino y un módulo I2C, el código no es tan pequeño ni tan simple. Afortunadamente, ya existen varias bibliotecas para el RTC DS3231 que se pueden encontrar en Internet.
Para este tutorial utilicé la biblioteca de Henning Karlsen, que se puede encontrar y descargar en su sitio web. www.rinkydinkelectronics.com.
Una vez que hayamos descargado e instalado la biblioteca, podemos usar su primer ejemplo de demostración para habilitar el reloj del módulo RTC. En la sección de configuración del código de muestra de demostración, podemos notar que hay tres líneas que debemos comentar para configurar inicialmente el día de la semana, la hora y las fechas.
// Code from the Demo Example of the DS3231 Library
void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
// Initialize the rtc object
rtc.begin();
// The following lines can be uncommented to set the date and time
//rtc.setDOW(WEDNESDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(1, 1, 2014); // Set the date to January 1st, 2014
}
Code language: Arduino (arduino)
La primera línea se usa para configurar el día de la semana, la segunda línea se usa para configurar la hora en horas, minutos y segundos y la tercera línea se usa para configurar la fecha en días, meses y años.
Una vez que carguemos este código, debemos comentar las tres líneas y cargar el código nuevamente.
// Code from the Demo Example of the DS3231 Library
void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
// Wait one second before repeating
delay (1000);
}
Code language: Arduino (arduino)
Si miramos la sección de bucle del código, podemos ver que ahora estamos usando las tres funciones personalizadas para obtener la información del RTC e imprimirla en el monitor serie. Así aparecen en el monitor de serie.
Incluso>
Ahora nuestro reloj en tiempo real está listo para usar y puede usarse en cualquier proyecto Arduino. Como segundo ejemplo, conecté una pantalla LCD al Arduino e imprimí la hora y la fecha en él.
Aquí>
/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
rtc.begin(); // Initialize the rtc object
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the 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);
}
Code language: Arduino (arduino)
Eso es todo por este tutorial de Arduino. No dude en hacer sus preguntas en la sección de comentarios a continuación.
Tutorial sobre Arduino y reloj en tiempo real DS3231
En este tutorial de Arduino aprenderemos cómo utilizar el Módulo de Reloj en Tiempo Real DS3231. Puedes ver el video a continuación o leer el tutorial escrito más abajo.
Visión General
La primera pregunta que surge es por qué realmente necesitamos un RTC separado para nuestro proyecto de Arduino cuando el propio Arduino tiene un reloj integrado. Bueno, el punto es que el módulo RTC funciona con una batería y puede mantener el seguimiento del tiempo incluso si volvemos a programar el microcontrolador o desconectamos la energía principal.
Reloj en Tiempo Real DS3231
El DS3231 es un Reloj en Tiempo Real de bajo costo y altamente preciso que puede mantener horas, minutos, segundos, así como información de día, mes y año. Además, tiene compensación automática para años bisiestos y para meses con menos de 31 días.
El módulo puede funcionar con 3.3 o 5 V, lo que lo hace adecuado para muchas plataformas de desarrollo o microcontroladores. La entrada de la batería es de 3V y una batería CR2032 típica de 3V puede alimentar el módulo y mantener la información durante más de un año.
El módulo utiliza el protocolo de comunicación I2C, lo que facilita la conexión a la placa Arduino.
Aquí está el esquema de circuito:
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 obtener los componentes necesarios para este Tutorial de Arduino desde los siguientes enlaces:
– DS3231 Reloj en Tiempo Real…………….. Amazon / Banggood / AliExpress
– Placa Arduino …………………………… Amazon / Banggood / AliExpress
– Protoboard y Cables Puente ……… Amazon / Banggood / AliExpress
Programación
Una vez que conectamos el módulo, necesitamos programar la placa Arduino para que funcione 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 ni fácil. Afortunadamente, ya existen varias bibliotecas para el DS3231 RTC que se pueden encontrar en internet.
Para este tutorial, elegí usar la biblioteca creada por Henning Karlsen que se puede encontrar y descargar desde su sitio web, www.rinkydinkelectronics.com.
Una vez que descargamos e instalamos la biblioteca, podemos utilizar su primer ejemplo demo para activar inicialmente el reloj del módulo RTC. En la sección de configuración del código de ejemplo de demostración podemos notar que hay tres líneas que debemos descomentar para establecer inicialmente el día de la semana, la hora y la fecha.
El primer paso es para establecer el día de la semana, el segundo paso es para establecer la hora en horas, minutos y segundos, y el tercer paso es para establecer la fecha en días, meses y años.
Una vez que subimos este código, necesitamos volver a comentar las tres líneas y volver a subir el código nuevamente.
Si observamos la sección de loop del código, podemos ver que ahora, utilizando las tres funciones personalizadas, obtenemos la información del RTC e imprimimos en el Monitor Serie.
Incluso si desconectamos la energía de Arduino y luego la volvemos a conectar y ejecutamos nuevamente el Monitor Serie, podemos notar que el tiempo 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é un LCD a Arduino e imprimí la hora y la fecha en él.
Aquí está el código fuente de este ejemplo:
/*
* Tutorial de Arduino Módulo de Reloj en Tiempo Real DS3231
*
* Creado por Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* Biblioteca DS3231 creada por Henning Karlsen que se puede encontrar y descargar desde su sitio web, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // incluye la Biblioteca LiquidCrystal
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Crea un 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 con la pantalla LCD, y especifica las dimensiones (ancho y alto) del display
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Hora: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Fecha: ");
lcd.print(rtc.getDateStr());
delay(1000);
}
Eso es todo para este Tutorial de Arduino, siéntase libre de hacer cualquier pregunta en la sección de comentarios abajo.
Categorías: Tutoriales de Arduino.
Complemente este artículo con toda la información que tenga, sobre el contenido que lo ha inspirado. Escriba este artículo en formato html para una página web, con etiquetas
¡Interesante! Me encanta aprender sobre Arduino y sus proyectos. ¡Seguro este tutorial me será de mucha ayuda!