RTC-Real-Time-Clock

www.narcisivalter.it
Progetti Elettronici

 

Translate Page


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 tutte le altre richieste (firmware HEX, suggerimenti, ecc.) utilizzare 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 ]

DISCLAIMER (Dichiarazione di esclusione di responsabilità) - Tutti i progetti elettronici presentati e descritti nel sito internet https://www.narcisivalter.it possono essere utilizzati solo ed esclusivamente ad uso privato e senza scopo di lucro, pertanto non commercializzati. Le documentazioni dei progetti (schemi elettrici, disegni, foto, video, firmware, ecc.) non sono di dominio pubblico per cui i diritti d'autore rimangono dell'ideatore. Per utilizzare a fini commerciali i progetti (o parte di essi) presenti in questo sito web, si dovrà contattare l'Autore per concordare un'eventuale autorizzazione scritta.
- All the projects in this webpage is provided with no explicit or implicit warranties of operation. I do not assume any responsibility for any problems or damage to persons. The project is released "as is" and no support of any kind is provided. If you build the project, you implicitly accept my terms of not taking responsibility. If you do not agree, please, do not build this project and do not download any informations from this website!
- Tutti i progetti elettronici presenti nel sito internet www.narcisivalter.it sono stati realizzati e sperimentati personalmente dall'Autore, tuttavia l'Autore stesso non garantisce, a chi li realizzerà, un sicuro e perfetto funzionamento. Tutti i progetti elettronici presentati sul sito www.narcisivalter.it sono pensati e realizzati per un'utenza addetta ai lavori, specializzata nel settore elettrico ed elettronico e quindi in grado di valutare la correttezza e la funzionalità dei progetti stessi. Pertanto l'utente accetta espressamente di utilizzare i contenuti del sito sotto la propria responsabilità. I PROGETTI ELETTRONICI PRESENTATI SU QUESTO SITO SONO STATI RILASCIATI A PURO TITOLO HOBBISTICO E/O DI STUDIO E L'AUTORE NON GARANTISCE LA MATEMATICA CERTEZZA CIRCA IL LORO FUNZIONAMENTO E NON SI ASSUME ALTRESI' NESSUNA RESPONSABILITÀ, ESPLICITA O IMPLICITA, RIGUARDANTE INCIDENTI O CONSEGUENTI POSSIBILI DANNI A PERSONE E/O COSE DERIVANTI DALL'USO DEI PROGETTI STESSI. CHI REALIZZA E UTILIZZA I PROGETTI ELETTRONICI DESCRITTI IN QUESTE PAGINE, LO FA COME SUA LIBERA SCELTA ASSUMENDOSI TUTTE LE RESPONSABILITÀ CHE, EVENTUALMENTE, NE POTREBBERO DERIVARE.
AVVERTENZE IMPORTANTI - Molti circuiti descritti nelle pagine di questo sito sono sottoposti a tensione di rete 110-240 Vac e pertanto potenzialmente pericolosi; si può rimanere folgorati se non realizzati ed utilizzati secondo le norme di sicurezza vigenti. Pertanto l'utente e' tenuto a verificare se quanto realizza e' conforme alla normativa ed alla legislazione vigente. Per i non "addetti ai lavori" (improvvisati auto-costruttori) va ricordato che in particolari situazioni (diminuzione resistenza del corpo) già una tensione di 25V alternata potrebbe essere pericolosa. L'elettronica e l'elettricita' in genere affascina molte persone ma va ricordato che non basta uno schema scaricato da Internet per poter arrivare a un prodotto funzionante e sicuro: infatti ci vogliono un minimo di conoscienze delle fondamentali leggi della fisica, dell'elettricita' e dell'elettronica oltre all'esperienza pratica nell'uso di attrezzi e strumenti indispensabili, come saldatore, tester, oscilloscopio, ecc...

Privacy Policy - Cookie Policy - Condizioni d'Uso