ich habe gerade angefangen ein wenig mit Arduino zu programmieren und wollte zum Start ein kleines Projekt umsetzen.
Ich habe ein LCD Display, ein DS3231 RTC Modul und zwei Knöpfe.
Wenn man den einen Knopf drückt, soll das Display für 5 Sekunden angehen und die aktuelle Uhrzeit speichern/anzeigen.
Der zweite Knopf soll nur das Display aktivieren und die Zeit nur anzeigen, aber nicht aktualisieren.
Der eine Knopf zeigt mir also an, wann ich die Katzen zuletzt gefüttert habe, den anderen Drücke ich, wenn ich die Katzen gefüttert habe, damit sich die Zeit aktualisiert.
Ich hoffe ich habe es einigermaßen verständlich erklärt.
Aktuell gebe ich ja manuell Datum und Uhrzeit für das RTC mit. Kann man da irgendwie bei der Initialisierung die Systemzeit des Computers nehmen?
Wenn man den Strom trennt und das Programm neu startet, wird ja auch die Zeit neu gesetzt. Sinn des RTC ist es ja, dass diese gespeichert wird. Wie kriege ich es hin, dass nach Stromverlust die Zeit nicht neu gesetzt wird?
Wenn die RTC eine Batterie/einen Akku hat, läuft die Zeit weiter, sonst nicht.
zum einmaligen Stellen kannst Du die Macros DATE und TIME benutzen. Sie enthalten Datum und Uhrzeit des Kompilens Deines Sketches.
Wie Du sie nutzen kannst, hängt von der Lib ab. Es gibt viele für die DS3231, da müsstest Du uns einen Link zur Lib schicken.
Die Zeit läuft ja auch korrekt weiter, nur bei neustarten der Stromversorgung ist alles wieder auf meiner initial eingestellten Zeit. Das RTC hat eine Batterie. Deshalb gehe ich einfach mal davon aus, dass mein Code sehr schlecht ist
Bei meiner LED-Uhr mit DS3231 habe ich ein Programm zum Stellen der Uhrzeit und eins für den normalen Betrieb. Da die Abweichung bei Zimmertemperatur erfreulich gering ist, stelle ich sie höchstens einmal im Jahr. Sommer/Winterzeit wird berechnet für eine automatische Umstellung.
Meine eine RTC läuft fast draußen = Geräteschuppen und in 2J hat erst 2Min Vorlauf. Nächste Woche bekommt die automatische Sommer / Winterzeitumstellung dann ist die wider gut eingestellt