DS1307 RTC einmalig stellen

Hallo,

ich sitze gerade vor dem Problem wie ich die DS1307 einmalig im Sourcecode stellen kann.
Wenn ich Funktionen wie z.B. setTime() im Code einbinde, werden sie ja immer nach erneuten einschalten der Spannungsversorgung (Arduino Board) ausgeführt. Dadurch verstellt sich die Zeit in der RTC DS1307.

Wie kann man die Zeit einmalig in der DS1307 stellen (ohne serial Port)?

Hallo,
das erste mal mit
setTime() 17:54:33
das zweite mal mit
// setTime() 17:54:33
oder was hast Du vor?
Gruß und Spaß
Andreas

Hallo,

ich verstehe nicht so ganz was du damit meinst.

das erste mal mit
setTime() 17:54:33
das zweite mal mit
// setTime() 17:54:33

setTime() darf nur einmalig nach dem kompilieren ausgeführt werden. Sonst verstellt sich doch die Uhr jedes mal nach einem Reset des Arduino.

na er meint du sollst es einmal starten und dann auskommentieren.

Die DS1307 hat 56 Byte RAM. Du kannst im RAM speichern ob die Uhr gestellt wurde, indem du einfach ein bestimmtes Bitmuster in eine Speicherzelle schreibst. Alternativ das EEPROM des Prozessors verwenden.

Einmal stellen, auskommentieren und neu hochladen ist aber einfacher :slight_smile:

maverick1509:
na er meint du sollst es einmal starten und dann auskommentieren.

Ja, so in der Art habe ich es jetzt gemacht. Ich hab dazu das TimeRTCSet Beispiel verwendet.

Du kannst auch abfragen, ob die Uhr überhaupt läuft.
Das tut sie nicht, wenn du mal die Batterie und Vcc abgeklemmt hattest und die Uhrzeit komplett weg ist.

Aber eine DS1307 sollte man schon ab und zu mal stellen. (z.B. so alle halbe Jahr um ca 1 Stunde vor und zurück)
So genau ist keine DS1307, dass sich eine automatische Sommer-WinterZeit Anpassung lohnen würde.

Hallo,
"So genau ist keine DS1307" Genau! Kaufe Dir eine "ChronoDot" Die ist so etwas von geil. Und sie läuft ohne Lib und wirklich sehr genau.
Gruß und Spaß
Andreas

dann doch lieber das Modul DS3231 für 3€.
Ist wirklich sehr genau.

Die Chronodot ist ein DS3231 Breakout Board.
Weit billiger als eine Rolex, aber auch rund !
Natürlich laufen alle RTC auch ohne Lib oder anderen Code.
:wink: Nur das Auslesen, mit oder ohne Sommer/Winter-Anpassung, kriegst du ohne Code nicht hin. :wink:

Bei der DS1307 ist es in der Regel die Frage, welcher Quarz ( und wie ) montiert ist, und wofür man die RTC braucht, ob es ok ist.

Meine Heizungsüberwachung läuft mit einem Loggershield mit DS1307 super.
Die Uhr der Heizung selbst ist ähnlich ungenau.

Ein Billig-Breakout Modul mit DS1307 ist deutlich schlechter. Noch nicht mal die Abweichung ist konstant.

@Michael_x
Ich hatte in meiner Heizungssteuerung auch erst das Modul DS1307, läuft schon ungenau.
Jetzt ein Modul DS3231, und maximal 1 Sekunde Abweichung im Monat, wenn überhaupt.
gruß

Ich habe eine DS1307 die in 2 Monaten etwa 30-60 Sekunden falsch geht :o