Ultimamente sul forum ho partecipato alla progettazione e costruzione di un orologio digitale con display a led in logica cablata e nell’occasione, visto che nei vari cassetti avevo diverso materiale adatto allo scopo, mi sono riproposto di costruirne uno adoperando soltanto componenti a disposizione o di recupero ed e' per questo che lo ho definito "strano".
In verità già un anno prima avevo cominciato una realizzazione del genere ma, vuoi per il poco tempo disponibile, vuoi perche' mancava qualche componente, ho sempre rimandato la costruzione definitiva limitandomi a provare i vari circuiti su breadboard.
Ho ritenuto poi opportuno rendere partecipi delle mie esperienze coloro che volessero intraprendere una simile realizzazione, redigendo questo articolo in cui cercherò di spiegare, passo per passo, ogni particolare dei vari circuiti che compongono l’insieme.
Anche coloro che non intendono costruire un orologio, dalle varie componenti dello stesso potranno prendere spunti per altre realizzazioni in quanto, oltre a descrivere quanto io ho fatto, illustrerò anche circuiti alternativi e di contorno che potranno tornare utili per altri scopi.
Come ho premesso, ho adoperato soltanto materiali vecchi o di recupero (a parte le millefori ed una serie di resistenze per i display) per cui molte delle soluzioni da me adottate potranno sembrare obsolete o addirittura assurde; tuttavia, volta per volta, cerchero’ di illustrarvi il perche’ delle mie scelte e le possibili alternative “in meglio” da adottare.
Di seguito, l'immagine di quanto ho costruito (in fase di ultimazione)
Ma vediamo ora, nei dettagli, come sono arrivato al risultato finale e. sopratutto quali sono le alternative in meglio da adottare per chi volesse costruire il proprio orologio.
La costruzione di un orologio digitale "senza l'impiego di microprocessori" richiede, purtroppo,l'impiego di vari stadi:
- 1. Circuito di alimentazione
- 2. Generatore di clock
- 3. Display visualizzatori
- 4. Decodifiche
- 5. Contatori/divisori
- 6. Circuiti di comando
Indice |
CIRCUITO DI ALIMENTAZIONE
Considerando che, di norma, in questo tipo di circuiti vengono adoperati esclusivamente IC CMOS, andra' bene qualsiasi tipo di alimentatore stabilizzato in grado di fornire una tensione tra i 5 ed i 15V con una corrente di 1/1.5A; sara' quindi sufficiente un trasformatore, un ponte di diodi, un piccolo elettrolitico, due ceramici ed un regolatore per la tensione scelta.
Forse, causa il consumo di alcuni tipi di display, il 78xx si dimostrera' insufficiente; potremo in tal caso ricorrere ad un regolatore L7805CV o L7812CV capaci di 1.5A o addirittura ai LT1085CT-5 (o 12) che possono raggiungere i 3A.
Nel mio caso ho dovuto adottare una soluzione un po' piu' macchinosa.
Ho detto gia' che mi sarei servito solo di materiali in mio possesso e, non avendo un regolatore in grado di supportare 2/3A, ho dovuto ricorrere a questa soluzione, visto che i display adoperati ( da soli ) hanno denunciato un consumo medio complessivo intorno ai 750mA.
Se consideriamo che il resto del circuito avra' un consumo stimabile in 200/250mA, andiamo ben oltre il limite di sopportazione di un comune 7805.
Ho allora sdoppiato, dopo ponte e condensatore, la tensione distribuendola ad un 7805 (che servira' il circuito) ed un LM317 "dedicato" esclusivamente ai display. Ho scelto un 7805 perche', come vedremo in seguito e per indisponibilita' di componenti, mi sono servito oltre che di integrati CMOS anche di TTL che, per quanto riguarda l'alimentazione, non vanno oltre i 5V.
Per quanto sia elementare, allego lo schema adottato:
Per questo stadio, mi sono servito di un trasformatore di recupero che eroga 10VAC ed una corrente di circa 3A.
Questa soluzione, per quanto illogica sia dal punto di vista dell'impiego di componenti che per lo spazio che richiede, ha tuttavia una peculiarita' che la rende utile.
Potendo infatti regolare la tensione uscente dal LM317 in un range 1.25/8 V, e' possibile variare la luminosita' dei display fino ad ottenere quella desiderata, naturalmente stando nei limiti.
Tutti noi conosciamo la formula per il dimensionamento delle resistenze da porre in serie ai led, la ripeto comunque per quanti ancora non la conoscessero:
dove R e' il valore in ohm della resistenza, Val il valore della tensione di cui disponiamo, Vled la tensione nominale del led ed Iled la corrente d'esercizio.
Come detto, dispongo di una tensione di 8 V ed i miei display hanno una Iled (per segmento)di 20/25mA e dovrebbero lavorare ad una tensione nominale di 3.8/4.2 V, quindi avremo:
Con questo valore in ohm delle resistenze da porre in serie ai led del display, si dovrebbe ottenere la migliore luminosita' senza "affaticarlo" ma, se tale luminosita' risultasse troppo elevata, potremo ridurre la tensione di una frazione di volt, fino ad ottenere l'effetto desiderato.
Supponendo infatti una tensione di 7.5 V ed applicando la formula inversa, vedremo che i led verranno alimentati con una corrente di:
e quindi :
19 mA ( invece di 22 mA) con conseguente minor luminosita'.
GENERATORE DI CLOCK
Risolto il problema dell'alimentazione, dobbiamo ora pensare a come generare il clock che ci permetta di far " camminare " il nostro orologio.
Per riuscire ad ottenere 1Hz che ci servira' per il pilotaggio dei contatori, si possono percorrere diverse strade:
- 1. prelevarlo dai 50Hz della rete;
- 2. servirci di un oscillatore integrato come il NE555
- 3. adoperare un oscillatore al quarzo.
1Hz dalla rete
Sinceramente, non mi sono mai fidato della frequenza di rete, anche se l'ENEL rassicura sulla sua precisione ed asserisce che gli eventuali errori vengono compensati; tuttavia, chi volesse intraprendere questa strada, puo' adottare lo schema che segue:
Come si può vedere i 50Hz prelevati dal secondario del trasformatore, vengono "tosati" da uno zener e quindi inviati ad un 4040 che provvede alla divisione per 50, ottenendo 1Hz sul pin di uscita.
Il 4040 e' un divisore programmabile (per i particolari rimando al datasheet) in grado di compiere divisioni di frequenza sulla base dell'utilizzo delle varie uscite come puo' vedersi in figura:
Nel caso illustrato, sono stati interessati alla divisione i pin 6/2/14 che provvedono rispettivamente a dividere per 4/32/512, quindi la frequenza in entrata, risultera' divisa per 4+32+512 = 548
Nel nostro schema invece, i pin interessati sono il 2/3/7 che dividono rispettivamente per 32/16/2 per un totale di 50.
Ho scelto il primo divisore per 50 che mi e' venuto in mente. Chi avesse ancora dei SN7490 potra' effettuare la divisione configurandone uno come divisore per 10 e l'altro per 5 (come si faceva una volta).
In alternativa si potrebbe prelevare la frequenza dal positivo del ponte, quindi gia' raddrizzata e a 100Hz e, dopo averla squadrata, dividerla per 100 con un 4518 cosi' configurato:
Oscillatore con NE555
Ottenere 1Hz da un 555 e' estremamente facile, basta configurarlo in astabile e dimensionare resistenze e condensatore; con i valori impostati in schema, si ottiene 1Hz regolando il potenziometro a circa 70kohm.
Anche in questo caso il risultato per quanto attiene la precisione non e' del tutto soddisfacente sia per le tolleranze dei componenti sia per i problemi legati alle differenze di temperatura.
E' consigliabile, comunque, adoperare un trimmer di precisione multigiri per la regolazione in quanto, con un trimmer normale, l'operazione si dimostrerebbe praticamente impossibile.
Oscillatori a quarzo
Nei tempi andati, per realizzare un oscillatore a quarzo si partiva da cristalli di frequenza piuttosto elevata (4/10MHz), dividendo poi la frequenza ottenuta con appositi integrati (es. SN7490) Lo schema da seguire, in questo caso, sarebbe questo:
La frequenza in uscita dal 74HCU04, dipende naturalmente da quella del quarzo; di conseguenza, se ne useremo uno da 1MZ (1.000.000 di Hz), al fine di ottenere 1Hz, dovremo dividerla tre volte per cento. (1.000.000 : 100 = 10.000 : 100 = 100 : 100 = 1 ) , operazione che potremo fare con tre integrati 4518.
La precisione, in questo caso e' piu' che soddisfacente.
Nel campo degli oscillatori a quarzo, la soluzione da preferire e' comunque quella del quarzo da 32.768 Hz che, unito ad un divisore 4060 ed un 4013, ci fornisce 1Hz nel modo piu' semplice.
Questa era la soluzione che anch'io avrei voluto adottare ma, trovato il quarzo, mi sono accorto che uno dei due reofori era spezzato alla base; quindi - seguendo il principio citato all'inizio - ho ripiegato su quello che avevo.
Ho messo insieme, di conseguenza, un vecchio quarzo di recupero da 10Mhz con alcuni divisori ricavando si il risultato voluto, ma con enorme spreco di materiali (un quarzo, 7404,7490 e 3 HCF4518).
Questo lo schema pratico di costruzione della base dei tempi:
L'oscillatore, come si vede e' fatto con un comune SN7404 TTL e, come primo divisore, ho adoperato un SN7490AN (anch'esso TTL) in quanto il divisore 4518 non accetta frequenze superiori ai 4MHz.
Ho inoltre inserito un condensatore variabile che permette la regolazione fine della frequenza in uscita.
Dalle foto, potrete meglio vedere come si e' sviluppato il circuito che fino ad ora vi ho descritto:
Sia la prima che la seconda foto sono state fatte quando gia' avevo montato anche i tre contatori HCF4518 ( si notano sulla parte centrale della basetta) e un dispositivo start/stop che ancora non ho descritto e che spieghero' nel paragrafo accessori.
Per chi poi volesse farsi un'idea di cosa comporta una simile realizzazione, nella foto che segue potra' vedere le connessioni sul lato rame della millefori relative alla base dei tempi ed al primo contatore 4518 (per terminare il lavoro mancano le connessioni per due delle tre 4518 .
DISPLAY VISUALIZZATORI
Visto che non tutti sanno come e' fatto e come funziona un display, cominceremo dalla descrizione di quest'ultimo ( mi perdonino i piu' esperti per la noia arrecata )
Come e' evidente dall'immagine, un display e' composto da sette led a forma di segmento che vanno a formare il numero ed un ottavo (a volte anche nono) per il punto (o i punti) decimale. Ogni segmento, per miglior comprensione e' contrassegnato da una lettera: accendendosi due o piu' segmenti insieme, verra' a formarsi uno dei numeri da 0 a 9.
Per ottenere la cifra 1 si dovranno accendere i segmenti b-c; per la cifra 2 i segmenti a,b,g,e,d,, per la cifra 3 a,b,c,d,g, e cosi' via.
I display possono essere " a catodo comune " o ad " anodo comune "; nel primo caso i terminali negativi saranno collegati insieme e, per accendere i vari segmenti, dovremo inviare una tensione positiva all'altro capo dei vari led. Nel caso opposto tutti i led saranno collegati insieme al positivo di alimentazione; quindi per accenderli dovremo collegare di volta in volta al riferimento il secondo terminale.
Naturalmente, come per tutti gli altri led, dovremo interporre una resistenza limitatrice da calcolarsi caso per caso.
Per ottenere automaticamente l'accensione delle varie cifre ci si serve di integrati denominati decodifiche.
DECODIFICHE
La decodifica piu' comunemente usata per display a catodo comune e la 4511.
Vediamo le funzioni dei vari pin:
- Vcc : E' il pin 16 da collegarsi all'alimentazione positiva.
- GND : pin 8, da collegare al riferimento
- BL : pin 4, (blanking) deve essere sempre collegato al positivo; se collegato al riferienti la decodifica lascia spento il display.
- LT : pin 3, (lamp test) serve solo per il controllo della funzionalita' dei segmenti; altrimenti e' collegato al positivo.
- LE/ST: pin 5 (latch enable strobe) abilita' gli ingressi ABCD quando collegato al riferimento .
- A.B.C.D. : PIN 7.1.2.6 rappresentano gli ingressi mediante i quali e' possibile comporre tutte le cifre da 1 a 9.
Se faremo pervenire un segnale a livello logico 1 su uno degli ingressi A B C D, otterremo la visualizzazione sul display rispettivamente dei numeri 1, 2, 4 e 8.
Per ottenere le cifre mancanti quindi 3.5.6.7.9 bisognera' far pervenire il livello logico 1 su piu' ingressi combinando le cifre tra loro.
Quindi per ottenere la cifra 3, dovremo interessare i pin 7 e 1 (1+2); per la cifra 5 i pin 1 e 2 (1+4) e cosi' di seguito. Se tutti e quattro gli ingressi si trovassero a livello logico 0, sul display apparirebbe la cifra 0.
Ho inserito la tabella per maggior chiarezza
Uscite segmenti : pin 9.10.11.12.13.14.15, andranno collegati ai rispettivi segmenti del display.
A questo punto abbiamo da una parte ottenuto il clock e dall'altra la rappresentazione grafica; non manca che un contatore che, ricevendo l'impulso di clock, trasmetta i comandi alla decodifica perche' quest'ultima rappresenti in sequenza i numeri da 0 a 9.
CONTATORI-DIVISORI
Il contatore CD4518 o HCF4518 ha in effetti al suo interno ben due contatori ed e' provvisto di due uscite ABCD in grado di pilotare due decodifiche e quindi due display.
Come si può vedere dall'immagine,queste sono le funzioni dei vari pin:
- Vcc : pin 16
- Reset : pin 15e7
- Ingressi : pin 1,2 e 9,10
- Uscite ABCD : pin 3,4,5,6 e 11,12,13,14
- GND : pin 8
I pin 8 e 16 sono quelli di alimentazione.
I pin di reset, perche' il conteggio avvenga, dovranno essere tenuti a livello logico 0. Facendo pervenire su questi ultimi un impulso positivo, otterremo l'azzeramento delle cifre.
Le uscite ABCD dei due contatori, andranno collegate alle rispettive entrate delle decodifiche-
Per quanto attiene gli ingressi, occorre fare un'analisi un po' piu' approfondita.
Osservando lo schema interno del contatore, si nota come l'impulso in ingresso sul pin 9 entri prima in un inverter e successivamente in una porta NAND prima di raggiungere lo stadio di conteggio.
Il pin 10, al contrario, entra immediatamente nell'altro pin della porta NAND.
Visto che, in questa configurazione, l'integrato conteggera' l'impulso solo quando questo passera' dal livello logico 0 al livello 1, perche' giunga allo stadio di conteggio e' necessario che il pin 10 venga collegato al positivo. L'impulso in ingresso sul pin 10, che si comporta in maniera inversa (conta solo quando il livello passa da 1 a 0),raggiungera' lo stadio di conteggio solo se il pin 9 sara' collegato al riferimento .
Nel nostro schema adopereremo quindi i pin 1 o 9 come ingressi di clock e il 2 o 10 per trasmettere l'impulso dal primo al secondo contatore.
Lo schema che segue, illustra meglio questa applicazione:
vediamo infatti che l'ingresso di clock e' posto sul pin 1 ed il complementare pin 2 e' collegato al positivo; per la trasmissione dal primo al secondo contatore e' interessato il pin 10 ed il suo complementare pin 9 e' collegato al riferimento.
Chi decidera' di costruirsi l'orologio potra' cominciare a sperimentare questo contatore su breadboard prima di intraprendere la realizzazione finale; si tenga pero' presente che, cosi' configurato, contera' fino a 99 per poi ricominciare da zero.
A noi, come detto, servono pero' tre contatori che rappresentino il primo il conteggio delle ore da 0 a 23; il secondo ed il terzo i minuti ed i secondi da 0 a 59.
Abbiamo visto (nella descrizione del 4518) che, per resettare i conteggi e' necessario portare a livello logico 1 i terminali 15 e 7 ; di solito tale operazione viene effettuata con porte logiche ma io ho voluto attuare un sistema diverso gia' adottato in alcune occasioni e sperimentato con successo basato su due comuni diodi. Della cosa,per quanti vogliano approfondire, si e' parlato lungamente in questo thread:
I diodi, applicati sulle uscite B del primo contatore e C del secondo, al momento in cui dette uscite si troveranno contemporaneamente a livello logico 1 ( e questo avviene soltanto nel momento in cui dovrebbe essere rappresentato il numero 24) permetteranno alla tensione presente sui capi della resistenza da 4.7K, di raggiungere i terminali di reset 15 e 7(che sono in condizione logica 0)azzerando il conteggio che riprendera' dalla cifra 00.
Per il conteggio di minuti e secondi, al contrario, i diodi dovranno essere applicati solo sul primo contatore e precisamente sulle uscite C e B.
Quindi lo schema completo di contatori, decodifiche e display, si presentera' cosi':
Nello schema finale ho indicato "il mio circuito" con display ad anodo comune e decodifiche 7447; per display a catodo comune andranno cambiati i collegamenti sulla base degli schemi prima esposti.
E' anche da considerare che lo schema e' qui rappresentato su di un unico piano per cui, quando andrete a realizzarlo su due basette distinte (come ho fatto io e come ho illustrato con le foto), i display che ora rappresentano le ore diventeranno quelli dei secondi e viceversa; quindi occorrera' fare qualche manovra con le connessioni e con i collegamenti tra clock e 4518. La prima 4518 a sinistra, infatti diventera' il contatore per i secondi per cui l'ingresso di clock passera' dal pin 1 al pin 9.
CIRCUITI DI CONTROLLO
Ora che abbiamo il nostro orologio, dovremo pensare a come metterlo all'ora sia inizialmente, sia in caso di black-out che per eventuali regolazioni.
Nelle mie precedenti esperienze ho adottato per queste funzioni circuiti che a qualcuno potranno sembrare inutili ma, se vi preme vedere sempre l'ora esatta - secondi compresi - confontando l'orologio con il televideo o con orologi radiocontrollati, credo debbano essere inseriti.
Ognuno poi e' padrone di comportarsi, con il suo orologio, come meglio crede.
Per la "messa all'ora" dell'orologio io di solito compio queste operazioni.
- 1. Stop del conteggio
- 2. azzeramento delle cifre
- 3. avanzamento rapido
- 4. start al segnale
Per meglio descrivere le funzioni, ammettiamo di dover mettere l'orologio con il segnale orario delle 12.00.00. Il nostro orologio, a seguito di un black-out, si e' azzerato, ha ripreso il conteggio ed ora segna (es.) le 13.12.15.
A questo punto, con la pressione di un pulsante (RESET), azzereremo tutte le cifre dopo aver fermato il conteggio con il pulsante STOP.
Con il tasto di avanzamento veloce porteremo l'orologio alle 12.00 (i secondi restano come erano a 00 dopo il reset)ed attenderemo il segnale orario o lo scoccare dell'ora stabilita per procedere allo START del conteggio.
Per effettuare il reset di tutte le cifre, bastera' togliere per un istante l'alimentazione al circuito; alla riaccensione i display presenteranno la cifra 00.00.00 e quindi riprendera' il conteggio.
Sara' quindi sufficiente porre un pulsante normalmente chiuso sul ramo positivo di alimentazione dopo il regolatore che, ad una pressione, interrompa l'erogazione della tensione.
Per fare avanzare ore e minuti "velocemente" dovremo necessariamente servirci di un secondo clock da inviare all'ingresso dei due contatori ore e minuti.
Al fine di evitare conflitti di frequenza sui terminali di ingresso dei contatori, sara' bene, prima di effettuare questa operazione, interrompere il flusso normale di clock mediante un circuito del genere:
Ad una pressione sul tasto start, la frequenza entrante nel pin 9 sara' abilitata a passare e potra' essere prelevata dal pin 10.
Premendo invece il pulsante stop, la frequenza rimarra' bloccata fino a quando non si azionera' nuovamente il tasto start.
Naturalmente, oltre le connessioni mostrate, il 4011 dovra' essere alimentato sui pin 14 (Vcc) e 7 (GND).
Nella foto e' possibile notare il dispositivo montato con i due micropulsanti per testarne il funzionamento; il led verde rimane spento quando si preme STOP e lampeggia nella condizione START.
Il secondo clock da inviare agli ingressi dei 4518 andra' prelevato dai generatori di clock; quindi il discorso cambia a seconda della scelta fatta.
- 1. Nel caso sia stata scelta la soluzione dei 50Hz della rete, potremo prelevarlo direttamente dal pin 5 del 4040 che, dividendo la frequenza per 16 (50:16 = 3.125) ci da un clock di 3Hz.
- 2. Se abbiamo scelto la soluzione del quarzo con divisori integrati (4518), sara' sufficiente prelevare la frequenza di 10Hz dal primo divisore dell'ultimo 4518 della catena.
- 3. Con l'oscillatore realizzato con NE555, potremo inserire dello schema gia' visto un secondo condensatore di valore meno elevato da inserire, volta per volta, al posto di quello "originale" mediante un deviatore.
- Adoperando un condensatore da 4.7uF (invece di 10uF) con i valori delle resistenze fissati in 1K e 71K ca., si otterra' una frequenza di circa 2Hz; riducendo il valore a 2.2uF, la frequenza sara' di circa 5Hz .
- 4. Avendo adottato la soluzione con quarzo da 32768Hz piu' 4060, abbiamo a disposizione, sul pin di uscita di quest'ultimo, una frequenza di 2Hz.
- Questa seconda frequenza verra' applicata ad uno dei terminali di due pulsanti normalmente aperti (uno per le ore ed uno per i minuti) ; gli altri due terminali andranno connessi alle rispettive entrate delle due 4518 addette al pilotaggio di ore e minuti.
L'uso di pulsanti potrebbe portare come conseguenza "rimbalzi di frequenza" per cui i contatori potrebbero avanzare di due/tre cifre per volta. Questo problema non mi si e' mai presentato; comunque, se dovesse verificarsi, bastera' far passare la frequenza attraverso due NAND come di seguito indicato, per rimediare il difetto.
A questo punto il nostro orologio e' pronto per essere avviato e messo all'ora.
Per presentarvi il lavoro finito mancava solo un degno contenitore che ancora non ho realizzato (autocostruisco anche questi), quindi mi sono servito di quello di una vecchia realizzazione in attesa di quello definitivo.
CONSIDERAZIONI FINALI
Ho voluto scrivere questo articolo per due motivi: primo perche' la materia mi piace e secondo perche' ho notato che, circa due mesi fa', due thread sugli orologi digitali hanno totalizzato oltre 12000 visite da parte degli utenti, segno evidente che la materia trattata riveste un certo interesse.
Spero di non avervi annoiato e, come sempre, prego di segnalarmi eventuali errori, omissioni o dimenticanze che provvedero' a correggere.
Mi scuso se ho dovuto dilungarmi un po', ma tutto quanto ho scritto mi pareva necessario per una buona comprensione dell'insieme.
Concludo ringraziando tutti per l'attenzione che porrete a questo mio modesto lavoro.
Marco