Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Pozdrav svima, Volim raditi sa LED zaslonima sa 7 segmenata ili s matričnom matricom i već sam s njima napravio mnogo različitih projekata.
Svaki put su zanimljivi jer postoji neka vrsta magije u tome kako oni mogu djelovati jer ono što vidite je optička iluzija!
Zasloni imaju puno pinova za povezivanje s Arduinom (ili drugim mikrokontrolerom), a najbolje rješenje je primijeniti tehniku multipleksiranja podataka kako bi se smanjila upotreba njihovih portova.
Kad to učinite, svaki segment ili svaka LED dioda bit će uključeni nekoliko trenutaka (milisekundi ili manje), ali ponavljanje toga u toliko puta u sekundi stvara iluziju slike koju želite prikazati.
Za mene je najzanimljivije razviti logiku, program kako bih saznao kako mogu prikazati točne informacije u skladu s vašim projektom.
U jednom projektu korištenje zaslona zahtijeva mnogo vremena za sastavljanje svih komponenti na ploči s mnogo žica za povezivanje.
Znam da na tržištu postoji mnogo različitih zaslona s I2C -om, s pojednostavljenim načinima (ili ne) za njihovo programiranje, a i ja sam ih koristio, ali radije radim sa standardnim komponentama poput 74HC595 (multiplekser IC) i ULN2803 (upravljački programi) jer daju vam veću kontrolu u vašem programu, a također i veću robusnost i pouzdanost u vašem korištenju.
Kako bih pojednostavio postupak montaže, razvio sam LED Dipslay modul za više namjena koristeći jednostavne i uobičajene komponente u svijetu Arduina.
Pomoću ovog modula možete raditi s matričnim matricama s dvobojnim LED -ima u dvije standardne veličine (većom i manjom), a također možete upravljati zaslonom od 7 segmenta x 4 znamenke koji je vrlo čest i lako ga je pronaći na tržištu.
Također možete raditi s tim modulima kaskadno na serijski način (različiti podaci u zaslone) ili paralelno (isti podaci u zaslone).
Pa da vidimo kako ovaj modul može funkcionirati i pomoći vam u vašem razvoju!
Video (modul LED zaslona)
Video (Dot Matrix Test)
Pozdrav, LAGSILVA
Korak 1: Komponente
PCB (tiskana ploča)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Tranzistor PNP - BC327 (08 x)
- Otpornik 150 Ohma (16 x)
- Otpornik 470 Ohma (08 x)
- Kondenzator 100 nF (03 x)
- IC utičnica 16 pinova (03 x)
- IC utičnica 18 pinova (02 x)
- Pin konektor ženski - 6 pinova (8 x)
- Pin zaglavlja 90º (01 x)
- Pin zaglavlja 180º (01 x)
- Spojnica Borne KRE 02 igle (02 x)
- PCB (01 x) - Proizvedeno
Drugi
- Arduino Uno R3 / Nano / slično
- LED zaslon 04 znamenke x 7 segmenata - (zajednička anoda)
- Dvobojna matrična LED matrica (zelena i crvena) - (zajednička anoda)
Važne napomene:
- Podatkovne tablice svih najvažnijih komponenti stavljam samo kao referencu, ali morate provjeriti podatkovne tablice vlastitih komponenti prije njihove uporabe.
- Ova ploča je dizajnirana za korištenje samo zaslona ZAJEDNIČKE ANODE.
Korak 2: Prvi prototipovi
Moj prvi prototip napravljen je na ploči za testiranje kruga.
Nakon toga sam napravio još jedan prototip koristeći univerzalnu ploču kao što možete vidjeti na slikama.
Ova vrsta ploče zanimljiva je za izradu brzog prototipa, ali shvaćate da se i dalje čuva mnogo žica.
To je funkcionalno rješenje, ali ne tako elegantno u usporedbi s konačnim proizvedenim PCB -om (plavim).
Nisam dobar sa lemljenjem jer nemam dovoljno iskustva s ovim procesom, ali čak i ovo sam postigao dobre rezultate i s iskustvima i sa još važnijim: nisam spalio nijednu komponentu niti ruke!
Vjerojatno će rezultati na mojoj sljedećoj ploči biti bolji zbog prakse.
Zbog toga vas potičem da isprobate ovakvo iskustvo jer će vam biti izvrsno.
Samo imajte na umu da morate paziti na vruće glačalo i pokušajte ne trošiti više od nekoliko sekundi na komponentu kako biste je izbjegli opeći !!
I na kraju, na Youtubeu možete pronaći mnoge videozapise o lemljenju koje možete naučiti prije odlaska u stvarni svijet.
Korak 3: Dizajn PCB -a
Dizajnirao sam ovu tiskanu ploču pomoću namjenskog softvera za proizvodnju dvoslojne ploče, a prije ove zadnje razvijeno je nekoliko različitih verzija.
Na početku sam imao jednu verziju za svaku vrstu zaslona, a nakon svega odlučio sam sve kombinirati u samo jednu verziju.
Ciljevi dizajna:
- Jednostavno i korisno za prototipove.
- Jednostavno postavljanje i proširivo.
- Mogućnost korištenja 3 različite vrste zaslona.
- Maksimalna širina velike matrice LED dioda.
- Maksimalna duljina na 100 mm za smanjenje troškova proizvodnje ploče.
- Nanesite tradicionalne komponente umjesto SMD -a kako biste izbjegli dodatne poteškoće tijekom procesa ručnog lemljenja.
- Ploča mora biti modularna da bi se kaskadno spojila s drugom pločom.
- Serijski ili paralelni izlaz za druge ploče.
- Nekoliko ploča mora kontrolirati samo Arduino.
- Samo 3 žice podataka za Arduino vezu.
- Vanjski priključak za napajanje od 5 V.
- Povećajte električnu robusnost primjenom tranzistora i upravljačkih programa (ULN2803) za upravljanje LED -ima.
Napomena:
U vezi s ovom zadnjom stavkom preporučujem da pročitate moje druge Instructables o ovim komponentama:
Koristeći Shift Register 74HC595 s ULN2803, UDN2981 i BC327
Proizvodnja PCB -a:
Nakon što sam dovršio dizajn, poslao sam ga proizvođaču PCB -a u Kini nakon mnogih pretraživanja s različitim lokalnim dobavljačima i u različitim zemljama.
Glavni problem bio je u vezi količine ploča u odnosu na cijenu jer mi treba samo nekoliko njih.
Konačno sam odlučio poslati redovitu narudžbu (ne ekspresnu narudžbu zbog većih troškova) od samo 10 ploča s tvrtkom iz Kine.
Nakon samo 3 dana ploče su bile proizvedene i poslane mi prelazeći svijet za više od 4 dana.
Rezultati su bili izvrsni !!
U tjedan dana nakon narudžbe, ploče su bile u mojim rukama i bio sam zaista impresioniran njihovom visokom kvalitetom i velikom brzinom!
Korak 4: Programiranje
Za programiranje morate imati na umu neke važne koncepte o dizajnu hardvera i o registru pomaka 74HC595.
Glavna funkcija 74HC595 je pretvaranje 8-bitnog serijskog ulaza u 8 paralelnih izlaznih pomaka.
Svi serijski podaci idu u Pin #14 i pri svakom signalu takta bitovi idu na odgovarajuće odgovarajuće paralelno izlazne pinove (Qa do Qh).
Ako neprestano šaljete više podataka, bitovi će se jedan po jedan premještati na Pin #9 (Qh ') ponovno kao serijski izlaz, a zbog ove funkcionalnosti možete staviti druge čipove povezane kaskadno.
Važno:
U ovom projektu imamo tri IC -a od 74HC595. Prva dva rade za kontrolu stupaca (s POZITIVNOM logikom), a posljednji za upravljanje linijama (s NEGATIVNOM logikom zbog rada PNP tranzistora).
Pozitivna logika znači da morate poslati signal VISOKE razine (+5 V) s Arduina, a negativna logika znači da morate poslati signal niske razine (0 V).
Matrična točka LED dioda
- Prvi je za izlaze katoda crvenih LED dioda (8 x) >> COLONSKA CRVENA (1 do 8).
- Drugi je za izlaz L katoda zelenih LED dioda (8 x) >> ZELENI STUPAC (1 do 8).
- Posljednji je za izlaz anoda svih LED dioda (08 x crveno i zeleno) >> LINIJE (1 do 8).
Na primjer, ako želite uključiti samo zelenu LED diodu stupca 1 i retka 1, morate poslati sljedeći niz serijskih podataka:
1º) LINIJE
~ 10000000 (samo prvi red je postavljen na uključeno) - Simbol ~ služi za inverziju svih bitova od 1 do 0 i obrnuto.
2º) KOLONA Zelena
10000000 (samo prvi stupac zelene LED diode je uključen)
3º) KOLONA CRVENA
00000000 (svi stupci crvenih LED dioda su isključeni)
Arduino izjave:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Negativna logika linija
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Pozitivna logika za zelene stupce
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Pozitivna logika za crvene stupce
Napomena:
Također možete kombinirati obje LED diode (zelenu i crvenu) kako biste dobili žutu boju na sljedeći način:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
Prikaz 7 segmenata
Za ove vrste prikaza slijed je isti. Jedina razlika je u tome što ne morate koristiti zelene LED diode.
1º) DIGIT (1 do 4 slijeva nadesno) ~ 10000000 (postavljena znamenka #1)
~ 01000000 (postavljena znamenka #2)
~ 00100000 (postavljena znamenka #3)
~ 00010000 (postavljena znamenka #4)
2º) NE KORISTI SE
00000000 (svi su bitovi postavljeni na nulu)
3º) SEGMENTI (A do F i DP - provjerite tablicu s prikazom)
10000000 (postavite segment A)
01000000 (postavite segment B)
00100000 (postavite segment C)
00010000 (segment D)
00001000 (postavite segment E)
00000100 (segment F)
00000010 (segment G)
00000001 (set DP)
Arduino primjer za postavljanje zaslona #2 s brojem 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Postavi DISPLAY 2 (Negativna logika)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Postavi podatke na nulu (ne koristi se)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Postavljanje segmenata A, B, C, D, G)
Konačno, primjenom ovog procesa možete kontrolirati bilo koju LED diodu vašeg zaslona, a također možete stvoriti i sve posebne znakove koji su vam potrebni.
Korak 5: Testiranje
Evo dva programa kao primjer funkcionalnosti Display Modula.
1) Prikaz odbrojavanja (od 999,9 sekundi do nule)
2) Matrična točka (znamenke od 0 do 9 i abeceda od A do Z)
3) RTC digitalni sat u LED zaslonu od 4 znamenke i 7 segmenata
Ovo posljednje ažuriranje je moje prve verzije Digitalnog sata.
Korak 6: Zaključak i sljedeći koraci
Ovaj će modul biti koristan u svim budućim projektima koji zahtijevaju LED zaslon.
Sljedeće korake okupit ću više ploča za rad s njima u kaskadnom načinu rada, a razvit ću i biblioteku koja će još više pojednostaviti programiranje.
Nadam se da ste uživali u ovom projektu.
Molim vas, pošaljite mi svoje komentare jer je ovo važno za poboljšanje projekta i informacija ovog uputstva.
Pozdrav, LAGSILVA
26.svibnja.2016