RTC-Real-Time-Clock

www.narcisivalter.it
Progetti Elettronici


RTC - OROLOGIO / DATARIO LCD con DS1307

(RTC - Real-Time Clock based on PIC16F886 and DS1307)


Orologio Datario RTC con DS1307N

CARATTERISTICHE    [ TORNA ALL'INDICE ]

In questa pagina descrivo come realizzare un completo Orologio-Calendario LCD basato sul chip RTC della Maxim siglato DS1307 e gestito dal microcontrollore Microchip PIC16F886.

Grazie alla batteria al Litio da 3V (modello CR2032 oppure CR2325) l'orologio mantiene il suo orario anche quando non è alimentato (ad esempio, in caso di Black Out): infatti, fino a quando la batteria al Litio è collegata al DS1307, quest'ultimo non perderà mai l'orario e potrebbe funzionare ininterrottamente anche per alcuni anni con la sola batteria in tampone. Solo nel caso di sostituzione della batteria sarà necessario reimpostare Data e Ora.

NOTA - L'orologio non gestisce il passaggio tra l'ORA LEGALE e quella SOLARE, per cui in questo caso sarà necessario reimpostare l'orario.

CARATTERISTICHE DELL'OROLOGIO:

  • Tensione di alimentazione: 9-12 Vcc. (può essere usata anche una batteria da 9V).
  • Sistema orario 0-23 (standard internazionale ISO 8601).
  • Gestione a Microcontrollore (Microchip PIC16F886).
  • Modulo Maxim RTC DS1307 con Precisione al quarzo.
  • Data (Giorno, Mese, Anno) e Orario (Ore, Minuti, Secondi) compresa la gestione degli anni bisestili.
  • Anno impostabile dal 2000 fino al 2099.
  • 4 pulsanti di comando:  + ,  - ,  SET  e  Data .
  • Opzione per la scelta della Lingua (ITALIANO o ENGLISH)
  • Possibilità di inserire il Segnale Orario (breve segnale acustico ad ogni ora).
  • Visualizzazione su display LCD 2 x 16 caratteri.
  • Dimensioni scheda (mm.): 100 X 56.

SCHEMA ELETTRICO E FUNZIONAMENTO    [ TORNA ALL'INDICE ]

Il circuito dell'Orologio-Calendario è semplice: il chip DS1307 gestisce la data e l'ora mentre il microcontrollore PIC16F886 si occupa di visualizzare i dati sul modulo LCD e di gestire i pulsanti per le operazioni dell'utente.

Per capire meglio come è strutturato il DS1307, nell'immagine seguente è visibile il suo schema a blocchi (vedi anche datasheet Maxim).

Schema a blocchi del DS1307 - Block diagram

Lo schema a blocchi per il collegamento tra il PICmicro e il DS1307 è visibile qui a destra ed è quello classico riportato sul datasheet della Maxim.

Il collegamento seriale tramite protocollo I2C è realizzato collegando i piedini SCL (Serial Clock) e SDA (Serial Data) con i corrispondenti piedini del microcontrollore mentre con il piedino SQW/OUT è possibile sincronizzare il DS1307 con eventuali dispositivi esterni.

Da notare l'utilizzo delle resistenze di Pull-Up (RPu) necessarie perché le uscite del DS1307 sono di tipo Onen-Drain.

La batteria al Litio da 3 Volt (CR2032 o CR2325) mantiene l'orario in caso di Black Out.

NOTA - Se non si usa la batteria al Litio, è necessario collegare il piedino VBAT alla massa GND.

Di seguito è riportato lo schema elettrico dell'Orologio Calendario LCD realizzato dall'autore (schema elettrico versione 3, aggiornato e corretto) (cliccare sulla figura per ingrandirla).

Schematic diagram of Real-Time Clock

Per vedere l'elenco componenti, cliccare qui.

Il DS1307 richiede un quarzo da 32768 Hz (vedi XTC) mentre per il microcontrollore è stato impostato (via software) il clock interno da 8MHz (in questo modo ho evitato di usare un secondo quarzo).

Come accennato, il collegamento seriale SCL-SDA tra il microcontrollore e il DS1307 è praticamente quello consigliato dalla Maxim nel suo datasheet.

Sul piedino 7 di U3 (DS1307) è presente un'onda quadra con frequenza pari a 1Hz (il valore è stato impostato tramite software): collegando questo piedino al piedino RB0/INT di U1 (PIC16F886), si ottiene una perfetta sincronizzazione tra i due circuiti integrati e, in questo modo, il modulo LCD è aggiornato esattamente ad ogni secondo (il piedino RB0/INT del PICmicro è stato abilitato via software come "External Interrupt").

Per gestire il DS1307, è stata usata la periferica MSSP (Master Synchronous Serial Port) del PICmicro e impostata per il funzionamento con il bus I2C (comunicaziuone seriale a due fili).

La batteria al Litio da 3V (B1) mantiene l'orario per diversi anni: se non si usa la batteria al Litio, il piedino 3 di U3 (Batt.) deve essere collegato a massa per evitare malfunzionamenti dell'RTC.

La porta RA del microcontrollore gestisce il modulo LCD 1602.

Il trimmer T1 regola il contrasto del modulo LCD.

Per spegnere la retroilluminazione (nel caso dovesse risultare fastidiosa in particolari situazioni), è possibile inserire un interruttore in serie alla resistenza R6.

I diodo D1 protegge il circuito dalle inversioni di alimentazione: può essere utilizzato anche un normale 1N4001 o equivalenti, ma un diodo Schottky 1N5819 ridurrà al minimo la caduta di tensione (molto importante se si utilizza una batteria da 9V).

Per le resistenze di Pull-Up R2, R3 ed R4 possono essere usati valori da 4k7 fno a 10k.

REALIZZAZIONE PRATICA    [ TORNA ALL'INDICE ]

Per questo progetto si usa un'unica scheda che ospita tutti i componenti necessari per far funzionare l'orologio (compreso il Modulo LCD 16x2).

Le dimensioni della scheda sono 100x56 mm.

Nelle figure successive sono riportati i disegni dei Master (Top e Bottom) e dei Layouts (per scaricare le immagini, cliccare su quella desiderata e, una volta ingrandita, con il tasto destro del mouse scegliere 'Salva immagine con nome...').

Top Master   Bottom Master   Multilayer view   Component Side Layout   Copper Side Layout

Il modulo LCD va montato direttamente sulla scheda e fissato con viti e dadi dopo aver inserito due distanziatori da 11 mm.

Per i pulsanti possono essere utilizzati dei tactile switch con altezza almeno di 22 mm (ma l'altezza dipende anche dai caps che si utilizzano).

Orologio Datario con DS1307N e PIC16F886

Il connettore MX è utile solo per la programmazione on-board del PIC: una volta programmato il microcontrollore, consiglio di rimuovere questo connettore per evitare che accidentali cortocircuiti sui suoi piedini possano danneggiare il chip.

In questo progetto è stato utilizzato un Battery Holder (potrabatteria) che può alloggiare diversi tipi di batterie al litio da 3 Volt (come ad esempio le classiche CR2032 oppure le più grandi CR2325).

PCB of RTC Real Time Clock DS1307N

Per quanto riguarda l'alimentazione, l'orologio può essere alimentato da una tensione compresa tra 9 e 12 volt (quindi può essere utilizzata anche una batteria alcalina da 9V): lo stabilizzatore U2 (L4931) fornisce i 5 volt necessari al funzionamento dell'intero orologio.

COMANDI E USO    [ TORNA ALL'INDICE ]

Nell'orologio ci sono 4 pulsanti di comando ( + ,  - ,  SET  e  Data ), utili per impostare Data e Ora oppure per settare il Segnale Orario e la Lingua dei messaggi (ITALIANO o ENGLISH).

All'accensione dell'orologio, il display LCD appare come visibile nelle seguenti immagini con la data sulla prima riga e l'orario sulla seconda (le immagini a destra sono relative alla lingua INGLESE):

    Orologio Calendario   Real-Time Clock

  REGOLAZIONE DATA e ORA

    Premere il pulsante  SET  per configurare la Data e l'Ora.

    Orologio Calendario   Real-Time Clock

    Premere il pulsante  -  per spostare il cursore a sinistra (in corrispondenza della "S" (Si) e poi premere di nuovo il pulsante  SET .

    Orologio Calendario   Real-Time Clock

    A questo punto è possibile modificare, in sequenza, i valori dei seguenti campi:

    • Giorno della Settimana (visualizzato con 3 lettere)
    • Giorno del Mese
    • Mese
    • Anno (ultime 2 cifre)
    • Ore
    • Minuti
    • Secondi

    Orologio Calendario   Real-Time Clock

    Premere il pulsante  Data  per spostare il cursore sui campi da modificare. La selezione è di tipo circolare quindi, una volta arrivati all'ultimo campo (quello dei Secondi), un'ulteriore pressione del pulsante  Data  sposta di nuovo il cursore sul primo campo (Giorno della Settimana) e così via.

    Per cambiare i valori su ogni campo, utilizzare i due pulsanti  +  (aumenta il valore) e  -  (diminuisce il valore): anche in questo caso la modifica è di tipo circolare per cui una volta giunti al valore massimo, si riparte da quello minimo e così via.

    Orologio Calendario   Real-Time Clock

    Orologio Calendario   Real-Time Clock

    Orologio Calendario   Real-Time Clock

    Orologio Calendario   Real-Time Clock

    Orologio Calendario   Real-Time Clock

    Orologio Calendario   Real-Time Clock

    Dopo aver terminato di modificare la data e l'orario, premere il pulsante  SET  per uscire dalla fase di configurazione e tornare alla visualizzazione in tempo reale dell'Orologio.

    Orologio Calendario   Real-Time Clock

  OPZIONE "SEGNALE ORARIO"

    L’opzione "SEGNALE ORARIO" fa in modo che l'Orologio emetta un breve segnale acustico ad ogni ora.

    Per abilitare questa opzione, premere e mantenere premuto il pulsante  SET  per almeno 2 secondi, fino a quando sul display non appare il seguente messaggio:

    Orologio Calendario   Real-Time Clock

    Quando il Segnale Orario è abilitato, sulla seconda riga del display (accanto all'ORA) è visualizzata l'icona SPEAKER, come visibile nelle seguenti immagini:

    Orologio Calendario   Real-Time Clock

    Per disabilitare il Segnale Orario il procedimento è identico: premere e mantenere premuto il pulsante  SET  per almeno 2 secondi, fino a quando sul display non appare il seguente messaggio:

    Orologio Calendario   Real-Time Clock

  OPZIONE "LINGUA"

    Per cambiare la lingua dei messaggi, premere e mantenere premuto il pulsante  Data  per almeno 2 secondi, fino a quando sul display non appare uno dei seguenti messaggio:

    Orologio Calendario   Real-Time Clock

    Ripetere la procedura ogni volta che si desidera cambiare la lingua.

DOWNLOAD    [ TORNA ALL'INDICE ]

Cliccando sui seguenti link, potete scaricare i datasheet dei chip DS1307 e PIC16F886. Per domande, richieste o suggerimenti utilizzare SOLO la sezione COMMENTI.

Download

Scarica il Datasheet del microcontrollore Microchip PIC16F886

Scarica il Datasheet del chip Maxim DS1307

COMMENTI    [ TORNA ALL'INDICE ]

[ Torna all'inizio della pagina ]

AVVERTENZA IMPORTANTE: Tutti i progetti, gli schemi elettronici e i software presenti su www.narcisivalter.it hanno carattere esclusivamente didattico, informativo e sperimentale. Trattandosi di prototipi artigianali non certificati (privi di marcatura CE), vengono forniti 'così come sono' (AS IS) e non sono destinati all'uso in impianti civili, domestici, commerciali o industriali. L’autore non garantisce la funzionalità né la sicurezza dei circuiti e declina ogni responsabilità civile e penale per danni diretti o indiretti a cose o persone (inclusi cortocircuiti o incendi) derivanti dal loro montaggio o utilizzo. L’utente accetta di utilizzare i contenuti del sito sotto la propria esclusiva responsabilità.
PERICOLO ELETTRICO (220-240V): Molti dei circuiti descritti su www.narcisivalter.it sono sottoposti alla tensione di rete elettrica e comportano un grave pericolo di folgorazione, lesioni o morte se non manipolati secondo le normative di sicurezza vigenti. Anche tensioni inferiori (pari o superiori a 25V) possono risultare pericolose in determinate condizioni. La riproduzione dei progetti richiede solide competenze in fisica ed elettrotecnica; l'utente è l'unico responsabile della verifica di conformità e della sicurezza di ciò che realizza.
TERMINI PER LE SCHEDE A GIORNO E I DISPOSITIVI INSCATOLATI: Le schede elettroniche e i dispositivi assemblati (sia in versione nuda open-frame che inseriti in contenitori/scatole) proposti in vendita su questo o su altri siti (inclusi alcuni marketplace) sono realizzazioni artigianali in pezzo unico o in tiratura limitata, prive di certificazione e marcatura CE. Tali dispositivi non costituiscono prodotti di serie per uso civile o domestico, ma sono da considerarsi esclusivamente prototipi e moduli sperimentali destinati all'uso in ambiente di laboratorio, test, studio o sviluppo da parte di personale qualificato. L'acquirente si assume la totale ed esclusiva responsabilità civile e penale legata al loro utilizzo, al corretto cablaggio esterno, al rispetto delle tensioni d'esercizio e all'inserimento di adeguate protezioni esterne (fusibili). L'autore declina ogni responsabilità per cortocircuiti, incendi, folgorazioni, malfunzionamenti o qualsiasi danno diretto o indiretto a cose o persone derivante dall'uso o dall'installazione degli apparati forniti.

Privacy Policy - Cookie Policy - Condizioni d'Uso