Kazalo:

Matrika LED zaslona 5x4 z uporabo osnovnega žiga 2 (bs2) in Charlieplexing: 7 korakov
Matrika LED zaslona 5x4 z uporabo osnovnega žiga 2 (bs2) in Charlieplexing: 7 korakov

Video: Matrika LED zaslona 5x4 z uporabo osnovnega žiga 2 (bs2) in Charlieplexing: 7 korakov

Video: Matrika LED zaslona 5x4 z uporabo osnovnega žiga 2 (bs2) in Charlieplexing: 7 korakov
Video: Какие матрицы ставят в телевизоры?! MicroLED, MiniLED, OLED! Как выбрать телевизор? Рейтинг матриц! 2024, November
Anonim
Matrika 5x4 LED zaslona z uporabo osnovnega žiga 2 (bs2) in Charlieplexing
Matrika 5x4 LED zaslona z uporabo osnovnega žiga 2 (bs2) in Charlieplexing

Imate naokoli sedež Basic Stamp 2 in nekaj dodatnih LED? Zakaj se ne bi poigrali s konceptom charlieplexing in ustvarili izhod s samo 5 zatiči.

Za to navodilo bom uporabljal BS2e, vendar bi moral delati vsak član družine BS2.

1. korak: Charlieplexing: kaj, zakaj in kako

Najprej ugotovimo zakaj. Zakaj uporabljati charlieplexing z osnovnim žigom 2? --- Dokaz koncepta: Naučite se, kako deluje charlieplexing, in se naučite nekaj o BS2. To mi bo morda koristilo pozneje z uporabo hitrejših 8-polnih čipov (le 5 jih bo v/i).--- Uporaben razlog: v bistvu ni nobenega. BS2 je prepočasen za prikaz brez opaznega utripanja. Kaj je charlieplexing? --- Charlieplexing je metoda pogona velikega števila LED z majhnim številom mikroprocesorskih vhodno-izhodnih zatičev. Za charlieplexing sem izvedel s spletnega mesta www.instructables.com in tudi vi lahko: Charlieplexing LEDs- Teorija Kako poganjati veliko LED z nekaj zatiči mikrokrmilnika. Tudi na wikipediji: CharlieplexingKako lahko vozim 20 LED s 5 v/i zatiči? --- Preberite tri povezave pod "Kaj je charlieplexing?". To pojasnjuje bolje, kot bi lahko. Charlieplexing se razlikuje od tradicionalnega multipleksiranja, ki potrebuje en vhodni vhod za vsako vrstico in vsak stolpec (to bi bilo skupaj 9 vhodno -izhodnih zatičev za 5/4 zaslon).

2. korak: Strojna oprema in shema

Strojna oprema in shema
Strojna oprema in shema

Seznam materialov: 1x - osnovni žig 220x - svetleče diode (LED) iste vrste (barva in padec napetosti) 5x - upori (glejte spodaj glede vrednosti upora) Pomožni/neobvezni: način programiranja vašega gumba BS2Momentary kot stikalo za ponastavitev 6v -9v Napajanje, odvisno od vaše različice BS2 (preberite priročnik) Shema: Ta shema je sestavljena skupaj z mehansko postavitvijo. Na levi boste videli mrežo LED, to je orientacija, za katero je napisana koda BS2. Upoštevajte, da ima vsak par LED diodo anodo, priključeno na katodo drugega. Nato so priključeni na enega od petih vhodno -izhodnih zatičev. Vrednosti upora: izračunati morate lastne vrednosti upora. Preverite podatkovni list za svoje LED diode ali uporabite nastavitve LED na vašem digitalnem multimetru, da poiščete padec napetosti LED. Naredimo nekaj izračunov: Napajalna napetost - Padec napetosti / Želeni tok = Vrednost upora BS2 napaja 5v regulirano moč in lahko povzroči 20 mA trenutnega. Moje LED diode imajo padec 1,6 V in delujejo pri 20ma.5v - 1,6v /.02amps = 155ohms Za zaščito vašega BS2 uporabite naslednjo višjo vrednost upora glede na to, kar dobite z izračunom, v tem primeru menim, da bi bilo 180ohms. Uporabil sem 220 ohmov, ker ima moja razvojna plošča vso vrednost upora za vsak vhodno -izhodni zatič. OPOMBA: Verjamem, da ker je na vsakem zatiču upor, to učinkovito podvoji upor na vsakem zatiču, saj je en pin V+, drugi pa Gnd. V tem primeru morate vrednosti uporov zmanjšati za polovico. Neželeni učinek previsoke vrednosti upora je zatemnilna LED. Ali lahko kdo to preveri in mi pusti PM ali komentar, da lahko posodobim te podatke? Programiranje: Za programiranje čipa na plošči sem uporabljal razvojno ploščo, ki ima priključek DB9. Ta čip uporabljam tudi na svoji plošči brez spajkanja in sem vključil glavo ICSP (In Circuit Serial Programming). Glava ima 5 nožic, nožice od 2 do 5 se povežejo z nožicami 2-5 na zaporednem kablu DB9 (Pin 1 je neuporabljen). Upoštevajte, da morata biti zatiča 6 in 7 glave ICSP na kablu DB9 povezana med seboj. Ponastavi: Tipka za ponastavitev za trenutek ni obvezna. To samo pritisne zatič 22 na tla, ko ga potisnete.

