#include <RTClib.h> //Incluimos la librería del RTC
#include <LiquidCrystal.h> //Incluimos la librería del LCD
int Led = 7; //Establecemos el pin 13 al Led
int Contador = 0; //Creamos una variable de un contador
RTC_DS1307 rtc; //Creamos una variable de RTC
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
void setup()
{
pinMode(Led, OUTPUT); //Establecemos el Led como output
Serial.begin(9600); //Conexión serie con la terminal
rtc.begin(); //Encendemos el RTC
lcd.begin(16, 2); //Encendemos el LCD con 16 carácteres en las dos filas
}
void loop()
{
DateTime now = rtc.now(); //Verificamos la fecha y hora actual
//Si la fecha y hora es correcta, aviso de operativo durante 10 segundos
if (now.year() == 2024 && now.month() == 5 && now.day() == 7 && now.hour() == 15 && now.minute() == 58)
{
digitalWrite(Led, HIGH); //Led encendido
if (Contador <= 10) //Si el contador es menor o igual a 10, mensajes de sistema activado
{
lcd.setCursor(0,0); lcd.println("Sistema activat"); //Mensaje por consola
lcd.setCursor(0,1); lcd.println("i operatiu"); //Mensaje por consola
delay(1000); //1 segundo de espera
}
Contador++; //Aumentamos el contador en 1
}
if (Contador == 11) //Si el contador llega a 11
{
digitalWrite(Led, LOW);
lcd.clear();
for(int i = 1; i <= 20; i++) //Ciclo para mostrar 20 subsistemas
{
lcd.setCursor(0,0); lcd.print("Subsistema "); lcd.print(i); lcd.println(":"); //Mostrar número de subsistema
lcd.setCursor(0,1); lcd.println("Activat!"); //Mensaje de subsistema activado
delay(500);
lcd.clear();
}
}
}