Wortuhr ohne Uhrzeit aber mit Wochentagen

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);
  }
}
1 Like