Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

8
voti

Elettronica Digitale Pratica III - Logic Switch & Indicator

Indice

Introduzione

Continua la serie di articoli di introduzione all'Elettronica Digitale per principianti, ponendo ancora particolare rilievo all'aspetto pratico, poiché come disse Confucio:

  • I hear, and I forget;
  • I see, and I remember;
  • I do, and I understand.

Questo per ribadire che non basta leggere un articolo, un libro, un manuale per capire, ma occorre inevitabilmente provare, fare, testare.
E di prove ne faremo con l'argomento di oggi, che si ricollega al precedente articolo Elettronica Digitale Pratica II dove avevamo notato un paio di problemi legati all'operatività degli esperimenti:

  • Infilare e sfilare i cavetti manualmente per provare le varie combinazioni;
  • Osservare il LED spento o acceso e ricordarsi di abbinarvi il valore dell'uscita 1 o 0 rispettivamente, in modo contro intuitivo.

E' giunto il momento di affrontare questi due aspetti predisponendo degli accessori, che ci facilitino nella configurazione degli ingressi e nella verifica visuale delle uscite. Chiameremo:

  • Logic Switch, il circuito per la gestione degli ingressi;
  • Logic Indicator, il circuito per la visualizzazione delle uscite.

Avremo occasione di conoscere nuovi IC come il 74LS245 e l'ULN2803 che potranno tornare utilissimi in molte altre circostanze.

Bene, cominciamo col Logic Switch.

Logic Switch

Finora, per valorizzare gli ingressi delle porte logiche, abbiamo semplicemente connesso un cavetto sul polo positivo per impostare 1 logico, oppure a massa per impostare lo 0 logico. Dunque vorremmo qualcosa che ci eviti lo spostamento manuale di fili e cavetti sui circuiti che stiamo testando. La prima soluzione che ci viene in mente è l'interruttore. Però per ogni ingresso da gestire ce ne vorrebbero 2: uno sul polo positivo ed uno a massa. Proviamo a vedere che succede:

Restiamo subito alquanto perplessi, dovremmo stare attenti ad azionarne uno per volta altrimenti mandiamo in corto il circuito; direi che non va bene: idea scartata. Cerchiamo di ragionare meglio. A mano ora cosa facciamo? Un capo del filo sull'ingresso della porta logica è sempre fisso, mentre l'altro estremo lo colleghiamo sul positivo o a massa. Quindi si tratta di deviare il collegamento tra positivo e massa. Ecco ora ci viene in mente che potremmo usare un deviatore. Vediamo se funziona:

Bene! Direi che va molto meglio: sembra proprio fare al nostro caso! Nel circuito descritto nel precedente articolo, gli ingressi da simulare erano 3, quindi, dovremmo predisporre 3 deviatori. Però già che ci siamo potremmo realizzare qualcosa di generico che possa andar bene anche con più ingressi, magari 8 per simulare gli 8 bit di un byte. Allora usiamo 8 deviatori e vediamo come collegarli:

Notiamo che lo spazio occupato è eccessivo, ci vorrebbe un'intera BreadBoard per contenerli! Anche questa soluzione non ci convince. Qualche altra idea?

Girovagando su Internet troviamo un dispositivo veramente minuto:

Fig.01: DIP Switch

Fig.01: DIP Switch

E' un DIP Switch (Dual Inline Package), è costituito da 8 interruttori a slitta, è compatto, si innesta bene sulla BreadBoard e costa poco. Con questo si risolve certamente il problema dello spazio, ma rimane da scoprire come collegare ogni interruttore: siamo punto e a capo! Allora un altro giro su Internet e voilà, ecco la soluzione:

Per correttezza ed anche perchè è interessante riporto il sito http://www.play-hookey.com/

Allora come è stato risolto l'uso di un semplice interruttore per portare tensione o collegare a massa l'ingresso della nostra porta logica?

  • Quando l'interruttore è aperto, sull'ingresso della porta logica arriva la tensione di 5 V, la resistenza è ininfluente, poiché la porta logica non assorbe corrente. Da notare che tale resistenza viene detta di "pull-up" proprio perchè tiene alta la tensione sulla sua estremità.

  • Quando l'interruttore è chiuso, la resistenza e la porta logica viene posta a massa. In questo caso avremo passaggio di corrente sulla resistenza pari a I = V/R = 5/1000 = 5mA: è il prezzo, accettabile, che dobbiamo pagare per testare agevolmente i nostri dispositivi. Tuttavia nessuno ci vieta di aumentare a piacere la R di pull-up che, generalmente, è posta a 10K.

Bene! Scoperto il trucco, lo estendiamo sugli 8 interruttori del DIP Switch. Al posto delle 8 resistenze di pull-up da 1K, poniamo una rete resistiva SIL (Single In Line Package) compatta da 4,7K (l'unica che mi avanza) per risparmiare spazio e diminuire la corrente persa quando gli interruttori sono chiusi a massa. Per finezza montiamo anche un condensatore per smorzare le oscillazioni di tensione sull'apertura e chiusura degli switch. Non è proprio un sistema anti-bouncing (anti-rimbalzo) ma ci accontentiamo. Ed ecco lo schema del nostro Logic Switch:

Quindi usiamo questi componenti:

Fig.02: Componenti Logic Switch

Fig.02: Componenti Logic Switch


e li montiamo su una basetta di prototipazione BreadBoard:

Fig.03: Logic Switch versione base

Fig.03: Logic Switch versione base


Ed ora lo testiamo sul circuito visto sulla breadboard nell'articolo precedente. Colleghiamo i 3 ingressi al Logic Switch e da qui gestiamo agevolmente tutte le prove che vogliamo, semplicemente spostando gli interruttori a slitta sul DIP Switch:

Fig.04: Test Logic Switch vers. base

Fig.04: Test Logic Switch vers. base


E' innegabile la comodità di agire sugli interruttori, magari aiutandosi con un cacciavite, anziché spostare a mano di volta in volta i vari fili col rischio di confondersi. In questo caso abbiamo bisogno di gestire solo 3 ingressi, ma abbiamo predisposto uno strumento valido per controllare 8 ingressi che potrà rivelarsi utile anche in altre occasioni. Potremmo accontentarci così e concludere oppure cogliere l'occasione per affinare lo strumento e per conoscere un altro integrato: il 74LS245. Vediamo di che si tratta e perché ci torna utile.

74LS245

Per scoprire cosa è andiamo a consultare il datasheet la cui lettura è obbligatoria, si trova facilmente in Rete e per chi non avesse una fonte dove reperirlo, ricordo che basta cercarla su Google o direttamente nei siti dei distributori di componenti elettronici.

Il titolo del datasheet è 3-STATE Octal Bus Transceiver, vediamo cosa ci suggerisce:

  • 3-STATE significa che i pin di comunicazione possono assumere anche lo stato di alta impedenza (pin isolato come se fosse un interruttore aperto) oltre agli stati logici 1 e 0;
  • Octal Bus significa che dispone di 8 ingressi e 8 uscite;
  • Transceiver vuol dire che trasmette in uscita gli 8 bit che riceve in ingresso.

In particolare è bidirezionale, ha correnti di uscita più elevate rispetto ai corrispondenti valori TTL e viene usato per interfacciare 2 Bus (linee di comunicazione tra dispositivi), etc. Insomma ha diversi vantaggi ed usi, ma a noi può tornare utile per smorzare le micro oscillazioni che si verificano durante l'apertura o la chiusura degli interruttori. Infatti, gli ingressi sono dei buffer Schmitt-trigger in grado di mantenere stabile il valore di ingresso nonostante le eventuali oscillazioni provocate dall'interruttore nel DIP Switch. Bene, vediamo come collegarlo esaminando i pin sul datasheet:


n. pin collegamento
10 GND
sul polo negativo
20 Vcc
sul polo positivo a +5V
01 DIR
sul polo positivo a +5V: utilizziamo la direzione dal bus A al bus B
19 G
sul polo negativo per abilitare ingressi e uscite
da 2 a 9
ingressi
da 11 a 18
uscite


e montiamolo su una basetta coi classici condensatori da 100 nF ed elettrolitico da 10uF:

Fig.05: Octal Bus Transceiver

Fig.05: Octal Bus Transceiver


Infine uniamo le due basette e colleghiamo le uscite dal DIP Switch agli ingressi del Bus Transceiver:

Fig.06: Logic Switch completo

Fig.06: Logic Switch completo


Bene! Ora non ci resta che collegare 3 uscite del Bus Transceiver alle 3 entrate della Rete Combinatoria vista nel precedente articolo. Ricordo che gli ingressi A, B e C simulavano rispettivamente i sensori di: presenza persona, sensore umidità e timer giornaliero. Colleghiamo l'alimentazione da 5 volt e col nostro nuovo Logic Switch possiamo agevolmente testare tutte le 8 combinazioni possibili semplicemente agendo sugli interruttori a slitta:


Fig.07: Test Logic Switch completo

Fig.07: Test Logic Switch completo


Nella foto notiamo che i 3 ingressi sono collegati agli interruttori 1, 2 e 3 in posizione ON, ovvero chiusi a massa e, quindi, gli ingressi sono a 0 volt e 0 logico. Ricordiamo che in questa configurazione degli ingressi, la ventola deve rimanere spenta e spento dovrebbe essere il LED che la simula. Invece il LED è acceso per i motivi visti nel primo articolo. Il secondo problema che ci eravamo preposti di risolvere era proprio questo e lo affrontiamo subito nel successivo paragrafo col Logic Indicator

Logic Indicator

Nel primo articolo Elettronica Digitale Pratica I avevamo notato l'impossibilità di accendere un LED collegandolo direttamente al pin di un integrato TTL sfruttando la IOH (corrente di uscita High) poiché limitata a 0,4mA: decisamente insufficiente per accendere il LED. Per ovviare all'inconveniente avevamo dovuto alimentare il LED con la corrente IOL limitata a 8mA ma sufficiente. Peccato che il LED si accende quando l'uscita è bassa. Naturalmente vorremmo, invece, vedere il LED acceso quando l'uscita è High e spento quando l'uscita è Low. Come fare?

Un modo consiste nel pilotare il LED con un transistor usato come interruttore:

Potrebbe andar bene, ci basta aggiungere un transistor ed una resistenza al nostro circuito sotto test e potremmo concludere. Però, già che ci siamo, vorremmo realizzare qualcosa di generico, magari con 8 LED per evidenziare 8 uscite in modo da ritrovarci con un dispositivo valido anche per altre occasioni. Replicare lo schema per 8 volte, occupando un sacco di spazio con 8 transistor ci pare eccessivo. Ci viene in aiuto un integrato già bello e pronto: ULN2803. Vediamo di che si tratta.

ULN2803

Come al solito è obbligatorio consultare il datasheet col quale comprendiamo che si tratta di un Octal High Voltage, High Current Darlington Transistor Array realizzato apposta per interfacciare dispositivi TTL con apparati che richiedono elevate correnti o tensioni come lampade, relè, motori o, appunto, i nostri LED. Riporto lo schema presente sul datasheet così discutiamo dei collegamenti avendo i pin sott'occhio:

Fig.08: ULN2803

Fig.08: ULN2803

Questo IC accetta input sugli ingressi da 1 a 8, con tensione compatibile TTL, quindi fino a 5 V, mentre i pin di uscita vanno da 11 a 18. Quando un ingresso è Low la rispettiva uscita è in alta impedenza, come se fosse un interruttore aperto e, quindi, non emette ne assorbe corrente. Quando un ingresso è High la rispettiva uscita conduce a massa, quindi assorbe corrente. Tale tipologia di uscita è chiamata Open Collector: o non conduce, o collega a massa. Quindi occorre predisporre una sorgente di tensione, esterna all'integrato, che alimenti il dispositivo collegato alla sua uscita e scarichi corrente a massa attraverso di esso. Infatti nell'integrato è presente solo il pin 9 di Ground ma non c'è il pin di alimentazione. Il pin 10 è detto "common free wheeling diodes" e servirebbe nel caso di carichi induttivi che potrebbero suscitare picchi di tensione, quindi va collegato a VCC in modo che i diodi possano scaricare tali picchi. Non è il nostro caso, potremmo anche lasciarlo disconnesso, ma non ci costa nulla collegarlo comunque al polo positivo.

Dunque vediamo con uno schema come collegare i nostri LED:


Ed ora montiamo il nostro Logic Indicator a fianco del Logic Switch in modo da avere tutto su un unico blocchetto:


Fig.09: Logic Switch & Indicator

Fig.09: Logic Switch & Indicator


Ottimo! Non ci resta che ritestare il circuito della ventola.


Test circuito ventola

Allora col nostro nuovissimo dispositivo composto dal Logic Switch per gli ingressi e dal Logic Indicator per l'uscita ci disponiamo per il test del circuito combinatorio che controlla la ventola, collegando direttamente l'uscita del 74LS00 ad uno degli ingressi dell'ULN2803:


Fig.10: Test col Logic Switch & Indicator

Fig.10: Test col Logic Switch & Indicator


Fantastico! Funziona! Possiamo provare tutte le 8 combinazioni agendo sul DIP Switch e vedere il LED illuminarsi quando effettivamente la ventola dovrà accendersi. Possiamo ritenerci soddisfatti e concludere? Soddisfatti sicuramente, ma prima di concludere direi che vale la pena fare qualche controllo sulle tensioni e sulle correnti: quindi ancora un po' di pazienza perché, forse, il bello deve ancora venire.

Controllo tensioni

Iniziamo col controllare tutte le differenze di potenziale, così impostiamo il multimetro sulle misure di tensione e non corriamo il rischio di confonderci continuando a spostare i suoi connettori. Prima di controllare i vari dispositivi, verifichiamo che la VCC e la GND siano distribuite in modo uniforme sulle basette. Per fare ciò individuiamo dei punti significativi sulle BreadBoard in corrispondenza dei fili di alimentazione:

E procediamo verificando la massa a 0V e l'alimentazione di +5V, ponendo il connettore di massa del multimetro nel punto A:

Posizione VCC (V) GND (mV)
A 4,99 0
B 4,99 0
C 4,99 7
D 4,99 8
E 4,98 8
F 4,98 9

Notiamo che l'alimentazione non è distribuita in modo ottimale, con variazioni di circa 10 mV. Per gli scopi attuali è ancora accettabile, ma il fenomeno va tenuto in considerazione o, per lo meno, sotto osservazione per esperimenti su BreadBoard più estesi e complessi. La causa si può imputare ai contatti non ideali dei fili che introducono una pur minima resistenza, infatti il degrado aumenta più ci si allontana dal punto di alimentazione (A).

Ora passiamo alla verifica delle tensioni di Input/Output sui Circuiti Integrati:

VI/O 74LS245 (V) 74LS00 (V) ULN2803 (V)
VIH 4,98 3,70 3,56
VIL 0,00 0,10 0,17
VOH 3,70 3,56 4,30
VOL 0,10 0,17 0,67

Confrontiamo tali valori con quelli indicati nei rispettivi dataSheet. Per i primi 2 IC, il compito è semplice dato che sono riportati in modo chiaro. Per l'ULN2803 il compito è più gravoso perché nelle Electrical Characteristics non sono riportati tali valori dato che essi variano in base alle ampie condizioni d'utilizzo che l'integrato permette. Comunque diamogli un'occhiata:


Fig.11: ULN2803 Electr. charact.

Fig.11: ULN2803 Electr. charact.


Viene indicata la Input Voltage che, per l'ULN2803, è compresa tra 2,4 e 3 V per correnti assorbite dall'uscita IC tra 200 e 300 mA. Noi abbiamo misurato una VIH da 3,56 V e, quindi, siamo allineati. Più significativo può essere il grafico Input Current versus Input Voltage che mostra tensioni di ingresso variabile tra 2 e 6 V:


Fig.12: ULN2803 V/I input

Fig.12: ULN2803 V/I input


Bene! Direi che tutte le tensioni rientrano nelle specifiche. Per concludere rileviamo anche le tensioni ai capi di un LED acceso e di uno spento:

LED sull'ULN2803 (V) sulla R (V)
ON 0,67 2,55
OFF 4,30 4,98


Dove notiamo che, quando acceso, sul LED passa una corrente di circa 5 mA (caduta di tensione sul resistore da 470 Ω):

I_{LED}=\frac{4{,}98-2{,}55}{470}=5{,}17\ mA


E con questo abbiamo concluso positivamente la verifica delle tensioni: Good Job! Passiamo alle correnti.

Controllo correnti

Ora ci armiamo di santa pazienza perché per misurare le correnti dovremo sfilare e ricollegare un po' di fili in modo da interporre l'amperometro, ma penso ne valga la pena.

Cominciamo con le correnti assorbite dai vari dispositivi:

Dispositivo ICC (mA)
Totale 58,0
DIP Switch, pin 3 ON 01,0
74LS245 50,0
74LS00 01,8
ULN2308, pin 10 00,0
LED ON 05,0
LED OFF 00,0

E fin qui tutto bene. Da notare il preponderante consumo del Bus Transceiver che, però, il suo datasheet ci conferma rientrante nei valori tipici. Passiamo alle correnti di input/output:

II/O 74LS245 (mA) 74LS00 (mA) ULN2803 (mA)
IIH 0,0 0,0 0,7
IIL 0,2 0,2 0,2
IOH 0,0 0,7 0,0
IOL 0,2 0,2 5,0


Okay, Houston, we've had a problem here!

E si! Abbiamo un problema! La IOH del 74LS00 deve essere inferiore a 0,4 mA: ho impressione che questa IOH ci perseguiti! Ordunque, diamo uno sguardo al grafico di figura 12. La tensione VIH che mandiamo in ingresso al Darlington è 3,56 V che, sul grafico corrisponde proprio ad una corrente di 0,7 mA. Ci chiediamo: è proprio necessaria una VIH così elevata? Inoltre guardiamo la figura 11 nel riquadro Input Voltage, con 3 V potremmo assorbire in uscita persino 300 mA: mi pare eccessivo per il nostro minuscolo LED. Allora interponiamo un resistore variabile da 0 a 25 kΩ tra l'uscita del 74LS00 e l'ingresso all'ULN2803, col multimetro misuriamo la corrente ed osserviamo il livello minimo col quale il LED si accende:

R (KΩ) IIH (mA) LED
0,0 0,7 acceso
4,4 0,3 acceso
8,3 0,2 acceso
22 0,1 affievolito
25 0,1 spento

Bene, direi che con una R standard da 8,2 kΩ possiamo risolvere il problema, la corrente è limitata a 0,2 mA ed il LED è ancora brillante. Montiamo questo resistore e misuriamo la tensione che arriva al Darlington: 1,9 V.
Andiamo a vedere il grafico di figura 12: con 1,9 V siamo leggermente fuori a sinistra, però abbiamo verificato sperimentalmente che è sufficiente per mandare in saturazione il Darlington e far accendere il LED. D'altra parte la corrente necessaria per accendere il LED è veramente minima rispetto alla potenzialità del dispositivo. Quindi, mostrando il risultato finale, anche qui concludo con Good Job!


Fig.13: Logic Switch & Indicator on the job

Fig.13: Logic Switch & Indicator on the job

Conclusione

Se notate errori, omissioni e sviste, vi prego di avvisarmi.

Che aggiungere? Confucio aveva ragione: provando e riprovando si impara e, perché no, ci si diverte! Un saluto a tutti i lettori.

6

Commenti e note

Inserisci un commento

di ,

complimenti!

Rispondi

di ,

Articolo molto interessante, ma soprattutto utile!

Rispondi

di ,

Grazie admin!
Grazie carlomariamanenti!

Didattica è un parolone! Il mio è solo un resoconto di un semplice principiante.
Se fosse didattica sarebbe pessima perché la migliore è quella che di "fili scoperti" ne lascia in giusta quantità.
Troppi punti oscuri indurrebbero alla rinuncia.
Pochi e semplici non farebbero riflettere abbastanza.
La giusta misura è quella che in un primo momento induce l'allievo a sacramentare contro l'insegnate ritenendolo incapace di spiegare, ma rileggendo, ripensando, ragionando, quando finalmente si comprende e ci si illumina: quanta soddisfazione e quanta gratitudine verso quell'insegnante che aveva "spiegato male".

Rispondi

di ,

Ben fatto Robert8, complimenti per l'esposizione chiara ed efficace. Grazie, -carlo.

Rispondi

di ,

Ora possiamo definire lo style di Robert8: una didattica dell'elettronica che non lascia nemmeno un filo scoperto! L'articolo è scritto in modo che pur avendolo solo letto, è come se avessi realizzato in pratica quanto vi è descritto. Insomma una fusione delle massine di Confucio che leggendo avrebbe senz'altro esclamato in via eccezionale: I see, and I understand!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.