MH Real Time Clock Modules 2 DS1302, un orologio per Arduino

MH Real Time Clock Modules 2 DS1302

Oggi vedremo come far funzionare questo interessante modulo, ovvero il MH Real-Time Clock Modules 2 DS1302  che, come ci dice il nome stesso, è basato sul chip DS1302, che fornisce la data e l’ora attuali ad Arduino. Un semplice orologio, direte voi, ma indispensabile quando si voglia tenere traccia del tempo che scorre.
Il vantaggio di questo modulo è che può mantenere l’ora anche per più anni, quindi anche se lo staccheremo dall’Arduino, se con la sua batteria CR2032, manterrà la corretta data.

Utilizzeremo per il funzionamento la libreria DS1302.h di rinkydinkelectronics.com scaricabile dal loro sito. Per installare una libreria vi rimando a questo articolo.

I collegamenti

VCC – 5v
GND – GND
CLK(SCLK) – Pin digitale 4
DAT(I/O) – Pin digitale 3
RST(CE) – Pin digitale 2

Arduino e il modulo MH Real Time Clock Modules 2 DS1302

Arduino e il modulo MH Real Time Clock Modules 2 DS1302

 

Sketch Serial_Easy

Vedremo ora l’esempio DS1302_Serial_Easy incluso nella libreria commentato nei passaggi più importanti.

13 Inclusione della libreria DS1302.h
16 Creazione dell’oggetto rtc di tipo DS1302 con costruttore parametrico. I tre parametri sono i numeri dei pin utilizzati.
21-22 Tolgono la modalità ‘sola lettura’
25 Metodo dell’oggetto Serial necessario per la comunicazione via seriale
28-30 PRESTARE ATTENZIONE Queste tre righe servono ad impostare sull’orologio la data che vogliamo dargli. Una volta caricato lo sketch la data verrà impostata (modificatelo con la data attuale), a quel punto commentate queste tre righe ponendo un // davanti, in questo modo le volte successive non reimposterà la data ma utilizzerà quella precedentemente settata. Consiglio, al fine di una regolazione al secondo, di caricare lo sketch con un orario di un minuto in avanti e di aprire la comunicazione via seriale nell’esatto momento in cui scatta il minuto. L’avvio della porta seriale riavvierà l’Arduino e quindi l’orario coinciderà esattamente con quello reale.
36 Stampa del giorno della settimana
40 Stampa della data
44 Stampa dell’ora

Lettura della seriale (MH Real Time Clock Modules 2 DS1302)

Lettura della seriale

Sketch Serial_Hard

Vediamo ora il secondo esempio chiamato DS1202_Serial_Hard

 

Le prime righe sono uguali al primo codice.

19 Dichiarazione dell’oggetto t di tipo Time. Questo oggetto è una struttura adatta a contenere la data, l’ora, etc.
41 Inizializzazione di t con l’assegnazione del metodo getTime() dell’oggetto rtc. In pratica la data attuale contenuta nell’RTC viene passata alle variabili contenute all’interno della struttura t.
44-61 Stampa delle variabili di t tramite le classiche Serial.Print()

Spero che questo tutorial su come usare il modulo MH Real Time Clock Modules 2 DS1302 con Arduino vi sia stato utile. Per dubbi, domande o altro rimango a disposizione.

Grazie,
Alessandro

Alessandro

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

Potrebbero interessarti anche...

11 Risposte

  1. Flavio Toniutti ha detto:

    Il settaggio corretto della data quale è?
    giorno, mese, anno
    mese, giorno anno
    //rtc.setDate(11, 28, 2018); // Set the date to August 6th, 2010

  2. Flavio Toniutti ha detto:

    Quando carichi lo sketch con l’orario impostato un minuto avanti poi avvii il monitor seriale nel preciso momento in cui sei sincronizzato, e fino qui ok, l’orologio comincia a contare dal momento che apri il monitor seriale. Poi si mettono le // per commentare le tre righe di codice relative ai settaggi di orario data formato ora e si ricarica lo sketch nuovamente, è corretto?

  3. Flavio Toniutti ha detto:

    Il monito seriale mi fa vedere questo, faccio copia e incolla:
    Wednesday 28.11.2018 — 12:38:23
    Monday 14.08.2012 — 09:22:12
    Wednesday 28.11.2018 — 12:38:25
    812:38:25 50.44.2006 — 04:14:09
    Wednesday 28.11.2018 — 12:38:27
    Monday 14.08.2012 — 09:22:14
    Wednesday 28.11.2018 — 12:38:29
    Monday 14.08.2012 — 09:22:18
    Wednesday 28.11.2018 — 12:38:31
    812:38:31 50.44.2006 — 04:14:12
    Wednesday 28.11.2018 — 12:38:33
    Monday 14.08.2012 — 09:22:20
    Wednesday 28.11.2018 — 12:38:35
    812:38:35 50.44.2006 — 04:14:13

Cosa ne pensi? Fammelo sapere con un messaggio

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

%d blogger hanno fatto clic su Mi Piace per questo: