Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Pozdravljeni vsi, Rad delam z LED zasloni s 7 segmenti ali s matriko in z njimi sem že naredil veliko različnih projektov.
Vsakič, ko so zanimive, ker obstaja nekakšna čarovnija v tem, kako lahko delujejo, kajti to, kar vidite, je optična iluzija!
Zasloni imajo veliko zatičev za povezavo z Arduinom (ali drugim mikrokrmilnikom) in najboljša rešitev je, da uporabite tehniko multipleksiranja podatkov, da zmanjšate uporabo svojih vrat.
Ko to storite, bo vsak segment ali vsaka LED vklopljena za nekaj trenutkov (milisekund ali manj), vendar ponavljanje tega v toliko krat na sekundo ustvari iluzijo slike, ki jo želite prikazati.
Zame je najbolj zanimivo razviti logiko, program, da bi ugotovili, kako lahko prikažejo pravilne informacije glede na vaš projekt.
V enem projektu uporaba zaslonov zahteva veliko časa za sestavljanje vseh komponent na plošči z veliko žicami za povezavo.
Vem, da je na trgu veliko različnih zaslonov z I2C, s poenostavljenimi načini (ali ne) za njihovo programiranje in tudi jaz sem jih uporabil, vendar raje delam s standardnimi komponentami, kot sta 74HC595 (multiplekser IC) in ULN2803 (gonilniki), ker vam dajejo večji nadzor v vašem programu in tudi večjo robustnost in zanesljivost pri uporabi.
Za poenostavitev postopka montaže sem razvil LED Dipslay modul za več namenov z uporabo preprostih in običajnih komponent v svetu Arduina.
S tem modulom lahko delate z matrično matrico z dvobarvnimi LED diodami v dveh standardnih velikostih (večjo in manjšo), prav tako pa lahko upravljate 7 -segmentni 4 -mestni zaslon, ki je zelo pogost in ga je enostavno najti na trgu.
S temi moduli lahko delate tudi kaskadno na serijski način (različni podatki na prikazovalnike) ali na paralelni način (isti podatki na prikazovalnike).
Pa poglejmo, kako lahko ta modul deluje in vam pomaga pri vašem razvoju!
Video (modul LED zaslona)
Video (Dot Matrix Test)
S spoštovanjem, LAGSILVA
1. korak: Komponente
Tiskana vezja (PCB)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Tranzistor PNP - BC327 (08 x)
- Upor 150 Ohmov (16 x)
- Upor 470 Ohmov (08 x)
- Kondenzator 100 nF (03 x)
- IC vtičnica 16 pinov (03 x)
- IC vtičnica 18 pinov (02 x)
- Pin priključek ženski - 6 pinov (8 x)
- Glave nožic 90º (01 x)
- Glave nožic 180º (01 x)
- Spojnik Borne KRE 02 zatiči (02 x)
- PCB (01 x) - Proizvedeno
Drugi
- Arduino Uno R3 / Nano / podobno
- LED zaslon 04 števk x 7 segmentov - (skupna anoda)
- Dvobarvna LED matrična matrika (zelena in rdeča) - (skupna anoda)
Pomembne opombe:
- Podatkovni list vseh najpomembnejših komponent sem dal le kot referenco, vendar morate pred uporabo pregledati podatkovni list svojih komponent.
- Ta plošča je bila zasnovana tako, da uporablja samo zaslone COMMON ANODE.
2. korak: Prvi prototipi
Moj prvi prototip je bil narejen na plošči za testiranje vezja.
Potem sem naredil še en prototip z uporabo univerzalne plošče, kot lahko vidite na slikah.
Tovrstna plošča je zanimiva za izdelavo hitrega prototipa, vendar se zavedate, da še vedno hrani veliko žic.
Je funkcionalna rešitev, vendar ne tako elegantna v primerjavi s končno proizvedenim tiskanim vezjem (modrim).
S spajkanjem nisem dober, ker nimam dovolj izkušenj s tem postopkom, a tudi s tem sem dosegel dobre rezultate tako z izkušnjami kot še pomembneje: nisem zažgal nobene komponente in niti rok!
Verjetno bodo rezultati na naslednji plošči boljši zaradi prakse.
Zato vas vabim, da preizkusite tovrstno izkušnjo, saj bo za vas odlična.
Ne pozabite, da morate z vročim likalnikom skrbeti in poskušati ne porabiti več kot nekaj sekund na komponenti, da se ne opeče !!
In končno, na Youtube lahko najdete veliko videoposnetkov o spajkanju, ki se jih lahko naučite, preden greste v resnični svet.
3. korak: Oblikovanje PCB -ja
To tiskano vezje sem zasnoval z namensko programsko opremo za izdelavo dvoslojne plošče, pred zadnjo pa je bilo razvitih več različnih različic.
Na začetku sem imel eno različico za vsako vrsto zaslonov in navsezadnje sem se odločil, da vse združim v samo eno različico.
Oblikovalni cilji:
- Enostavno in uporabno za prototipe.
- Enostavna nastavitev in razširljivost.
- Lahko uporablja 3 različne vrste zaslonov.
- Največja širina velike matrike LED.
- Največja dolžina pri 100 mm za zmanjšanje stroškov proizvodnje plošče.
- Namesto SMD uporabite tradicionalne komponente, da se izognete večjim težavam med postopkom ročnega spajkanja.
- Plošča mora biti modularna, da se kaskadno poveže z drugo ploščo.
- Serijski ali paralelni izhod za druge plošče.
- Več plošč mora nadzorovati samo Arduino.
- Samo 3 žice podatkov za povezavo Arduino.
- Zunanji priključek za napajanje 5V.
- Povečajte električno trdnost z uporabo tranzistorjev in gonilnikov (ULN2803) za nadzor LED.
Opomba:
V zvezi s to zadnjo postavko vam priporočam, da preberete še moja navodila o teh sestavinah:
Uporaba registra premikov 74HC595 z ULN2803, UDN2981 in BC327
Proizvodnja PCB:
Po končanem oblikovanju sem ga po številnih iskanjih pri različnih lokalnih dobaviteljih in v različnih državah poslal proizvajalcu PCB na Kitajskem.
Glavno vprašanje je bilo povezano med količino plošč in stroški, ker jih potrebujem le nekaj.
Nazadnje sem se odločil, da bom s podjetjem na Kitajskem dal redno naročilo (ne izrecno naročilo zaradi višjih stroškov) le 10 plošč.
Po samo 3 dneh so bile plošče izdelane in mi poslane po celem svetu v 4 dneh.
Rezultati so bili odlični !!
V enem tednu po naročilu so bile deske v mojih rokah in res sem bil navdušen nad njihovo kakovostjo in hitrostjo!
4. korak: Programiranje
Pri programiranju morate upoštevati nekaj pomembnih konceptov o zasnovi strojne opreme in o registru premikov 74HC595.
Glavna funkcija 74HC595 je pretvorba 8-bitnega zaporednega vhoda v 8 vzporednih izhodov.
Vsi serijski podatki gredo v pin #14 in pri vsakem signalu ure gredo biti na ustrezne vzporedne izhode (Qa do Qh).
Če nenehno pošiljate več podatkov, se bitovi drug za drugim premaknejo na Pin #9 (Qh ') kot serijski izhod in zaradi te funkcije lahko v kaskado vstavite druge čipe, povezane.
Pomembno:
V tem projektu imamo tri IC -je 74HC595. Prva dva delujeta za nadzor stolpcev (s POZITIVNO logiko), zadnji pa za nadzor vrstic (z NEGATIVNO logiko zaradi delovanja tranzistorjev PNP).
Pozitivna logika pomeni, da morate poslati signal VISOKEGA nivoja (+5V) iz Arduina, negativna logika pa pomeni, da morate poslati signal nizkega nivoja (0V).
Matrična točka LED
- Prvi je za izhode katod rdečih LED (8 x) >> STOLPEČ RDEČE (1 do 8).
- Drugi je za izhod L katod zelenih LED (8 x) >> ZELENI STOLPEK (1 do 8).
- Zadnji je za izhod anod vseh LED (08 x rdeča in zelena) >> LINIJE (1 do 8).
Na primer, če želite vklopiti samo zeleno LED v stolpcu 1 in vrstici 1, morate poslati naslednje zaporedje serijskih podatkov:
1º) LINIJE
~ 10000000 (samo prva vrstica je nastavljena na vklopljeno) - Simbol ~ je namenjen obračanju vseh bitov od 1 do 0 in obratno.
2º) STOLPEK Zelena
10000000 (samo prvi stolpec zelene LED je vklopljen)
3º) STOLPEK RDEČ
00000000 (vsi stolpci rdečih LED so izklopljeni)
Arduino izjave:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Negativna logika vrstic
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Pozitivna logika za zelene stolpce
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Pozitivna logika za rdeče stolpce
Opomba:
Kombinirate lahko tudi obe LED (zeleno in rdečo), da dobite rumeno barvo, kot sledi:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
Prikaz 7 segmentov
Za tovrstne zaslone je zaporedje enako. Edina razlika je, da vam zelenih LED ni treba uporabljati.
1º) ŠTEVILKA (1 do 4 od leve proti desni) ~ 10000000 (nastavljena številka #1)
~ 01000000 (nastavljena številka 2)
~ 00100000 (nastavljena številka #3)
~ 00010000 (nastavljena številka #4)
2º) NE UPORABLJAMO
00000000 (vsi biti nastavljeni na nič)
3º) SEGMENTI (A do F in DP - preverite podatkovni list zaslona)
10000000 (nastavite segment A)
01000000 (nastavite segment B)
00100000 (nastavite segment C)
00010000 (nastavite segment D)
00001000 (nastavite segment E)
00000100 (nastavite segment F)
00000010 (nastavite segment G)
00000001 (komplet DP)
Primer Arduino za nastavitev zaslona #2 s številko 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Nastavi DISPLAY 2 (Negativna logika)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Nastavi podatke na nič (ne uporablja se)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Nastavitev segmentov A, B, C, D, G)
Nazadnje, s tem postopkom lahko nadzirate katero koli LED diodo vašega zaslona in ustvarite lahko tudi vse posebne znake, ki jih potrebujete.
5. korak: Testiranje
Tu sta dva programa kot primer funkcionalnosti modula zaslona.
1) Prikaz odštevanja (od 999,9 sekunde do nič)
2) Dot Matrix (števke od 0 do 9 in abeceda od A do Z)
3) Digitalna ura RTC v 4 -mestnem LED prikazovalniku in 7 segmentih
Ta zadnja je posodobitev moje prve različice digitalne ure.
Korak 6: Zaključek in naslednji koraki
Ta modul bo uporaben pri vseh prihodnjih projektih, ki potrebujejo LED zaslon.
V naslednjih korakih bom zbral več plošč za delo z njimi v kaskadnem načinu in razvil bom tudi knjižnico, ki bo še poenostavila programiranje.
Upam, da ste uživali v tem projektu.
Prosim, pošljite mi svoje pripombe, ker je to pomembno za izboljšanje projekta in informacij o tem navodilu.
S spoštovanjem, LAGSILVA
26.maj.2016