Korak: Breadboarding

Breadboarding
Breadboarding
Breadboarding
Breadboarding

Zdaj je čas, da matriko zgradimo na ploščici. Uporabil sem priključni trak za povezavo ene noge iz vsakega para vodil skupaj in majhno mostično žico za povezavo drugih nog. To je podrobno prikazano na fotografiji od blizu in je podrobno razloženo tukaj: 1. Usmerite svojo ploščo tako, da ustreza širši sliki2. LED 1 z anodo (+) postavite proti sebi, katoda (-) pa stran od vas. LED 2 postavite v isto smer z anodo (+) v povezovalni priključni trak katode LED 1. Z manjšo mostično žico povežite anodo LED 1 s katodo LED 2.5. Ponavljajte, dokler na ploščo ne dodate vsakega para LED -diod. Uporabljam običajne trakove napajalne plošče na plošči za kruh kot vodila za vhodno -izhodne zatiče BS2. Ker so samo 4 vodila, uporabljam priključni trak za P4 (peti V/I priključek). To je mogoče videti na spodnji večji sliki. Priključite priključni trak za katodo LED 1 na trak vodila P0. Ponovite za vsako liho LED številko, pri čemer zamenjajte ustrezen P* za vsak par (glejte shemo). Priključite priključni trak za katodo LED 2 na trak vodila P1. Ponovite za vsako liho LED številko, pri čemer zamenjajte ustrezen P* za vsak par (glejte shemo). Vsak trak vodila priključite na ustrezen V/I pin na BS2 (P0-P4).9. Preverite vse povezave in se prepričajte, da ustrezajo shemi. OPOMBA: V bližnjem planu boste videli, da se ne zdi, da sem sledil 7. koraku, saj je povezava z drugim vhodno-izhodnim zatičem na anodi pri lih LED. Ne pozabite, da je katoda parnih LED diod povezana z anodo lihih LED, tako da je povezava v vsakem primeru enaka. Če vas ta opomba zmoti, jo preprosto prezrite.

4. korak: Osnove programiranja

Če želite, da charlieplexing deluje, vklopite samo eno LED naenkrat. Za delovanje z našim BS2 potrebujemo dva osnovna koraka: 1. 2. Z ukazom OUTS nastavite izhodne načine za nožice. Povejte BS2, katere zatiče naj uporabi kot izhode z ukazom DIRS. samo poskuša utripati LED 1. Če pogledate shemo, lahko vidite, da je P0 priključen na katodo (-) LED 1, P1 pa na anodo iste LED. To pomeni, da želimo voziti P0 nizko in P1 visoko. To lahko storite tako: "OUTS = % 11110", ki poganja P4-P1 visoko in P0 nizko. (% Označuje, da sledi binarna številka. Najnižja binarna številka je vedno na desni. 0 = NIZKA, 1 = VISOKA) BS2 shrani te podatke, vendar nanje ne bo deloval, dokler ne razglasimo, kateri zatiči so izhodi. Ta korak je ključen, saj morata biti hkrati dva izhoda. Ostalo morajo biti vhodi, ki te nožice nastavi v način visoke impedance, tako da ne bodo potopili nobenega toka. P0 in P1 moramo poganjati, zato jih bomo nastavili na izhode, ostale pa na vhode tako: "DIRS = % 00011". (% Označuje, da sledi binarna številka. Najnižja binarna številka je vedno na desni. 0 = INPUT, 1 = OUTPUT) To združimo v neko uporabno kodo: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUTS = %11110 'Pogon P0 nizek in P1-P4 visok DIRS = %00011' Nastavi P0- P1 kot izhodi in P2-P4 kot vhodi PAUSE 250 'Premor, da LED ostane prižgan DIRS = 0' Nastavite vse nožice na vhod. To bo izklopilo LED PAUSE 250 'Premor, da LED ostane izklopljen

5. korak: Razvojni cikel

