リアルタイムクロックでPCの時刻を設定します。ただし、次のスケッチを実行すると、リアルタイムクロックは、PCの時刻よりも32〜33秒早い時刻を報告します。
#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();
}
また、RTCで手動で時刻を設定しようとしましたが、同じ問題が発生しました。RTCは、設定した値より常に32〜33秒遅れています。スケッチを実行するとすぐにラグが発生します。時間をどのように設定しようとしても、まったく同じエラーが発生するのは非常に奇妙に思えます。Arduinoに、RTCが言っていることから33秒後に時間を報告するように指示することができますが、この解決策はおおざっぱに思われ、RTCまたは使用方法に根本的に何か問題があるのではないかと心配しています。
Ardaino UnoとAdafruitのAssembled Data Logging Shieldを使用しています。データロギングシールドはDS1307 RTCを使用します。誰かが以前にこの問題を抱えていましたか、それを引き起こしている可能性があるものについて何か考えがありますか?どんな助けでも大歓迎です。