Alcuni dei progetti, che è possibile realizzare con Arduino, potrebbero richiedere l’utilizzo di un RTC, acronimo di Real Time Clock. Esistono diversi moduli RTC utilizzabili con la board Arduino. In questo post vedremo come utilizzare il Modulo DS3231 Real Time Clock con Arduino Uno.
Modulo DS3231 Real Time Clock con Arduino Uno
Panoramica modulo DS3231
Un Real Time clock (RTC) è un circuito con funzioni di orologio in tempo reale capace di gestire anno, mese, giorno, ore, minuti e secondi.
Il modulo DS3231, che utilizzeremo in questa guida, è dotato anche di un alloggio per l’inserimento di una batteria tampone: in questo modo, anche se la board Arduino non viene alimentata, l’ RTC continuerà a mantenere il tempo reale.
Per maggiori informazioni sul modulo DS3231 vi rimando al datasheet raggiungibile a link
Materiale occorrente
- Arduino UNO: questa guida è basata su un Arduino UNO Rev3 (acquistabile su Amazon – eBay)
- RTC DS3231: (acquistabile su Amazon – eBay)
- Jumper Wire: cavetti (acquistabili su Amazon – eBay)
- Arduino IDE: ambiente di sviluppo per programmare il micro controllore Arduino (per l’installazione e la configurazione vi rimando a questi post)
Collegamenti
Procediamo con il collegamento dei piedini del modulo DS3231, e i pin di Arduino Uno R3, come mostrato nella tabella seguente:
COLLEGAMENTO PIEDINI | ||
---|---|---|
RTC DS3231 | Arduino UNO | Jumper Wire |
SCL | SCL (A5) | Grigio |
SDA | SDA (A4) | Bianco |
VCC | 3.3V | Rosso |
GND | GND | Nero |
Questo è lo schema di collegamento realizzato con Fritzing
Gestione Libreria
Terminato il circuito colleghiamo Arduino, tramite la porta USB, al nostro PC e avviamo l’ambiente di sviluppo Arduino IDE.
Per poter permettere ad Arduino di poter gestire il modulo DS3231 dobbiamo installare le librerie. Per farlo utilizzeremo il gestore delle librerie messo a disposizione da Arduino IDE.
Da Arduino IDE avviamo il gestore della librerie cliccando su Sketch -> #Include Libreria -> Gestione Librerie
Con Gestore Librerie aperto utilizziamo la casella di ricerca (in alto a destra) per cercare la libreria RTClib messa a disposizione da Adafruit.
Una volta individuata la libreria RTClib by Adafruit scegliamo la versione da installare e clicchiamo su Installa
Al termine dell’installazione ci verrà mostrato l’esito e la versione installata.
Modulo DS3231 Real Time Clock con Arduino Uno
Creazione ed esecuzione sketch
Una volta terminati i collegamenti tra il modulo DS3231 e la board Arduino, e scaricato la libreria RTClib, non ci resta che vedere come caricare lo sketch su Arduino.
Insieme alla libreria sono presenti diversi sketch di esempi reperibili da File -> Esempi -> RTClib.
Lo sketch che vi propongo è una modifica basato sullo sketch di esempio ds3231
Analizziamo le righe più significative del codice. Con la funzione rtc.adjust impostiamo la data e l’ora sul modulo RTC.
Con la riga di codice
settiamo il modulo con la date e l’ora del PC nel momento in cui carichiamo lo sketch su Arduino.
Per impostare una data e ora differente, ad esempio 16/01/19 12:30, possiamo richiamare la funzione in questo modo:
Il resto del codice è molto semplice: vengono prelevati i valori data/ora e vengono inviati al monitor seriale.
Ora che abbiamo effettuato i collegamenti e visto il codice, non ci resta che caricare lo sketch su Arduino e verificare il funzionamento del modulo RTC DS3231.
Selezioniamo la board da Strumenti -> Scheda -> Arduino/Genuino Uno
Selezioniamo la porta su cui è collegata la board da Strumenti -> Porta -> COM7 (N.B.: il nome della porta potrebbe essere differente)
Copiamo lo sketch, che abbiamo visto prima, in Arduino IDE e carichiamolo sulla board Arduino cliccando sul pulsante Carica (contrassegnato da una freccia rivolta verso destra).
Se non viene visualizzato nessun messaggio di errore vuol dire che è andato tutto a buon fine.
Ora no ci resta che visualizzare i dati utilizzando il Monitor Seriale.
Per avviarlo clicchiamo su Strumenti -> Monitor Seriale
Dopo qualche secondo, sul Monitor Seriale, saranno visualizzati i dati provenienti dal modulo RTC DS3231
Bene, abbiamo visto come utilizzare il Modulo DS3231 Real Time Clock con Arduino Uno. Per qualsiasi dubbio o domanda non esitate ad utilizzare i commenti.
A presto 😉
agenzie del vostro suggerimento un bel sito. Vorrei chiedervi una cortesia premetto che sono un neofita col desiderio di creare un orologio con i neopixel rgb. Sono riuscito dopo svariati tentativi andati a vuoto ad avere quello che mi ero prefissato. Purtroppo non riesco a completare l’obiettivo finale è cioè:
1 – dopo 24 ore fare accendere il led del giorno (lunedi) e spegnere quello precedente (domenica), contemporaneamente accendere il giorno attuale (28) e spegnere quello precedente (27) e infine dopo i 28,30 o 31 giorni accendere il led del mese (febbraio) e spegnere quello precedente (gennaio).
È possibile avere un aiuto dei suggerimenti. Grazie.
salve
complimenti per il progetto
è possibile mettere anche i centesimi di secondo ed implementarlo con un display lcd
vorrei fare un progetto di sistema di cronometraggio con delle fotocellule dove la fotocellula mi congela l’orario
che dici e’ possibile
grazie comunque