मैं चाहता हूं कि मेरी वास्तविक समय की घड़ी मेरे पीसी पर अपना समय निर्धारित करे। हालाँकि, जब मैं निम्नलिखित स्केच चलाता हूं, तो वास्तविक समय की घड़ी मेरे पीसी के समय से 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();
}
मैंने आरटीसी पर समय को मैन्युअल रूप से सेट करने का भी प्रयास किया है, लेकिन मैं उसी समस्या को समाप्त करता हूं: आरटीसी हमेशा 32-33 सेकंड के पीछे है जो मैंने इसे सेट किया है। स्केच चलाते ही लैग होता है। यह मुझे बहुत अजीब लगता है कि कोई फर्क नहीं पड़ता कि मैं कैसे समय निर्धारित करने की कोशिश करता हूं, मैं बिल्कुल उसी त्रुटि के साथ समाप्त होता हूं। मैं आरडीसीओ को आरटीसी के कहने के 33 सेकंड बाद के समय की रिपोर्ट करने के लिए कह सकता हूं, लेकिन यह समाधान एक प्रकार का स्केच लगता है, और मुझे चिंता है कि कुछ मेरे आरटीसी के साथ मौलिक रूप से गलत है या जिस तरह से मैं इसका उपयोग कर रहा हूं।
मैं Adafruit के एक इकट्ठे डेटा लॉगिंग शील्ड के साथ एक Arduino Uno का उपयोग कर रहा हूं। डेटा लॉगिंग शील्ड एक DS1307 RTC का उपयोग करता है। क्या किसी को भी यह समस्या पहले हुई है, या इसके बारे में कोई विचार है कि यह क्या कारण हो सकता है? कोई भी सहायताकाफी प्रशंसनीय होगी।