Zdaj, ko smo videli, da en pin deluje, da zagotovimo, da vsi delujejo.20led_Zig-Zag.bseTa priložena koda bi morala osvetliti vsako od 20 LED v cik-cak vzorcu. Opazili boste, da po tem, ko se vsak zatič prižge, uporabim "DIRS = 0", da vse nožice spremenim nazaj v vhode. Če spremenite izhode, ne da bi izklopili izhodne zatiče, lahko pride do "ghostinga", kjer lahko med cikli utripa LED, ki ne sme biti osvetljen. Če spremenite spremenljivko W1 na začetku te kode v "W1 = 1" med vsakim utripanjem LED bo le 1 milisekundni premor. To bo povzročilo učinek trajnosti vida (POV), zaradi česar bo videti, kot da svetijo vse LED. To ima za posledico zatemnitev LED diod, vendar je bistvo tega, kako bomo na tej matrici prikazovali znake. LED v uporaben vzorec. Ta datoteka je moj prvi poskus. Videli boste, da so na dnu datoteke znaki shranjeni v štirih vrsticah petmestnega binarnega zapisa. Vsaka vrstica je prebrana, razčlenjena in vsakič, ko je potrebno prižgati LED, se pokliče podprogram. Ta koda deluje in kroži skozi številke 1-0. Če ga poskusite zagnati, opazite, da ga pesti zelo počasna hitrost osveževanja, zaradi česar znaki utripajo skoraj prepočasi, da bi jih prepoznali. Ta koda je slaba iz več razlogov. Najprej pet števk binarnega zapisa zavzame ravno toliko prostora v EEPROM -u kot 8 števk binarnega, saj so vse informacije shranjene v skupinah po štiri bite. Drugič, za izbiro primera SELECT, ki se uporablja za odločitev, kateri pin je treba osvetliti, je potrebno 20 primerov. BS2 je omejen na 16 primerov na operacijo SELECT. To pomeni, da sem moral omejiti to omejitev z izjavo IF-THEN-ELSE. Mora obstajati boljši način. Po nekaj urah praskanja po glavi sem to odkril.

6. korak: Boljši tolmač

Vsaka vrstica naše matrice je sestavljena iz 4 LED, vsaka je lahko vklopljena ali izklopljena. BS2 shranjuje informacije v svoj EEPROM v skupinah po štiri bite. Ta povezava bi nam morala olajšati stvari. Poleg tega dejstvo, da štirje bitovi ustrezajo decimalnim številkam 0-15 za skupno 16 možnosti. To olajša ali SELECT CASE. Tukaj je številka 7, shranjena v EEPROM-u: '7 %1111, %1001, %0010, %0100, %0100, vsaka vrstica ima decimalno enako vrednost do 0-15, zato beremo vrnite iz pomnilnika in ga vnesite neposredno v funkcijo SELECT CASE. To pomeni, da je človekova berljiva binarna matrika, uporabljena za izdelavo vsakega znaka (1 = vklopljen, 0 = izklopljen), ključ za tolmača. za nastavitev DIRS in OUTS kot spremenljivk. Najprej sem v vsaki od petih vrstic znaka prebral spremenljivke ROW1-ROW5. Glavni program nato pokliče podprogram za prikaz znaka. Ta podprogram zavzame prvo vrstico in štiri možne kombinacije OUTS dodeli spremenljivki outp1-outp4, dve možni kombinaciji DIRS pa direc1 & direc2. LED utripajo, števec vrstic se povečuje in za vsako od drugih štirih vrstic se izvaja enak postopek, kar je veliko hitrejše od prvega programa za tolmačenje. Ob tem je še vedno opazno utripanje. Oglejte si video, s kamero je utripanje videti veliko slabše, vendar razumete. Prenos tega koncepta na veliko hitrejši čip, kot je picMicro ali AVR, bi omogočil prikaz teh znakov brez opaznega utripanja.

7. korak: Kam od tu

Nimam CNC mlina ali materiala za jedkanje za izdelavo vezja, zato tega projekta ne bom ožičil. Če imate mlin in želite sodelovati pri napredovanju od tu, mi pošljite sporočilo. Z veseljem bom plačal za materiale in še bolj veselo pokazal nekaj končnega izdelka za ta projekt.

Druge možnosti: 1. Prenesite to na drug čip. Ta matrična zasnova se lahko uporablja s katerim koli čipom, ki ima na voljo 5 vhodno-izhodnih zatičev, ki omogočajo tri stanja (zatiči, ki so lahko visoki, nizki ali vhodni (visoka impedanca)). 2. Z hitrejšim čipom (morda AVR ali picMicro) lahko povečate lestvico. Z 20 -pinskim čipom lahko uporabite 14 zatičev za povezovanje zaslona 8x22 in uporabite preostale zatiče za sprejemanje serijskih ukazov iz računalnika ali drugega krmilnika. Uporabite še tri 20-pinske žetone in lahko se pomaknete na zaslon velikosti 8x88 za skupno 11 znakov hkrati (odvisno od širine vsakega znaka). Vso srečo, lepo se imejte!

Priporočena: