#include <Wire.h> // incluye libreria para interfaz I2C
#include <RTClib.h> // incluye libreria para el manejo del modulo RTC
#include <LiquidCrystal.h> // Incluye la librería para el LCD 16X2
RTC_DS3231 rtc; // crea objeto del tipo RTC_DS3231
bool evento_inicio = true; // variable de control para inicio de evento con valor true
bool evento_fin = true; // variable de control para finalización de evento con valor true
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // pines RS, E, D4, D5, D6, D7 de modulo 1602A
# define LED 13
// constante LED con valor 3 que corresponde a pin digital 3 https://docs.wokwi.com/vscode/getting-started
# define buzzer 12
// donde se encuentra conectado el modulo de rele
void setup () {
Serial.begin(9600); // inicializa comunicación serie a 9600 bps
pinMode(LED, OUTPUT); // pin 3 como salida
lcd.begin(16, 2); // Inicializa el LCD
lcd.clear();
if (! rtc.begin()) { // si falla la inicializacion del modulo
Serial.println("Modulo RTC no encontrado !"); // muestra mensaje de error
while (1); // bucle infinito que detiene ejecucion del programa
}
}
void loop () {
DateTime fecha = rtc.now(); // funcion que devuelve fecha y horario en formato
// Mostrar información en el LCD
// DateTime y asigna a variable fecha}
lcd.clear();
lcd.print("Hora ");
lcd.print(fecha.hour()); // funcion que obtiene el dia de la fecha completa
lcd.print(":"); // caracter dos puntos como separador
lcd.print(fecha.minute()); // funcion que obtiene los minutos de la fecha completa Serial.print(":"); // caracter dos puntos como separador
lcd.print(":");
lcd.println(fecha.second()); // funcion que obtiene los segundos de la fecha completa
lcd.setCursor(0,1);
lcd.print("Fecha ");
lcd.print(fecha.day()); // funcion que obtiene el dia de la fecha completa
lcd.print("/"); // caracter dos puntos como separador
lcd.print(fecha.month()); // funcion que obtiene los minutos de la fecha completa Serial.print(":"); // caracter dos puntos como separador
lcd.print("/");
lcd.println(fecha.year()); // funcion que obtiene los segundos de la fecha completa
delay(1000); // demora de 1 segund
}