/*
Forum: https://forum.arduino.cc/t/hilfestellung-sketcherstellung/1308602
Wokwi: https://wokwi.com/projects/411014412214292481
Vorversion(en);
Wokwi: https://wokwi.com/projects/411012936713503745
*/
#include "RTClib.h"
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"};
DateTime now, oldNow;
void setup() {
Serial.begin(115200);
Serial.println("Start");
initRTC();
initLeds();
}
void loop() {
zeitLesen();
zeitAnzeigen();
}
void initRTC() {
// Hier wird die RTC initialisiert
if (! rtc.begin()) {
Serial.println(F("RTC nicht gefunden"));
Serial.flush();
while (1);
}
// Hier wird die aktuelle Zeit einmal eingelesen, so dass
// die Anzeige mit der darauf folgenden Sekunde beginnt ...
oldNow = rtc.now();
}
void initLeds() {
// Hier werden die Leds initialisiert
}
void zeitLesen() {
// Hier wird die Zeit aus der RTC eingelesen und aktualisiert
now = rtc.now();
}
void zeitAnzeigen() {
// Hier wird die Word Clock Anzeige gesetzt, wenn sich die Zeit geändert hat!
if (oldNow != now) {
oldNow = now;
anzeige();
}
}
void anzeige() {
// Hier wird später die Led-Anzeige behandelt
// Vorläufig benutzen wir jedoch die serielle Ausgabe
Serial.print("Aktuelle Zeit: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}