我希望我的实时时钟将其时间设置为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或我的使用方式从根本上来说是错误的。
我正在将Arduino Uno与来自Adafruit的组装数据记录盾一起使用。数据记录屏蔽使用DS1307 RTC。有没有人曾经遇到过这个问题,或者对导致问题的原因有任何想法?任何帮助将非常感激。