Cronometro Millesimale LCD - 1/1000 sec Stop-Watch

www.narcisivalter.it
Progetti Elettronici

 

Translate Page



 

 

 

 

 

 

 

 


CRONOMETRO MILLESIMALE LCD
con MICROCONTROLLORE PIC16F628A

(1/1000 seconds Stopwatch with LCD module and PIC Microcontroller)


INTRODUZIONE    [ TORNA ALL'INDICE ]

Come già accennato nell'articolo del Cronometro Millesimale con C/MOS, i cronometri con risoluzione da 1/1000 di secondo (1/1000 Digital Stopwatch) sono molto difficili da costruire, specialmente se si utilizza un Microcontrollore. Tuttavia, ho provato a realizzarne uno e dopo vari studi e prototipi, ecco finalmente la descrizione dettagliata per poterne costruire uno, molto affidabile e preciso (la precisione dipende in gran parte dalla bontà del quarzo utilizzato). Naturalmente quando si ha a che fare con cronometri millesimali, difficilmente si può garantire una precisione al 100% per via di numerosi fattori (soprattutto esterni), quali, ad esempio, i tempi di reazione nell'avviare manualmente i pulsanti di Start e Stop oppure gli inevitabili tempi di ritardo dovuti all'inerzia degli attuatori meccanici (relè, contatti automatici, ecc.).

Inizialmente il cronometro prevedeva il classico quarzo da 20 MHz collegato sugli appositi pin del PICmicro ed una complicata rutine di Interrupt: tuttavia ho dovuto abbandonare questa configurazione perché il cronometro non garantiva per nulla una precisione accettabile, specialmente sui tempi lunghi. Alla fine, dunque, ho progettato la mia solita Base dei Tempi esterna, molto stabile e precisa, il cui segnale è applicato al piedino RB0/INT del Microcontrollore: in questo modo ho la certezza che la rutine di Interrupt sarà eseguita esattamente ogni millisecondo.

LO SCHEMA ELETTRICO    [ TORNA ALL'INDICE ]

Nella seguente figura è riportato lo schema elettrico completo del CRONOMETRO MILLESIMALE con PICmicro (cliccare sopra l'immagine per ingrandirla).

Schematic diagram of 1/1000 LCD Stopwatch

Per ottenere una buona precisione, la base dei tempi è stata realizzata utilizzando un quarzo di ottima qualità da 24 MHz: il circuito integrato U2 (M74HC4060B1 della STMicroelectronics) ne divide la frequenza di risonanza per 64 volte, quindi sul piedino 4 (uscita Q6 di U2) la frequenza è pari a 375 kHz (375000 Hz). Il circuito integrato successivo (vedi U3, HEF4059BP o CD4059BP) è un divisore programmabile collegato in modo tale che il suo fattore di divisione sia di 375 volte. Quindi, al piedino 23 di U3 (Output) è presente la frequenza di clock pari a 1000 Hz, molto stabile e precisa, utile per richiamare la rutine di Interrupt esattamente ogni millisecondo (attraverso il piedino RB0/INT di U1, un PICmicro siglato 16F628A).

La precisione del cronometro dipende quasi esclusivamente dalla buona qualità del quarzo e dai due condensatori C4 e CV. Il compensatore CV è utile per "correggere" eventuali piccole tolleranze del quarzo: per la taratura, collegare il puntale di un frequenzimetro sul pin 9 di U2 (CD4060) e regolare il compensatore fino a leggere una frequenza esatta di 24000000 Hz. Tuttavia, è possibile utilizzare anche per CV un condensatore fisso da 47pF ed eventualemnte sostituirlo con il trimmer solo nel caso in cui il cronometro non fosse abbastanza preciso (specialemnte sui tempi lunghi).

All'uscita del microcontrollore è collegato un display LCD 16x1 (16 caratteri su 1 linea) della Epson, siglato EA-D16015-PR1 (sostituibile con il modulo Fordata siglato FDCC-1601) il quale visualizza il tempo trascorso nel formato HH:MM:SS.mmm (Ore:Minuti:Secondi.Millisecondi). Il modulo LCD è compatibile con lo standard Hitachi HD44780.

Per il trimmer o potenziometro T1 (Contrasto LCD) è possibile utilizzarne uno di valore compreso tra 4,7 e 22 Kohm (non è un componente critico) e possibilmente di tipo logaritmico.

Quando il circuito è alimentato solo dalla batteria da 9 V, il transistor Q1 spegne la retroilluminazione del display LCD durante il conteggio così da salvaguardare la durata della batteria stessa: questo avviene quando sul piedino 3 del PICmicro (RA4) è presente un livello logico basso, situazione presente, appunto, solo quando il circuito è alimentato dalla batteria. A proposito di quest'ultima, è possibile usare sia il tipo ricaricabile da 8,4V (Ni-Cd o Ni-MH) o la normale batteria alcalina da 9 V (non ricaricabile )tenendo presente che, in quest'ultimo caso, la resistenza RX (1Kohm) deve essere eliminata dal circuito.

Il connettore M1 è utile per la programmazione On-Board del Microcontrollore (questo connettore è molto utile perché ci consente di lasciare il chip sullo zoccolo durante la programmazione).

L'assorbimento del circuito è inferiore ai 40 mA (circa 10-15 quando la retroilluminazione del modulo LCD è spenta).

Cronometro Millesimale LCD

REALIZZAZIONE PRATICA DEL CRONOMETRO    [ TORNA ALL'INDICE ]

Il montaggio della scheda non è particolarmente impegnativo.

Dopo aver inserito i 7 ponticelli (sono quelli disegnati in rosso nella figura del PCB Layout) si passerà al montaggio di tutti gli altri componenti: l'unico consiglio è di utilizzare sempre gli zoccoli per i circuiti integrati.

La resistenza RX, come già accennato, va montata solo se si utilizza una batteria da 8.4 o 9 V ricaricabile.

Il connettore M1 (ICSP) è utile solo per programmare il microcontrollore direttamente sulla scheda: se non avete questa esigenza, potete evitare di montarlo.

Se si utilizza un quarzo con involucro metallico, consiglio di collegare quest'ultimo alla massa attraverso un reoforo e dopo aver praticato un piccolo foro in corrispondenza della massa, come visibile nella seguente foto:

LCD 1/1000 Stopwatch

Di seguito sono illustrati il Master, le misure della basetta ed il PCB Layout (per scaricare le immagini, cliccare su quella desiderata e, una volta ingrandita, con il tasto destro del mouse scegliere l'opzione 'Salva con Nome' oppure 'Salva immagine con Nome').

1/1000 LCD Chronometer - Master 1/1000 LCD Chronometer - Dimensions 1/1000 LCD Chronometer - PCB Layout

Anche il master di questo progetto (vedi qui il particolare) è stato realizzato con il Bromografo & Timer, utilizzando un tempo di esposizione di circa 4 minuti.

COLLEGAMENTI    [ TORNA ALL'INDICE ]

Per i collegamenti non ci sono particolari note: i 3 pulsanti possono essere collegati attraverso una piattina bifilare mentre al connettore siglato LCD va innestato il Modulo LCD della Epson.

1/1000 LCD Chronometer - Wiring

ATTENZIONE - Se utilizzerete un modulo LCD diverso da quello EPSON, accertatevi sempre della polarità sui piedini 1 e 2 (quelli di alimentazione): può succedere, infatti, che per altri costruttori, questi due piedini siano invertiti per cui consiglio di scaricare sempre il datasheet del modulo che andrete ad utilizzare e verificare bene quale dei due pin sia il positivo. La stessa cosa dicasi per i pin A e K della retroilluminazione (rispettivamente pin 15 e 16 del modulo LCD).

Per collegare la batteria da 9 V e l'alimentatore da 12 Vcc, consiglio di usare un interruttore doppio oppure un unico interruttore bipolare che, all'accensione, colleghi a massa i due poli negativi delle alimentazioni (-12V e -9V).
Come già accennato, l'assorbimento del circuito è di circa 40 mA mentre quando la retroilluminazione del display LCD è spenta, l'assorbimento massimo si aggira sui 10 mA: per questo, anche usando la sola batteria da 9V si avrà una autonomia più che accettabile.

Per azionare i comandi START e STOP da remoto, consiglio di realizzare una piccola modifica formata sostanzialmente da una presa Jack stereo: i due contatti Left e Right di quest'ultima vanno collegati direttamente in parallelo ai pulsanti START e STOP, applicando solo dei diodi di protezione ed un paio di resistenze come visibile nello schema seguente.

Collegamenti

Alla presa jack START / STOP possono essere collegati relè, pulsanti o qualsiasi altro attuatore con contatti di tipo Normalmente Aperti. E' possibile applicare su questo jack anche degli opportuni segnali elettrici che i diodi 1N4148 "adatteranno" alla tensione dei +5 Vcc: i segnali elettrici sulla presa jack devono essere, a riposo, sempre positivi e azioneranno il cronometro quando passeranno a 0V: in altre parole, i segnali esterni azionano i comandi START e STOP con il loro fronte negativo. La larghzza degli impulsi di comando deve essere almeno 55-60 ms per ottenere un efficace segnale di comando.
Le resistenze da 470 ohm sono state inserite sia a protezione dei diodi stessi sia per creare un piccolo disaccoppiamento con il circuito del cronometro millesimale.

Stoppuhr Tausendstel Stoppuhr Tausendstel EPSON LCD 16x1 EA-D16015-PR-1 Cronometro Millesimale Cronometro Millesimale

TARATURA    [ TORNA ALL'INDICE ]

La taratura va fatta semplicemente agendo sul compensatore CV in modo tale da ottenere una frequenza stabile e precisa di 24 MHz (24000000 Hz) sul piedino 9 di U2 (M74HC4060B1) e questo, chiaramente, dovrebbe essere fatto con un frequenzimetro di precisione dopo aver lasciato acceso almeno 10 minuti sia il cronometro sia il frequenzimetro stesso. Poi, per sicurezza, si controllerà anche la frequenza sul piedino 23 di U3 (HEF4059BP) per essere certi che essa corrisponda a 1000.000 kHz (1000 Hz) precisi. Tuttavia, avendo a disposizione un quarzo preciso e di ottima qualità, è possibile inserire inizlamente DUE condensatori fissi (NPO) da 47 pF (sia per C4 che per CV) e quindi verificare la precisione del cronometro.

COMANDI E USO    [ TORNA ALL'INDICE ]

All'accensione, dopo le classiche scritte di copyright, il display visualizza il seguente valore:
Display LCD in Standby.

La retroilluminazione è sempre accesa quando il cronometro è alimentato dalla rete: al contrario, quando il cronometro è alimentato solo dalla batteria da 9V, la retroilluminazione del display si spegne durante il conteggio (in questo modo è possibile "allungare" l'autonomia della batteria stessa).

  START  Quando si preme il pulsante START, il cronometro avvia il conteggio "mascherando" le ultime 3 cifre (quelle dei millisecondi) al posto delle quali sono visualizzati 3 trattini come visibile nell'immagine seguente (nella nuova versione firmware 3.0, non saranno più visaulizzati i trattini, ma direttamente i millisecondi in tempo reale):
LCD standby.

  STOP   Quando si preme il pulsante STOP, il valore istantaneo è "congelato" sul display (tempo parziale), compresi i millisecondi: questo è il tempo intermedio nel formato HH:MM:SS.mmm
LCD standby.
Per indicare che il cronometro sta visulizzando un tempo intermedio, sul display, a sinistra, appare anche la lettera "P" (Pause).
Dopo la pressione del pulsante STOP, il conteggio non si ferma giacché il microcontrollore continua a ricevere gli impulsi da 1 millisecondo sulla Porta RB0/INT e, di conseguenza, continua ad aggiornare le variabili anche se sul display il conteggio appare fermo.

  START  Premendo di nuovo il pulsante START, il display ricomincia a visualizzare Ore, Minuti e Secondi in tempo reale (con i trattini al posto dei millisecondi e senza la lettra "P") come se il conteggio non si fosse mai arrestato:
LCD standby.

  RESET   Per azzerare il display, è necessario prima fermare il conteggio premendo il pulsante STOP e poi premere il pulsante RESET: in questo modo, il display torna a visualizzare nuovamente la schermata iniziale con tutti zeri:
Display LCD in Standby.

Con il trimmer T1 (4,7K oppure 10K logaritmico) si regola il contrasto del display. Questo trimmer (oppure un mini-potenziometro) va collegato con 3 spezzoni di filo sull'apposito connettore e posizionato in maniera tale che possa essere sempre accessibile anche quando il contenitore è chiuso.

Nel seguente video sono riassunte tutte le funzioni appena descritte.

LCD Stopwatch - Cronometro Millesimale

DOWNLOAD (16x1 LCD version)    [ TORNA ALL'INDICE ]

Il disegno dei collegamenti è stato realizzato con l'ausilio del software Corel Draw mentre per gli schemi elettrici ed i PCB ho utilizzato il programma Protel99se.

Cliccando sul link qui sotto, potete scaricare il firmware per i display a 1 riga (16x1).
Per tutte le altre richieste utilizzate la sezione COMMENTI.

Download

Scarica il firmware .HEX (Modulo LCD 16x1) per la programmazione del PIC16F628A (3 KB)

LA VERSIONE CON DISPLAY LCD 16x2 RIGHE    [ TORNA ALL'INDICE ]

Nella versione con il display a due righe (16x2) ho utilizzato il modulo LCD della Fordata siglato FDCC-1602D (sostituibile con il modulo della Wintek siglato WM-C1602N, avendo cura, in questo caso, di invertire il collegamento dei terminali A e K per la retroilluminazione, rispettivamente i piedini 15 e 16): comunque sia, vale sempre il discorso di scaricare il datasheet del modulo LCD che andrete ad utilizzare e controllarne i piedini di alimentazione 1 e 2 (che potrebbero essere invertiti in base al costruttore) ed i teminali A e K.

Lo schema elettrico è identico al precedente ma lo riporto nuovamente di seguito: da notare l'inserimento del modulo LCD 16x2.

IMPORTANTE - Sul PCB, il piedino 1 del connettore LCD risulta a massa (GND) mentre il piedino 2 risulta al positivo (+5V): nel modulo LCD, invece, il piedino n. 1 corrisponde all'alimentazione (+5V o VDD) mentre il piedino 2 corrisponde alla massa (GND o Vss): da tenere a mente quando utilizzerete un modulo LCD diverso da quello utilizzato dal sottoscritto.

Schema Elettrico Cronometro LCD 16x2

Dunque, anche utilizzando un modulo LCD 16x2, il PCB è sempre lo stesso: cambiano solo i collegamenti (come visto poc'anzi) ed il firmware.

Anche i comandi, ovviamente, sono gli stessi, ma il funzionamento è leggermente diverso dal momento che in questo caso è possibile sfruttare 2 righe anziché una sola.

-   All'accensione il display appare come visualizzato nell'immagine seguente:
Display all'accensione (Tin = Tempo Istantaneo, Ptl = Tempo Parziale)

-   Premendo il pulsante  START , il cronometro avvia il conteggio che è visualizzato sulla prima riga (nella nuova versione firmware 3.0, non sono più visualizzati i trattini, ma i millisecondi in tempo reale).
Start cronometro

-   Premendo il pulsante  STOP , il tempo intermedio è visualizzato e memorizzato sulla seconda linea (compresi i millisecondi) mentre sulla prima riga il conteggio continua senza fermarsi.
Stop cronometro

Ad ogni  STOP , sulla seconda linea appare sempre il nuovo tempo intermedio. Per fermare il cronometro premere il pulsante  RESET  il quale azzera anche i tempi riportandoli entrambi al valore 00:00:00.000 (come all'accensione).

Avendo a disposizione 2 righe sul display, ho inserito anche la modalità di conteggio (MODE) per selezionare la quale è sufficiente tenere premuto il pulsante  RESET  e contemporaneamente premere il pulsante  STOP .

Ad ogni combinazione, sul display saranno visualizzati (alternativamente) i seguenti messaggi per circa 1 secondo:
Display RESET   

— Continuos count after 1st START - Il cronometro funzionerà come descritto sopra: il tempo istantaneo non si ferma mai a meno che non si prema il pulsante  RESET .

— Reset count to 0 after each STOP - Con questa modalità, il tempo istantaneo sulla prima riga viene ri-azzerato ogni volta che si preme il pulsante  STOP : sulla seconda riga, appare sempre il tempo intermedio. In questa modalità, le scritte sul display sono differenti, come mostrato nella successiva immagine:
Modalità Reset after Stop (Str = Start, Stp = Stop)

La modalità di funzionamento MODE è memorizzata automaticamente nella Eprom del microcontrollore: così facendo, ad ogni accensione, il cronometro funzionerà con l'ultima modalità impostata dall'utente.

NOTA - Quando il cronometro funziona SOLO con la batteria da 9V, durante il conteggio la retroilluminazione del modulo LCD viene automaticaemnte spenta e si riaccende subito dopo la pressione del pulsante  RESET : tutto questo salvaguardare il più possibile l'autonomia della batteria stessa. Tuttavia è sempre possibile accendere o spegnere la retroilluminazione (sempre durante un conteggio) semplicemente premendo il pulsante  START  (fuzionamento toggle).

LA SERIGRAFIA (Panel silk-screen printing)    [ TORNA ALL'INDICE ]

Per l'uso con il contenitore TEKO Pult 362 ho creato un'apposita serigrafia per il pannello frontale: il piano foratura fa riferimento ai moduli LCD FDCC1602D oppure WM-C1602N (Per scaricare le immagini, cliccare su quella desiderata e, una volta ingrandite, con il tasto destro del mouse scegliere l'opzione 'Salva con Nome' oppure 'Salva immagine con Nome").

LCD StopWatch 1/1000 - Panel holes   LCD StopWatch 1/1000 - Panel Silk-screen printing

LE FOTO DEL NUOVO CRONOMETRO LCD    [ TORNA ALL'INDICE ]

Ed ecco alcune foto del prototipo da me realizzato (tutti i circuiti sono stati installati in un contenitore TEKO modello Pult 363.8). Nel mio prototipo ho inserito un piccolo alimentatore da 12Vcc di recupero. La batteria da 9V è fissata con del nastro bi-adesivo, quindi facilmente removibile per un'eventuale sostituzione.

LCD 16x2 Stoppuhr Tausendstel 1/1000 LCD 1/1000 Stoppuhr Tausendstel LCD 1/1000 StopWatch LCD 16x2 LCD 16x2 Cronometro Millesimale Cronometro Millesimale LCD 16x2

 

Nel successivo video il prototipo finale (firmware 2.0).

LCD 16x2 Stopwatch - Cronometro Millesimale (firmware 2.0)

DOWNLOAD (16x2 LCD version)    [ TORNA ALL'INDICE ]

Cliccando sui link seguenti, si possono scaricare il manuale tecnico e il datasheet del PIC16F628A.
Per tutte le altre richieste utilizzate la sezione COMMENTI.

Download

Scarica il manuale tecnico e le istruzioni del Cronometro (1.5 MB)

Vedi/Scarica il Datasheet del Microcontrollore PIC16F628A (4,8 MB)

The complete prototype of this Stopwatch (in a plastic box) is for sale.
Il cronometro 3.0, come realizzato dall'autore (montato e collaudato, completo di contenitore) è in vendita.
Se interessati, inviare una mail all'autore.

ERRATA CORRIGE E AGGIORNAMENTI    [ TORNA ALL'INDICE ]

Per evitare danni al microcontrollore, consiglio di applicare un diodo 1N4148 (o meglio, BAT41) tra il piedino 3 (RA4) e la VCC (vedi immagini sotto): questo diodo ha la funzione di cortocircuitare al positivo qualsiasi potenziale superiore ai +5V che dovesse presentarsi sul piedino 3 del microcontrollore. Inoltre, sempre per sicurezza, consiglio di rimuovere il connettore per la programmazione on-board del PICmicro, siglato M1 (ICSP) perché un eventuale cortocircuito tra i piedini potrebbe danneggiare seriamente il microcontrollore stesso.

1/1000 LCD Chronometer - Master      1/1000 LCD Chronometer - Dimensions

NOTA - Con la resistenza R2 da 47 ohm, si ha una retroilluminazione sufficiente: tuttavia, se lo si preferisce, è possibile sostituire la resistenza con un ponticello: in questo modo, però, l'assorbimento totale del circuito sale fino a quasi 100 mA ! Un buon compromesso lo si trova con una resistenza intermedia, ad esempio, 18 o 22 ohm (meglio se da 1/2 Watt).

Con il nuovo firmware 3.0 non vengono più visualizzati i trattini "---" ma direttamente le cifre dei millesimi di secondo in tempo reale, così come avviene in qualsiasi altro cronometro. Nel successivo video il prototipo finale che gira con il nuovo firmware 3.0

LCD 16x2 Stopwatch - Cronometro Millesimale (firmware 3.0)

COMMENTI    [ TORNA ALL'INDICE ]

[ Torna all'inizio della pagina ]

DISCLAIMER - 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 220-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