RTC DS3231 per arduino

L’RTC DS3231 per arduino è un integrato RTC che mi è stato consigliato da un Maker sempre attento alle novità offerte dal mercato: Alberto

RTC DS3231 per arduino

Come sai Arduino non possiede un RTC ( Real Time Clock ) che possa consentirti di tener sotto controllo l’orario.

Nell’orologio neopixel ho simulato il tracorrere dei secondi, minuti ed ore sapendo che non sarà mai preciso, si è trattato solo di una simiulazione.

Nei miei precedenti progetti ho sempre utilizzato un altro RTC il DS1307 puoi leggere qualche alrticolo:

Nei diversi esperimenti ho verificato che tale tipo di RTC perde qualche secondo ogni giorno e cumulato nei mesi diventa uno scarto considerevole che può avere delle implicazioni importanti nel funzionamento del progetto stesso, pensa ad esempio ad un DataLogger se ogni mese perdi qualche minuto al termine di un monitoraggio su lungo periodo ( 3-6 mesi ) ti troverai dati non concordi con il reale orario di raccolta.

L’imprecisione del DS1307 non è legata al chip stesso, piuttosto al quarzo esterno di cui tale integrato necessita per tener sincronizzato il clock interno. Se il quarzo “perde colpi” l’ora non è più fedele.

L’RTC DS3231 per arduino possiede la caratteristica di essere molto preciso, come riportato nel datasheet del produttore in quanto:

The DS3231 is a low-cost, extremely accurate I2C real-time clock (RTC) with an integrated temperature compensated crystal oscillator (TCXO) and crystal.

possiede al suo interno un oscillatore con temperatura controllata ed una sonda di temperatura che utilizza per compensare la frequenza di oscillazione.

Collega l’RTC DS3231 per arduino

I collegamenti elettrici dell’RTC DS3231 per arduino sono molto semplici in quanto il modulo è alimentato a 3,3v e comunica con arduino mediante I2C quindi attraverso i pin SDA ed SCL

RTC DS3231 arduino pin

ho utilizzato i fili di colore giallo e verde per la comunicazione I2C.

Libreria DS3231

Come già per il DS1307 anche per l’RTC DS3231 per arduino è necessaria una libreria, cercando nel web trovi diverse librerie utili tra le quali ho provato questa:

JChristensen DS3231 DS3232RTC

anche se si chiama DS3232 è valida sia per il DS3232 sia per il DS3231. Puoi provare uno degli esempi: TimeRTC

Al primo tentativo di compilazione potresti imbatterti nel medesimo errore in cui mi sono imbattuto io:

RTC DS3231 arduino error library

la necessità di aggiungere la libreria Time.h a quelle installate nel tuo IDE, seguendo il link consigliato dall’autore la trovi qui, una volta installata la compilazione dello sketch dovrebbe procedere correttamente.

Apri il monitor seriale per verificare la data e l’ora restituita dal tuo RTC DS3231 per arduino.

Al primo collegamento l’orario riportato era errato: 01Jan2000 00:00:01, devi impostare l’orario per sincronizzarlo con l’ora corrente.

Tra gli esempi di JChristensen trovi un utilissimo esempio SetSerial.ino che ti permette di impostare l’orario dell’RTC DS3231 per arduino mediante connessione seriale.

Invia questo esempio sul tuo arduino, apri il monitor seriale e dovresti ottenere una schermata simile:

RTC DS3231 arduino set serial

nota che nella linea di invio dei dati seriali è presente una riga, che ho scritto io, secondo le indicazioni presenti nei commenti dello sketch: YYYY,MM,DD,hh,mm,ss sostituendo ai campi i valori della data e dell’ora che desideri impostare e premendo “send” ottieni un cambio dei valori sull’RTC DS3231 per arduino e sul monitor seriale vedrai:

RTC DS3231 arduino time setting

in questo momento il tuo RTC DS3231 è impostato con la data e l’ora che hai deciso di impostare.

Nota che nella prima schermata del monitor seriale dopo alcune linee viene restituita la temperatura, questo perché lo sketch prevede di recuperare la temperatura dal sensore installato sul modulo e di restituirtela ogni minuto.

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/rtc-ds3231-per-arduino.html

86 pings

Skip to comment form

  1. […] « RTC DS3231 per arduino […]

  2. […] RTC DS3231 […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.