Cuprins:
- Pasul 1: Componente
- Pasul 2: Primele prototipuri
- Pasul 3: Proiectare PCB
- Pasul 4: Programare
- Pasul 5: Testare
- Pasul 6: Concluzie și pașii următori
Video: Modul de afișare LED multiplu: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Buna tuturor, Îmi place să lucrez cu afișaje LED cu 7 segmente sau cu matrice de puncte și am făcut deja multe proiecte diferite cu ele.
De fiecare dată când sunt interesante, deoarece există un fel de magie în modul în care pot funcționa, deoarece ceea ce vedeți este o iluzie optică!
Afișajele au o mulțime de pini pentru conectarea cu un Arduino (sau un alt microcontroler), iar cea mai bună soluție este să aplici tehnica multiplexării datelor pentru a minimiza utilizarea porturilor lor.
Când faceți acest lucru, fiecare segment sau fiecare LED va fi aprins pentru câteva instante (milisecunde sau mai puțin), dar repetarea acestuia în atât de multe ori pe secundă creează iluzia imaginii pe care doriți să o arătați.
Pentru mine, cel mai interesant lucru este să dezvolt logica, programul, pentru a afla cum pot afișa informațiile corecte în funcție de proiect.
Într-un singur proiect, folosirea afișajelor necesită mult timp pentru a asambla toate componentele pe o placă cu multe fire pentru conexiuni.
Știu că există multe afișaje diferite pe piață care rulează cu I2C, cu modalități simplificate (sau nu), de a le programa și le-am folosit și eu, dar prefer să lucrez cu componente standard precum 74HC595 (multiplexor IC) și ULN2803 (drivere) deoarece acestea vă oferă mai mult control în programul dvs. și, de asemenea, mai multă robustețe și fiabilitate în utilizarea dvs.
Pentru a simplifica procesul de asamblare, am dezvoltat un modul Dipslay LED în scopuri multiple, utilizând componente simple și comune în lumea Arduino.
Cu acest modul puteți lucra cu matrice de puncte cu LED-uri cu două culori în două dimensiuni standard (mai mari și mai mici) și, de asemenea, puteți controla afișajul cu 7 seg x 4 cifre, care sunt foarte frecvente și ușor de găsit pe piață.
De asemenea, puteți lucra cu aceste module în cascadă pe un mod serial (date diferite în afișaje) sau pe un mod paralel (aceleași date în afișaje).
Așadar, să vedem cum poate funcționa acest modul și să vă ajute în dezvoltarea dvs.!
Video (LED Display Module)
Video (Dot Matrix Test)
Salutari, LAGSILVA
Pasul 1: Componente
PCB (Circuit imprimat)
- 74HC595 (03 x)
- ULN2803 (02 x)
- tranzistor PNP - BC327 (08 x)
- Rezistor 150 Ohmi (16 x)
- Rezistor 470 Ohmi (08 x)
- Condensator 100 nF (03 x)
- soclu IC 16 pini (03 x)
- soclu IC 18 pini (02 x)
- Conector pin feminin - 6 pini (8 x)
- Anteturi pin 90º (01 x)
- Anteturi pin 180º (01 x)
- Conector Borne KRE 02 pini (02 x)
- PCB (01 x) - Fabricat
Alții
- Arduino Uno R3 / Nano / similar
- Afișaj LED 04 cifre x 7 segmente - (anod comun)
- LED Dot Matrix Dual Color (verde și roșu) - (Anod comun)
Observații importante:
- Am pus fișa tehnică a tuturor celor mai importante componente doar ca referință, dar trebuie să verificați fișa tehnică a propriilor componente înainte de a le utiliza.
- Această placă a fost concepută pentru a utiliza numai afișaje de ANOD COMUN.
Pasul 2: Primele prototipuri
Primul meu prototip a fost făcut pe o placă de testare pentru a testa circuitul.
După aceea, am făcut un alt prototip folosind o placă universală, după cum puteți vedea în imagini.
Acest tip de placă este interesant pentru a produce un prototip rapid, dar vă dați seama că păstrează încă multe fire.
Este o soluție funcțională, dar nu atât de elegantă în comparație cu un PCB final fabricat (cel albastru).
Nu mă pricep la lipire pentru că nu am suficientă experiență în acest proces, dar chiar și asta am obținut rezultate bune atât cu experiențe, cât și mai importante: nu am ars niciun component și nici mâinile mele!
Probabil că rezultatele de pe următorul meu forum vor fi mai bune datorită practicii.
Datorită acestui fapt, vă încurajez să încercați acest tip de experiență, deoarece va fi excelent pentru dvs.
Nu uitați să aveți grijă de fierul fierbinte și să încercați să nu petreceți mai mult de câteva secunde pe o componentă pentru a evita arderea ei !!
Și, în cele din urmă, pe Youtube puteți găsi multe videoclipuri despre lipire pe care le puteți învăța înainte de a merge în lumea reală.
Pasul 3: Proiectare PCB
Am proiectat acest PCB folosind un software dedicat pentru a produce o placă cu două straturi și a fost dezvoltat mai multe versiuni diferite înainte de aceasta.
La început aveam o versiune pentru fiecare tip de afișaj și la urma urmei am decis să combin totul într-o singură versiune.
Obiective de proiectare:
- Simplu și util pentru prototipuri.
- Configurare ușoară și extensibilă.
- Capabil să utilizeze 3 tipuri diferite de afișaje.
- Lățimea maximă a matricei de puncte mari a LED-ului.
- Lungime maximă la 100 mm pentru a minimiza costurile de producție a plăcii.
- Aplicați componente tradiționale în loc de SMD pentru a evita mai multe dificultăți în timpul procesului de lipire manuală.
- Placa trebuie să fie modulară pentru a fi conectată cu alte plăci în cascadă.
- Iesire serial sau paralel pentru alte placi.
- Mai multe plăci trebuie controlate numai de un Arduino.
- Doar 3 fire de date pentru conexiunea Arduino.
- Conexiune de alimentare externă de 5V.
- Creșteți robustețea electrică aplicând tranzistoare și drivere (ULN2803) pentru a controla LED-urile.
Observație:
În legătură cu acest ultim element, vă recomand să citiți alte instrucțiuni despre aceste componente:
Folosind Shift Register 74HC595 cu ULN2803, UDN2981 și BC327
Fabricarea PCB:
După ce am terminat proiectarea, l-am trimis unui producător de PCB din China după multe căutări cu diferiți furnizori locali și în diferite țări.
Problema principală a fost legată de cantitatea de plăci versus cost, deoarece am nevoie doar de câteva dintre ele.
În cele din urmă, am decis să fac o comandă regulată (nu o comandă expresă datorită costurilor mai mari) de doar 10 consilii de administrație cu o companie din China.
După doar 3 zile plăcile au fost fabricate și trimise către mine traversând lumea în mai mult de 4 zile.
Rezultatele au fost excelente !!
Într-o săptămână după comanda de cumpărare, plăcile erau în mâinile mele și am fost foarte impresionat de calitatea lor ridicată și de viteza rapidă!
Pasul 4: Programare
Pentru programare, trebuie să aveți în vedere câteva concepte importante despre proiectarea hardware și despre registrul de schimbare 74HC595.
Funcția principală a 74HC595 este de a transforma 8-Bit Serial-In în 8 Parallel-Out Shift.
Toate datele seriale intră în pinul # 14 și la fiecare semnal de ceas, biții merg la pinii săi paraleli corespunzători (Qa la Qh).
Dacă continuați să trimiteți mai multe date, biții vor fi mutați unul câte unul la Pin # 9 (Qh ') ca ieșire serială din nou și datorită acestei funcționalități puteți pune alte cipuri conectate în cascadă.
Important:
În acest proiect avem trei IC-uri de 74HC595. Primele două funcționează pentru a controla coloanele (cu logică POSITIVĂ) și ultima pentru a controla liniile (cu logică NEGATIVă datorită funcționării tranzistoarelor PNP).
Logica pozitivă înseamnă că trebuie să trimiteți un semnal de nivel HIGH (+ 5V) de la Arduino, iar logica negativă înseamnă că trebuie să trimiteți un semnal de nivel LOW (0V).
Matricea de puncte a LED-urilor
- Primul este pentru ieșirile catodelor LED-urilor roșii (8 x) >> COLUMN RED (1 până la 8).
- Al doilea este pentru ieșirea L a catodilor LED-urilor verzi (8 x) >> CULOANA VERDE (1 la 8).
- Ultimul este pentru ieșirea anodilor tuturor LED-urilor (08 x roșu și verde) >> LINII (1 la 8).
De exemplu, dacă doriți să activați doar LED-ul verde al coloanei 1 și liniei 1, trebuie să trimiteți următoarea secvență de date seriale:
1º) LINII
~ 10000000 (numai prima linie este activată) - Simbolul ~ este de a inversa toți biții de la 1 la 0 și invers.
2º) CULOANĂ Verde
10000000 (numai prima coloană a LED-ului verde este activată)
3º) CULOANĂ ROȘU
00000000 (toate coloanele LED-urilor roșii sunt stinse)
Declarații Arduino:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Logică negativă pentru linii
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Logică pozitivă pentru coloanele verzi
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Logică pozitivă pentru coloanele roșii
Observație:
De asemenea, puteți combina ambele LED-uri (verde și roșu) pentru a produce culoarea GALBENĂ după cum urmează:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
Se afișează 7 segmente
Pentru acest tip de afișaje, secvența este aceeași. Singura diferență este că nu este nevoie să utilizați LED-urile verzi.
1º) DIGIT (1 la 4 de la stânga la dreapta) ~ 10000000 (cifra setată # 1)
~ 01000000 (cifra setată # 2)
~ 00100000 (cifra setată # 3)
~ 00010000 (cifra setată # 4)
2º) FOLOSIT
00000000 (toți biții sunt setați la zero)
3º) SEGMENTE (de la A la F și DP - verificați fișa tehnică a afișajului)
10000000 (set segment A)
01000000 (set segment B)
00100000 (setează segmentul C)
00010000 (segmentul set D)
00001000 (set segment E)
00000100 (set segment F)
00000010 (setați segmentul G)
00000001 (set DP)
Exemplu Arduino pentru a seta afișajul # 2 cu numărul 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Setați DISPLAY 2 (logică negativă)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Setați datele la zero (nu sunt utilizate)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Setați segmentele A, B, C, D, G)
În cele din urmă, aplicând acest proces, puteți controla orice LED al afișajului și, de asemenea, puteți crea orice caractere speciale de care aveți nevoie.
Pasul 5: Testare
Iată două programe, ca exemplu de funcționalitate a modulului de afișare.
1) Afișare inversă (de la 999,9 secunde la zero)
2) Matricea punctelor (cifrele de la 0 la 9 și alfabetul de la A la Z)
3) Ceas digital RTC în afișaj LED de 4 cifre și 7 segmente
Aceasta din urmă este o actualizare a primei mele versiuni de Digital Clock.
Pasul 6: Concluzie și pașii următori
Acest modul va fi util în toate proiectele viitoare care necesită un anumit ecran LED.
Ca pași următori voi asambla mai multe plăci pentru a lucra cu ele în modul cascadă și voi dezvolta prea o bibliotecă pentru a simplifica și mai mult programarea.
Sper că v-a plăcut acest proiect.
Vă rog, trimiteți-mi comentariile dvs., deoarece acest lucru este important pentru a îmbunătăți proiectul și informațiile din acest instructabil.
Salutari, LAGSILVA
26. Mai.2016
Recomandat:
Port USB multiplu fără PCB: 4 pași
Port USB multiplu fără niciun PCB: Acesta este al doilea instructabil al meu și aici vă voi împărtăși proiectul în care puteți face mai multe porturi USB pe care să le utilizați pe computer, deoarece atunci când lucrați de acasă aveți o mare problemă de a folosi multe dispozitive ca majoritatea dispozitivelor acum h
Programator multiplu ATtiny85 / 13A: 6 pași
Programator multiplu ATtiny85 / 13A: Ați realizat vreodată un proiect ca un „LDR x Arduino UNO Automatic Light” sau similar care utilizează doar 2-3 porturi I / O digitale ale microcontrolerului dvs. cu 32 de pini? Este în regulă dacă faceți doar câteva lucru de prototipare, dar dacă doriți să finalizați sau să produceți
Arduino Controlul senzorului P.I.R multiplu pe același bord: 3 pași
Arduino Controlul senzorului PIR multiplu pe același bord: Astăzi vă voi spune cum să conectați mai mulți senzori PIR cu un singur Arduino Bord > aici am folosit și modulul de releu cu 4 canale pentru unele funcționalități suplimentare. (SAU Puteți folosi cât mai mulți fixați arduinul
Interfață LCD multiplu la Arduino Uno folosind linia de date comună: 5 pași
Interfață LCD multiplu la Arduino Uno Utilizând linia de date comună: Astăzi, în acest instructiv vă voi arăta cum să interfațați mai multe module LCD de 16x2 cu o placă arduino uno folosind o linie de date comună. Cel mai interesant lucru despre acest proiect este că folosește linia de date obișnuită și afișează date diferite în e
Stație de încărcare cu dispozitiv multiplu Lego, tabletă telefonică: 15 pași (cu imagini)
Stație de încărcare pentru dispozitiv multi Lego, tabletă telefonică: construiește-ți propriul suport de încărcare lego