Cum conectezi un afișaj multiplexat cu 4 cifre a câte 7 segmente la o placă de dezvoltare Arduino folosind rezistoare de limitare a curentului și tranzistori
Afișajele cu 7 segmente sunt utilizate pe scară largă la ceasuri, aparate de măsură și alte dispozitive care afișează informații numerice. Segmentele afișajului, care sunt de cele mai multe ori formate din LED-uri, sunt aprinse coordonat în diverse combinații ce reprezintă numere arabe. Pot afișa doar un set restrâns de caractere, deoarece forma afișată este compusă din numai 7 elemente.
Afișajele cu 7 segmente sunt cel mai ușor de procurat, fiind și mai ieftine în comparație cu alte tipuri. Se găsesc pe piață inclusiv module cu afișaj cu 7 segmente și 4, 8 sau mai multe cifre. Aceste module includ un driver pentru afișaj, care primește informația numerică ce va fi afișată de la un microcontroller (MCU) printr-o interfață serială (SPI, I2C). Câteva exemple de astfel de drivere sunt: MAX7219, TM1637 și TM1638. Ultimele două includ suport pentru citirea apăsărilor unor butoane, deci pot fi utilizate la proiectarea unor panouri frontale cu afișaj și butoane.
Acest articol este despre afișajele de 4 cifre cu câte 7 segmente care nu au driver. Acestea conțin doar LED-uri conectate într-o configurație specifică. Deoarece sunt ușor de găsit, mulți le conectează la plăci de dezvoltare (de cele mai multe ori Arduino). Vom vedea în acest articol cum se realizează o interfață corectă între placa de dezvoltare și afișaj.
Afișajul propriu-zis este alcătuit din 4 cifre care conțin câte 7 LED-uri pentru segmente și unul pentru separatorul zecimal (punct). Rezultă 32 de LED-uri care pe care placa de dezvoltare trebuie să le poată controla independent. Dacă ai un astfel de afișaj, vei observa că are doar 12 pini. Cum este posibil? LED-urile sunt multiplexate. Există 4 pini comuni, câte unul pentru fiecare cifră. Când acest pin este selectat, MCU-ul are control total asupra LED-urilor ce fac parte din acea cifră (7 segmente + 1 punct). Cifrele sunt aprinse secvențial, în succesiune rapidă și par a fi luminate continuu. Totalul de 12 pini rezultă, deci, din 4 pini comuni și 8 pini pentru segmente. Iată schema unui astfel de afișaj.
Schema electrică a afișajelor cu 7 segmente și 4 cifre
În funcție de modul de conectare a LED-urilor la pinii comuni, afișajele sunt de două tipuri: cu anod comun, când toate LED-urile segmentelor unei cifre sunt conectate cu anodul la pinul comun, respectiv cu catod comun. Analizând schema, poți vedea că nu conține altceva în afară de LED-uri. Nu are rezistoare de limitare a curentului, nici tranzistoare. Înseamnă că acestea vor trebui adăugate la conectarea display-ului la Arduino.
Unii „electroniști” nu folosesc rezistoare pentru că aplică semnale PWM (pulse width modulation - modulare lățime puls) pe pinii comuni. Totuși, această metodă nu este deloc recomandată. LED-ul este o diodă, prin care curentul crește exponențial în funcție de tensiune. Generarea unui semnal PWM de acționare a LED-urilor care să nu producă depășirea curentului maxim admis prin LED este imposibil fără un mecanism de reacție a cărui implementare este este mult mai complexă decât adăugarea unui LED. Da, poate că va funcționa fără rezistoare, dar reține că LED-urile funcționează cu curenți peste limita maximă admisă și pinii MCU-ului sunt suprasolicitați. Această metodă nu este fiabilă. Despre omiterea rezistoarelor de limitare a curentului prin LED poți găsi mai multe informații aici (în limba engleză).
Alții adaugă rezistoare doar pe pinii comuni. Dacă doar un segment este aprins, nu este nicio problemă (poți calcula corect valoarea rezistorului în funcție de curentul prin LED). Dar, dacă se aprind mai multe segmente, curentul tensiunea aplicată pe ele scade ca urmare a creșterii curentului total prin circuit, deci a căderii de tensiune pe rezistor. Vei observa că intensitatea segmentelor scade proporțional cu numărul de segmente aprinse. Asta nu ar fi o problemă atât de importantă. Dar curentul necesar aprinderii mai multor segmente vine direct dintr-un pin al MCU-ului. Dacă presupunem că fiecare segment necesită 10 mA, când sunt toate 8 aprinse, pin-ul MCU-ului trebuie să furnizeze 80 mA, valoare peste limita admisă în cazul MCU din cele mai utilizate plăci de dezvoltare.
Metoda corectă de conectare a unui afișaj multiplexat cu 7 segmente la un MCU este următoarea: pinii comuni sunt acționați printr-un driver cu tranzistor iar segmentele prin rezistoare de limitare a curentului. Dezavantajul este creșterea necesarului de componente. Dar, există posibiltatea utilizării unui modul cu driver inclus.
Modul de conectare a display-urilor multiplexate cu 7 segmente la Arduino
Driverele pot fi construite cu orice tranzistoare de uz general. Afișajele tip catod comun necesită tranzistor NPN cu emitorul la masă, iar cele cu anod comun vor fi acționate de PNP-uri cu emitorul conectat la alimentare. Segmentele unui afișaj comun se aprind la setarea pinilor logic „1”. Pentru cele cu catod comun, pinii de ieșire le aprind când sunt logic „0”.
Rezistoarele limitatoare de curent vor avea cel puțin 220 ohmi, dacă alimentarea se face cu 5 volți. În articolul următor, voi încerca să identific pinii unui astfel de afișaj recuperat dintr-un panou frontal și să îl pun în funcțiune pe placa de test. În schema de mai sus poți vedea o numerotare a pinilor. Aceasta nu este valabilă pentru toate display-urile.
Niciun comentariu :
Trimiteți un comentariu
Vă recomandăm să citiți regulamentul comentariilor înainte de a scrie un comentariu.