if (now.dayOfTheWeek() == 5) {
for (int i=0; i<NUMPIXELS; i++) {
[…]
}
}
Oder etwas ausführlicher... ein Muster:
// Global
enum class Weekday : byte {sunday, monday, tuesday, wednesday, thursday, friday, saturday};
void setup() {
Serial.begin(115200);
if (!rtc.begin()) {
Serial.println(F("Couldn't find RTC"));
Serial.flush();
abort();
}
// usw...
}
void fsmWeekday(byte day) {
switch (static_cast<Weekday>(day)) {
case Weekday::sunday:
Serial.println("Sonntag");
break;
case Weekday::monday:
Serial.println("Montag");
break;
case Weekday::tuesday:
Serial.println("Dienstag");
break;
case Weekday::wednesday:
Serial.println("Mittwoch");
break;
case Weekday::thursday:
Serial.println("Donnerstag");
break;
case Weekday::friday:
Serial.println("Freitag");
break;
case Weekday::saturday:
Serial.println("Samstag");
break;
default:
break;
}
}
void loop() {
static byte lastDay;
DateTime now = rtc.now();
byte day = now.dayOfTheWeek();
if (lastDay != day) {
lastDay = day;
fsmWeekday(day);
}
}