#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
const int ledPin = 9; // Pin PWM para la lámpara LED
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("No se encontró el RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC perdió la energía, ajustando la fecha y hora.");
// Ajusta la fecha y hora solo una vez
// rtc.adjust(DateTime(F(_DATE), F(TIME_)));
}
pinMode(ledPin, OUTPUT);
}
void loop() {
DateTime now = rtc.now();
Serial.print(now.hour());
Serial.print(":");
Serial.println(now.minute());
// Simular amanecer a las 6:00 AM
if (now.hour() == 6 && now.minute() == 0) {
amanecer();
}
// Simular anochecer a las 18:00 PM
if (now.hour() == 18 && now.minute() == 0) {
anochecer();
}
// Apagar lámpara entre las 18:01 y 5:59
if (now.hour() >= 18 || now.hour() < 6) {
analogWrite(ledPin, 0);
} else {
// Mantener lámpara encendida al máximo durante el día
analogWrite(ledPin, 255);
}
delay(1000); // Verificar cada segundo
}
void amanecer() {
for (int i = 0; i <= 255; i++) {
analogWrite(ledPin, i);
delay(100); // Ajusta la velocidad del amanecer
}
}
void anochecer() {
for (int i = 255; i >= 0; i--) {
analogWrite(ledPin, i);
delay(100); // Ajusta la velocidad del anochecer
}
}