BulldogLowell:
I wrote a library to do exactly what you are looking to do
Having some issues using it.
Not sure if its because I already have an RTC clock ?
Isolated what I use is:
void ledOn() {
for(int i=0;i<NUM_LEDS;i++){
leds[i] = CHSV( hueDay, satDay, briDay);
}
FastLED.show();
}
void ledOff() {
for(int i=0;i<NUM_LEDS;i++){
leds[i] = CHSV( hueNight, satNight, briNight);
FastLED.show();
}
}
DailyTimer ledTimer1(
true, // AutoSync true or false, will run the startTimeCallback() if restarts within the active range or after range changes and you are in the range
inputStart, // Start Hour
inputStartminutes, // Start Minute
inputStop, // End Hour
inputStopminutes, // End Minute
EVERY_DAY, // SUNDAYS, MONDAYS, TUESDAYS, WEDNESDAYS, THURSDAYS, FRIDAYS, SATURDAYS, WEEKENDS, WEEKDAYS, or EVERY_DAY
FIXED, // OPTIONAL - FIXED, RANDOM, RANDOM_START, or RANDOM_END
ledOn, // pointer to function to execute at Start time, or a Lambda as in this example:
ledOff // pointer to function to execute at End time
);
void setup()
{
ledTimer1.begin();
}
void dailylibtimer() {
static unsigned long lastTime = 0;
DailyTimer::update();
if(millis() - lastTime >= 1000)
{
char timeBuffer[32] = "";
sprintf(timeBuffer, "Time:%2d:%02d:%02d\tDate:%02d/%02d/%4d", hour(), minute(), second(), month(), day(), year());
Serial.println(timeBuffer);
lastTime = millis();
}
}
void loop()
{
dailylibtimer();
}