Voglio che il mio orologio in tempo reale imposti l'ora sul mio PC. Tuttavia, quando eseguo il seguente schizzo, l'orologio in tempo reale riporta l'ora come 32-33 secondi prima del mio PC.
#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();
}
Ho anche provato a impostare manualmente l'ora sull'RTC, ma finisco con lo stesso problema: l'RTC è sempre 32-33 secondi indietro rispetto a quello su cui l'ho impostato. Il ritardo si verifica non appena eseguo lo schizzo. Mi sembra molto strano che, indipendentemente dal modo in cui provo a impostare l'ora, finisca esattamente con lo stesso errore. Posso dire ad Arduino di riferire il tempo come 33 secondi dopo quello che dice l'RTC, ma questa soluzione sembra un po 'imprecisa e sono preoccupato che qualcosa sia fondamentalmente sbagliato nel mio RTC o nel modo in cui lo sto usando.
Sto usando un Arduino Uno con uno scudo di registrazione dei dati assemblato di Adafruit. Lo scudo per la registrazione dei dati utilizza un DS1307 RTC. Qualcuno ha avuto questo problema prima o hai qualche idea su cosa potrebbe causarlo? Qualsiasi aiuto sarebbe molto apprezzato.