Ich möchte, dass meine Echtzeituhr die Uhrzeit auf meinem PC einstellt. Wenn ich jedoch die folgende Skizze ausführe, meldet die Echtzeituhr, dass die Zeit 32-33 Sekunden früher liegt, als mein PC die Zeit angibt.
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
void setup () {
Serial.begin(57600);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
// uncomment it & upload to set the time, date and start run the RTC!
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
Ich habe auch versucht, die Uhrzeit manuell auf der RTC einzustellen, aber am Ende habe ich das gleiche Problem: Die RTC liegt immer 32-33 Sekunden hinter dem, was ich eingestellt habe. Die Verzögerung tritt auf, sobald ich die Skizze starte. Es scheint mir sehr seltsam, dass ich, egal wie ich versuche, die Zeit einzustellen, genau den gleichen Fehler habe. Ich kann dem Arduino sagen, dass er die Zeit als 33 Sekunden nach dem, was die RTC sagt, melden soll, aber diese Lösung scheint etwas skizzenhaft zu sein, und ich mache mir Sorgen, dass etwas mit meiner RTC oder der Art und Weise, wie ich sie verwende, grundlegend nicht stimmt.
Ich verwende ein Arduino Uno mit einem Assembled Data Logging Shield von Adafruit. Das Datenprotokollierungsschild verwendet eine DS1307-RTC. Hat jemand dieses Problem schon einmal gehabt oder hat er Ideen, was es verursachen könnte? Jede Hilfe wäre sehr dankbar.