Modulo DS1307 Real Time Clock con Arduino Nano

Modulo DS1307 Real Time Clock con Arduino Nano

Nel post di oggi vedremo come collegare e utilizzare un Modulo DS1307 Real Time Clock con Arduino Nano.


Modulo RTC DS1307

Un modulo RTC (Real Time clock) è un circuito con funzioni di orologio in tempo reale capace di gestire anno, mese, giorno, ore, minuti e secondi.
Il modulo DS1307, che utilizzeremo in questo progetto, è 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.

Sul modulo è anche possibile saldare un sensore di temperatura DS18B20, gestibile attraverso il piedino DS, e dispone di un piedino BAT dove poter collegare un’eventuale batteria tampone (oltre alla CR2032).

Modulo DS1307 Real Time Clock con Arduino Nano. Modulo

Caratteristiche principali:

  • Tensione di alimentazione 3,3V – 5V
  • Interfaccia I2C
  • Gestione Giorno Mese Anno – Data
  • Gestione anno bisestile
  • Alloggio per batteria CR2032 di backup

Materiale occorrente

Per la realizzazione del progetto utilizzeremo i seguenti materiali:

Oltre al materiale elencato sarà necessario installare un libreria per poter gestire il modulo. Vedremo più avanti come installarla.

Montaggio e collegamenti

Effettuiamo i collegamenti tra il modulo DS1307 e la board Arduino come mostrato nella tabella seguente:

COLLEGAMENTO PIEDINI
Arduino Nano/Uno DS1307 Jumper Wire
5V VCC      Rosso
GND GND      Nero
A5 SCL      Bianco
A4 SDA      Giallo

Questo il circuito realizzato con Fritzing

Modulo DS1307 Real Time Clock con Arduino Nano. Circuito Fritzing

Installazione libreria RTClib

Come accennato poco fa, per poter utilizzare il modulo è necesario installare una libreria. Tra le varie librerie disponibili ho optato per la RTClib messa a disposizione da Adafruit.
Per poterla installare, da Arduino IDE, apriamo il gestore delle librerie cliccando su Sketch -> #include librerie -> Gestione librerie

Gestore  librerie Arduino IDE

Nella barra di ricerca scriviamo RTClib (1) e, dall’elenco che compare, selezioniamo e installiamo la libreria messa a disposizione da Adafruit (2) cliccando su Installa (3)

Installare libreria RTClib Adafruit

Ora siamo prontio per passare allo sketch.


Modulo DS1307 Real Time Clock con Arduino Nano

Lo sketch

Dopo aver visto come effettuare i collegamenti tra la board Arduino e il modulo RTC, e dopo aver installato la libreria necessaria, possiamo passare all’implementazione dello sketch.
Creiamo un nuovo file in Arduino IDE e copiamo ed incolliamo lo sketch seguente:

Nella prima parte del codice includiamo la libreria che abbiamo installato in precedenza, dichiariamo le variabili necessarie per lo sketch, e inizializziamo un oggetto della classe RTClib.
Nella funzione setup(), dopo aver inizializzato la comunicazione seriale, avviamo la comunicazione I2C con il modulo e impostiamo la data/ora iniziale attraverso la funzione:

Possiamo impostare anche una data/ora iniziale differente, ad es. 30/11/2021 23:40, sostituendo il codice appena visto con

Il resto dello sketch è molto semplice, invia sul monitor seriale le letture effettuate tramite il modulo RTC.

Configurazione IDE e test dello sketch

Ora non ci resta che caricare il nostro sketch sul Micro-Controllore e vedere se tutto funziona correttamente.
Colleghiamo la board Arduino Nano al nostro PC, tramite la porta USB, e configuriamola dal pannello Strumenti dell’IDE in questo modo

  • Scheda -> Arduino Nano
  • Processore -> ATmega328P
  • Porta -> COM4 (N.B. la porta potrebbe essere differente)

Selezione Scheda Processore e Porta COM

Incolliamo lo sketch, che abbiamo visto poco prima, e carichiamolo sulla board Arduino cliccando sul pulsante Carica (contrassegnato da una freccia rivolta verso destra)

Al termine del caricamento dello sketch apriamo il Monitor Seriale, dal pannello Strumenti, per vedere il risultato dello sketch:

Modulo DS1307 Real Time Clock con Arduino Nano. Risultati su Serial Monitor

A presto 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *