Saya ingin jam waktu-nyata saya mengatur waktunya sebagai waktu di PC saya. Namun, ketika saya menjalankan sketsa berikut, jam waktu sebenarnya melaporkan waktu 32-33 detik lebih awal dari PC saya mengatakan waktunya.
#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();
}
Saya juga mencoba secara manual mengatur waktu pada RTC, tetapi saya berakhir dengan masalah yang sama: RTC selalu 32-33 detik di belakang apa yang saya atur. Kelambatan terjadi segera setelah saya menjalankan sketsa. Sepertinya sangat aneh bagi saya bahwa tidak peduli bagaimana saya mencoba mengatur waktu, saya berakhir dengan kesalahan yang persis sama. Saya dapat memberitahu Arduino untuk melaporkan waktu 33 detik setelah apa yang dikatakan RTC, tetapi solusi ini tampaknya agak samar, dan saya khawatir ada sesuatu yang salah dengan RTC saya atau cara saya menggunakannya.
Saya menggunakan Arduino Uno dengan Shield Data Logging Shield dari Adafruit. Pelindung pencatatan data menggunakan DS1307 RTC. Adakah yang pernah mengalami masalah ini sebelumnya, atau memiliki ide tentang apa yang menyebabkannya? Bantuan apa pun akan sangat dihargai.