Ich habe mir die DS3221 Realtimeclock zugelegt. Nachdem ich das Modul an den Arduino angeschlossen und das Sample-Programm gestartet habe, Erhalte ich immer die gleiche Antwort:
2165/165/165 (Wednesday) 165:165:85
since midnight 1/1/1970 = 1553039185s = 17974d
now + 7d + 30s: 2019/3/27 12:16:31
Diese Antwort kommt mit oder ohne Stützbatterie. Kann mir da jemand weiter helfen?
Also "ds3231 2165" bringt einen Sucheintrag bei Google auf die Seite arduino.cc das der Batteriehalter einen kurzschluss haben könnte ode rirgendwas da rundherum.
Ich habe einige von den Teilen (als Modul und IC)und wenn die Verdrahtung richtig ist dann muss das Example so oder so laufen wenn man schon weiß wie man Sketche kompiliert und hochlädt. Mir ist dieser Fehler nicht bekannt.
165 Stunden (und so weiter) ist im Allgemeinen der Wert, wenn keine RTC angeschlossen ist.
Das deutet also auf Kontaktprobleme hin oder eine defekte RTC.
Ich habe mir die DS3221 Realtimeclock zugelegt. Nachdem ich das Modul an den Arduino angeschlossen und das Sample-Programm gestartet habe, Erhalte ich immer die gleiche Antwort:
2165/165/165 (Wednesday) 165:165:85
since midnight 1/1/1970 = 1553039185s = 17974d
now + 7d + 30s: 2019/3/27 12:16:31
Diese Antwort kommt mit oder ohne Stützbatterie. Kann mir da jemand weiter helfen?
Kopiere Dir mal diese Funktion in Deinen Sketch und rufe sie in setup() auf:
boolean RTCinit()
{
Wire.begin();
delay(10); // small delay to stabilize I2C bus voltage
Wire.beginTransmission(RTC_I2C_ADDRESS);
Wire.write(0);
return (Wire.endTransmission()==0);
}
Wenn die Uhr richtig angeschlossen ist, sollte ein true zurückgeliefert werden.
Was bekommst Du: true oder false?
Hinweis:
Damit die Funktion kompiliert werden kann, muß im Sketch die Wire-Library inkludiert und die RTC-Adresse des RTC-Moduls definiert werden
#include <Wire.h> #define RTC_I2C_ADDRESS 0x68 // // I2C adress of DS1307 and DS3231 RTC
eipalittau: @Schuppeste: Woher hast Du die Nummer "2165"? @jurs: Wire.endTransmission() <- Dieser Befehl beendet die Ausführung...
Ja, natürlich beendet der Befehl die Ausführung.
Und liefert dabei einem Rückgabewert zurück, der darüber Auskunft gibt, ob die Ausführung fehlerfrei abgeschlossen wurde oder mit einem Fehlerstatus endete.
Mit der geposteten Funktion testest Du im wesentlichen, ob das RTC-Modul auf Befehle über den I2C-Bus richtig reagiert:
false ==> das Gerät ist falsch yangeschlossen oder der I2C-Bus funktioniert aus anderen Gründen nicht
ttrue==> Alles in Ordnung, das Gerät reagiert auf Kommandos über den I2C-Bus
EDIT: Ich weiß, da sist der 1307, wenn man sich den Thread nur mal durchliest melden sich auch MEnschen mit DS3231 zu Wort, dabei haben die beiden fast die gleichen Register/Librarys.
EDIT: Second EDIT: Welches Modul hast Du überhaupt, es gibt zig verschiedene?
Ich kenne deine verwendete Library nicht, daher mein Tipp:
Setze die DS3232RTC.h ein, die funktioniert auch mit deiner RTC und bei mir seit langer Zeit fehlerfrei.
Mit den beigefügten Beispielen kommst sicher schnell zum Ziel.
Ich hatte das gleiche Problem auch vor kurzen.
Eine Woche alles mögliche gesucht, getestet und und und..
Die Uhr lies sich auch nicht stellen, sie fing immer bei 00:00:00 an zu laufen,
nach Reset des Arduino wieder 165:165:85
Lösung: das blöde Ding war einfach nur... kaputt
Mit einer neuen lief alles wieder auf Anhieb.
Vielen Danke für die hilfreichen Antworten. Ich bin in den Ferien und erhohle mich von meiner RTC-Odysee. Nach meiner Rückkehr werde ich alles ausprobieren und mich wieder melden. Bis bald.