www.narcisivalter.it
| |||
Translate Page |
RTC - OROLOGIO / DATARIO LCD con DS1307(RTC - Real-Time Clock based on PIC16F886 and DS1307)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:
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).
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). 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...'). 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). 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). 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):
Premere il pulsante SET per configurare la Data e l'Ora.
Premere il pulsante - per spostare il cursore a sinistra (in corrispondenza della "S" (Si) e poi premere di nuovo il pulsante SET .
A questo punto è possibile modificare, in sequenza, i valori dei seguenti campi:
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.
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.
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:
Quando il Segnale Orario è abilitato, sulla seconda riga del display (accanto all'ORA) è visualizzata l'icona SPEAKER, come visibile nelle seguenti immagini:
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:
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:
Ripetere la procedura ogni volta che si desidera cambiare la lingua. Cliccando sui seguenti link, potete scaricare i datasheet dei chip DS1307 e PIC16F886. Per tutte le altre richieste (firmware HEX, suggerimenti, ecc.) utilizzare SEMPRE la sezione COMMENTI.
|