Ma tahan, et minu reaalajas olev kell määraks kellaaja minu arvutis. Järgmise visandi käivitamisel teatab reaalajas kell aga 32-33 sekundit varem, kui minu arvuti ütleb.
#include <Wire.h> # include "RTClib.h" RTC_DS1307 RTC; void setup () {Serial.begin (57600); Traat.alusta (); RTC algus (); if (! RTC.isrunning ()) {Serial.println ("RTC ei tööta!"); // järgmine rida määrab RTC kuupäevaks, millal & see visand koostati // kommenteerige & üleslaadimist, et kellaaega määrata, kuupäev ja alustage RTC käivitamist! RTC.adjust (DateTime (__ DATE__, __TIME__)); }} void loop () {DateTime now = RTC.now (); Seeriaprint (nüüd.aasta (), DEC); Serial.print ('/'); Seeriaprint (nüüd.kuu (), DEC); Serial.print ('/'); Serial.print (nüüd.päev (), DEC); Serial.print (''); Serial.print (nüüd.tund (), DEC); Serial.print (':'); Serial.print (nüüd.minut (), DEC); Serial.print (':'); Seeriaprint (nüüdsekund (), DEC); Serial.println ();}
Olen proovinud ka RTC-d kellaaega käsitsi seadistada, kuid mul on lõpuks sama probleem: RTC on alati 32-33 sekundit maast madalam seadke see. Viivitus juhtub kohe, kui visandi käivitan. Mulle tundub väga veider, et olenemata sellest, kuidas ma aega tahan määrata, satun lõpuks täpselt sama vea juurde. Võin öelda Arduinole, et ta teataks, et kellaaeg on 33 sekundit pärast seda, kui RTC seda ütleb, kuid see lahendus näib kuidagi visandlik ja ma olen mures, et minu RTC-s või minu kasutamisviisis on midagi põhimõtteliselt valesti.
Kasutan Arafino Unot koos Adafruit'i kokkupandud andmete logimise kilbiga. Andmete logimise kilp kasutab DS1307 RTC-d. Kas kellelgi on seda probleemi varem olnud või on ideid selle kohta, mis selle võib põhjustada? Igasugune abi oleks väga teretulnud.