Quero que meu relógio em tempo real defina seu horário como o horário no meu PC. No entanto, quando executo o esboço a seguir, o relógio em tempo real relata o tempo 32-33 segundos antes do que o meu PC diz que é a hora.
#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();
}
Também tentei definir manualmente a hora no RTC, mas acabo com o mesmo problema: o RTC está sempre 32 a 33 segundos atrás do que eu o defini. O atraso acontece assim que eu faço o esboço. Parece-me muito estranho que, por mais que eu tente definir o horário, acabo exatamente com o mesmo erro. Posso dizer ao Arduino para relatar o tempo como sendo 33 segundos após o que o RTC diz que é, mas essa solução parece meio incompleta e estou preocupado que algo esteja fundamentalmente errado com o meu RTC ou com o modo como o estou usando.
Estou usando um Arduino Uno com um escudo de registro de dados montado da Adafruit. A blindagem de registro de dados usa um DS1307 RTC. Alguém já teve esse problema antes ou tem alguma idéia sobre o que poderia estar causando isso? Qualquer ajuda seria muito apreciada.