#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
// Dirección I2C del LCD (ajusta si tu módulo es 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Objeto para el RTC DS1307
RTC_DS1307 rtc;
void setup() {
Serial.begin(115200);
// Inicializar LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Iniciando...");
// Inicializar RTC
if (!rtc.begin()) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("RTC no encontrado");
while (1);
}
// Si el RTC está detenido, ajusta la hora actual del sistema
if (!rtc.isrunning()) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("RTC detenido");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
delay(2000);
lcd.clear();
}
void loop() {
DateTime now = rtc.now();
// Mostrar fecha en la primera línea
lcd.setCursor(0, 0);
lcd.print("Fecha: ");
lcd.print(now.day());
lcd.print("/");
lcd.print(now.month());
lcd.print("/");
lcd.print(now.year());
// Mostrar hora en la segunda línea
lcd.setCursor(0, 1);
lcd.print("Hora: ");
lcd.print(now.hour());
lcd.print(":");
lcd.print(now.minute());
lcd.print(":");
lcd.print(now.second());
delay(1000);
}