Arduino - Reloj LCD
En este tutorial, vamos a aprender a hacer un reloj LCD mediante:
- Lectura de la fecha y la hora desde el módulo RTC DS3231 y mostrarla en un LCD I2C 16x2
- Lectura de la fecha y la hora desde el módulo RTC DS1307 y mostrarla en un LCD I2C 16x2
Puedes elegir entre dos módulos RTC: DS3231 y DS1307. Consulta DS3231 vs DS1307
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.
Acerca del módulo RTC LCD, DS3231 y DS1307
Si no conoces LCD, DS3231 y DS1307 (disposición de pines, cómo funcionan, cómo programarlos ...), aprende sobre ellos en los siguientes tutoriales:
Instalar bibliotecas de LCD y RTC
- Navega al icono de Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca “LiquidCrystal I2C”, luego encuentra la biblioteca LiquidCrystal_I2C de Frank de Brabander.
- Haz clic en el Instalar botón para instalar la biblioteca LiquidCrystal_I2C.

- Busca “RTClib”, luego localiza la librería RTC de Adafruit. Esta librería funciona con DS3231 y DS1307.
- Haz clic en el botón Instalar para instalar la librería RTC.

- Puede que se le solicite instalar algunas otras dependencias de bibliotecas
- Haga clic en el botón Instalar Todo para instalar todas las dependencias de las bibliotecas.

Lectura de la hora desde el módulo RTC DS3231 y mostrarla en la pantalla LCD
Diagrama de cableado

This image is created using Fritzing. Click to enlarge image
Código de Arduino - DS3231 y LCD
/*
* Este código de Arduino fue desarrollado por es.newbiely.com
* Este código de Arduino se proporciona al público sin ninguna restricción.
* Para tutoriales completos y diagramas de cableado, visite:
* https://es.newbiely.com/tutorials/arduino/arduino-lcd-clock
*/
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight(); // open the backlight
// SETUP RTC MODULE
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (true)
;
}
// automatically sets the RTC to the date & time on PC this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime now = rtc.now();
int year = now.year();
int month = now.month();
int day = now.day();
int hour = now.hour();
int minute = now.minute();
int second = now.second();
lcd.clear();
lcd.setCursor(0, 0); // start to print at the first row
lcd.print("Date: ");
lcd.print(year);
lcd.print("/");
lcd.print(month);
lcd.print("/");
lcd.print(day);
lcd.setCursor(0, 1); // start to print at the second row
lcd.print("Time: ");
lcd.print(hour);
lcd.print(":");
lcd.print(minute);
lcd.print(":");
lcd.print(second);
delay(1000); // Update every second
}
Pasos R\u00e1pidos
- Copie el código anterior y ábralo con Arduino IDE
- Haga clic en el botón Subir en Arduino IDE para subir el código al Arduino
- Ver el resultado en la pantalla LCD
Lectura de la hora desde el módulo RTC DS1307 y mostrarla en la pantalla LCD
Diagrama de cableado

This image is created using Fritzing. Click to enlarge image
Código de Arduino - DS1307 y LCD
/*
* Este código de Arduino fue desarrollado por es.newbiely.com
* Este código de Arduino se proporciona al público sin ninguna restricción.
* Para tutoriales completos y diagramas de cableado, visite:
* https://es.newbiely.com/tutorials/arduino/arduino-lcd-clock
*/
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows
RTC_DS1307 rtc;
void setup() {
Serial.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight(); // open the backlight
// SETUP RTC MODULE
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (true)
;
}
// automatically sets the RTC to the date & time on PC this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime now = rtc.now();
int year = now.year();
int month = now.month();
int day = now.day();
int hour = now.hour();
int minute = now.minute();
int second = now.second();
lcd.clear();
lcd.setCursor(0, 0); // start to print at the first row
lcd.print("Date: ");
lcd.print(year);
lcd.print("/");
lcd.print(month);
lcd.print("/");
lcd.print(day);
lcd.setCursor(0, 1); // start to print at the second row
lcd.print("Time: ");
lcd.print(hour);
lcd.print(":");
lcd.print(minute);
lcd.print(":");
lcd.print(second);
delay(1000); // Update every second
}
Pasos R\u00e1pidos
- Copie el código anterior y ábralo con el IDE de Arduino
- Haga clic en el botón Subir en el IDE de Arduino para cargar el código al Arduino
- Vea el resultado en la pantalla LCD
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.