ฉันต้องการให้นาฬิกาตามเวลาจริงตั้งเวลาเป็นเวลาบนพีซีของฉัน อย่างไรก็ตามเมื่อฉันเรียกใช้แบบร่างต่อไปนี้นาฬิกาแบบเรียลไทม์จะรายงานเวลาเป็น 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 ให้รายงานเวลาเป็น 33 วินาทีหลังจากสิ่งที่ RTC บอกว่ามันเป็น แต่วิธีนี้ดูเหมือนจะไม่สมบูรณ์และฉันกังวลว่ามีบางอย่างผิดปกติกับ RTC ของฉันหรือวิธีที่ฉันใช้งาน
ฉันใช้ Arduino Uno กับชุดประกอบ Data Logging Shield จาก Adafruit ตัวป้องกันการบันทึกข้อมูลใช้ DS1307 RTC มีใครเคยมีปัญหานี้มาก่อนหรือมีแนวคิดใด ๆ เกี่ยวกับสิ่งที่อาจเป็นสาเหตุให้เกิดขึ้น ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก