Sisukord:
- Samm: hankige kaup…
- Samm: ühendage otse LED -ekraaniga
- 3. samm: kuvatava märgi määramine
- Samm: säilitage sisend-/väljundpordid nihkeregistriga
- 5. samm: kokkuvõte
Video: Punktmaatriksi LED -i kasutamine Arduino ja vahetuste registriga: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:51
Siemensi DLO7135 punktmaatriksi LED on üks hämmastav optoelektroonika tükk. Selle arve on 5x7 punktmaatriksi intelligentne ekraan (r) koos mälu/dekoodri/draiveriga. Koos selle mäluga on sellel 96-tähemärgiline ASCII-ekraanikomplekt koos suurte ja väikeste tähtedega, sisseehitatud tähemärkide generaator ja multiplekser, neli valgustugevuse taset ja see kõik töötab 5 V toitel. See on palju, mida elada, ja 16 dollari eest pop, peaks see kindlasti olema. Veetes pool päeva oma lemmik kohalikus elektroonikapoes, leidsin prügikasti täis neid hinnaga 1,50 dollarit tükk. Lahkusin poest mitmega. See juhend annab teile teada, kuidas ühendada nende punktmaatriksi LED-idega ja kuvada märke AVR-põhise Arduino abil. Kui olete lugenud mõnda mu eelnevat juhendit, võib teil tekkida mõte, et ma pooldan sageli kõige tagasihoidlikumat lahendust ja te ei eksi, isegi kui ma aeg -ajalt eesmärgist alla jään.. Seepärast astun selles juhendis veel ühe sammu ja näitan teile, kuidas saate vähendada nende suurte, ausate punktmaatriks -LED -ide juhtimiseks vajalike I/O -portide arvu.
Samm: hankige kaup…
Selle lühikese väikese projekti jaoks vajate:
- AVR-põhine mikrokontroller nagu Arduino või mõni muu sarnane. Neid juhiseid saab tõenäoliselt kohandada teie valitud MCU -ga.
- DLO7135 punktmaatriksi LED või muu samasse perekonda kuuluv
- 8-bitine nihkeregister nagu 74LS164, 74C299 või 74HC594
- leivalaud
- haaketraat, traadilõikurid jne.
Jootekolvi pole vaja, kuigi kasutan seda hiljem; saate ilma selleta hakkama.
Samm: ühendage otse LED -ekraaniga
Paigutage oma väike osade loend ja haarake LED. Asetage see mõnevõrra keskele leivalauale, ulatudes keskjoone soonele. Ühendamise esimene osa toimub kõik LED -i vasakul küljel. Nööpnõel nr 1 asub vasakus ülanurgas, nagu näitab kolmnurk/nool. Panen nööpnõelte funktsioonid pildile teie jaoks, kui loete või ühendate oma LED -i.
Vasak külg
Positiivne ja negatiivne Alustades vasakust ülaosast, ühendage Vcc 5V -ga. Võib -olla on hea mõte, et teie plaati ei kasutata enne, kui kogu vasak külg on valmis; LED võib olla hele, kui proovite näha väikesi auke juhtmetesse pistmiseks. Ühendage vasakpoolne GND maaga. Lampide test, kiipide lubamine ja kirjutamine Vasakult ülevalt teine ja kolmas on lampide test ja kiibi lubamine. Need mõlemad on negatiivse loogikaga, mis tähendab, et need on lubatud, kui nad on loogilise 0 asemel 1. Minu alloleval pildil peaksid olema ribad, kuid ma ei märkinud seda ühegi puhul. LT -tihvt, kui see on sisse lülitatud, süttib iga punktmaatriksi punkt 1/7 heledusega. See on rohkem pikslitest, kuid LT -nööpnõela juures on huvitav see, et see ei kirjuta mälus ühtegi märki üle, nii et kui teil on mitu neist kokku ühendatud (nende vaatamiskaugus on 20 jalga), siis strobing LT võib muuta selle kursori sarnaseks. Selle väljalülitamise tagamiseks ühendage see 5V -ga. CE- ja WR -nööpnõelad on samuti negatiivse loogikaga ning need peavad olema lubatud selle nutiseadme kirjutamiseks. Võite neid tihvte mikrojuhtida mikrokontrolleri vaba sisend-/väljundportidega, kuid me ei häiri siin. Ühendage need lihtsalt maandusega, et need oleks lubatud. Heledusastmed DLO LED -perekonnal on neli programmeeritavat heledustaset:
- Tühi
- 1/7 heledus
- 1/2 heledus
- Täielik heledus
BL1 HIGH ja BL0 LOW on 1/2 heledus. Mõlemad HIGH on täisheledusega. Seadistage see, mis teile meeldib. Jällegi, kui teil on varuks I/O pordid ja see on teile piisavalt oluline, saab seda juhtida ka teie Arduino. See mähib vasaku külje. Kui toite oma plaadile toite, peaksite nägema, et LED süttib. Kui olete uudishimulik, mängige sellega tutvumiseks heleduse juhtnuppude ja lambitestiga.
Parem pool
Parem pool koosneb täielikult andmesideportidest. All paremal, tihvt 8 või D0, tähistab 7-bitise tähemärgi kõige vähem olulist bitti. Ülemine parempoolne tihvt 14 või D6 tähistab kõige olulisemat bitti. See annab teile teada, millises järjekorras bitte segatakse, kui LED -ile kirjutatakse. Kui andmesisendipordid on ühendatud, leidke oma Arduino või AVR -ist seitse tühja digitaalset I/O -porti ja ühendage need. Tõenäoliselt soovite meeles pidada, milline teie AVR -i andmete väljundport millisele LED -i sisendpordile läheb. Nüüd olete valmis andma mõned andmed sellele nutikale LED -ile. Kas värised veel põnevusest? Ma tean, et ma olen…
3. samm: kuvatava märgi määramine
Sellel CMOS-valgusdioodil kasutatav tähemärkide komplekt on teie jooksev ASCII, mis algab 0x20 (kümnendkoht 32; tühik) ja lõpeb 0x7F (kümnendkohaga 127; kustutamine, kuigi LED-il on kursori graafika). Niisiis ei tähenda LED -ekraani tähemärgi omamine midagi muud kui loogika 1 või 0 vajutamist oma andmeväljundi tihvtidele, millele tavaliselt järgneb WR -impulss, kuid ma eelistan seda selle harjutuse jaoks. Niisiis, olete selle üles kirjutanud või tuli meelde, mis tihvtid millistesse sadamatesse lähevad, eks? Valisin PD [2..7] ja PB0 (digitaalsed tihvtid 2 kuni 8 Arduino-kõnelejas). Tavaliselt ma ei soovita kasutada PD -d [0..1], sest pühendan selle oma jadakommunikatsioonile tagasi FreeBSD kasti ja Arduino jt. kaardistage need tihvtid nende FTDI USB -sidekanalile ja kuigi "nemad" ÜTlevad, et nööpnõelad 0 ja 1 töötavad, kui te ei jadaühendust initsialiseeri, pole ma kunagi saanud neid kontakte tavalise digitaalse sisend-/väljundühendusena kasutada. Tegelikult proovisin kaks päeva probleemi siluda, kui proovisin kasutada PD0 ja PD1 ning leidsin, et need on alati KÕRGED. * kehita õlgu* Tõenäoliselt oleks hea omada mingit välist sisendit, näiteks klaviatuuri, tõukeratta või pöidlaratta lülitit või võib -olla isegi terminali sisendit (minu ArduinoTerm ei ole veel esmaspäevaks valmis …). Valik on sinu. Praegu illustreerin vaid seda, kuidas saada kood, et soovitud märk LED -ile tuua. Allalaadimiseks on olemas ZIP -fail, mis sisaldab lähtekoodi ja Makefile -i, samuti on olemas lühifilm, mis näitab LED -i tähemärkide printimist. Vabandame video kehva kvaliteedi pärast. Allolev kood prindib stringi "Welcome to my Instructable!" seejärel vaatab läbi kogu märgikomplekti, mida LED toetab.
DDRD = 0xFF; // VäljundDDRB = (1 << DDB0); char msg = "Tere tulemast minu juhendamisse!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _viivitus_ms (150); } jaoks (i = 0x20; i <0x80; i ++) {Print2LED (i); _viivitus_ms (150); } Print2LED (& apos*& apos);}Pordi väljundi eest hoolitseb funktsioon Print2Led ()
voidPrint2LED (uint8_t i) {PORTD = (i << 2); kui (i & 0b01000000) PORTB = (1 <
Kood ja Makefile sisalduvad allpool asuvas zip -failis.
Samm: säilitage sisend-/väljundpordid nihkeregistriga
Nüüd saab meie mikrokontroller saata andmeid maatriks -LED -ile, kuid see kasutab kaheksat I/O -porti. See välistab ATtiny kasutamise 8-kontaktilises DIP-paketis ja isegi uuema Arduinoga, millel on ATmega328p, on palju LED-i I/O-porte. Sellest saame aga mööda, kasutades IC -d, mida nimetatakse vahetuste registriks. Hetk hammasrataste vahetamiseks … Käiguvahetusregistrit saab kõige paremini mõista, kui mõelda selle nime moodustavatele kahele sõnale: "vahetus" ja "register". Sõna nihe viitab sellele, kuidas andmed registris liiguvad. Siin (nagu meie Arduino ja üldiselt mikrokontrollerite puhul) on register koht, kus andmeid hoitakse. Selleks rakendatakse digitaalsete loogikaahelate lineaarset ahelat, mida nimetatakse "plätudeks" ja millel on kaks stabiilset olekut, mida saab tähistada kas 1 või 0. Seega, pannes kaheksa plätud kokku, on teil seade, mida saab hoida ja mis esindab 8-bitist baiti. Nii nagu on olemas mitut tüüpi flip-floppe ja mitu variatsiooni vahetusregistrite teemal (mõelge üles/alla loenduritele ja Johnsoni loenduritele), on andmete muutmise põhjal ka mitut tüüpi vahetusregistreid. registreeritakse ja kuidas need andmed väljastatakse. Selle põhjal kaaluge järgmist tüüpi vahetusregistreid:
- Serial In / Parallel Out (SIPO)
- Serial In / Serial Out (SISO)
- Parallel In/ Serial Out (PISO)
- Parallel In / Parallel Out (PIPO)
Kaks märkust on SIPO ja PISO. SIPO registrid võtavad andmeid järjestikku, see tähendab ühe bitti teise järel, nihutades eelnevalt sisestatud biti järgmisele flip -flopile ja saates andmed korraga välja kõikide sisendite kohta. See teeb kena jada -paralleelmuunduri. PISO nihkeregistritel on vastupidi paralleelsed sisendid, nii et kõik bitid sisestatakse korraga, kuid väljastatakse ükshaaval. Ja sa arvasid, et see on kena paralleel jadamuunduriga. Nihkeregister, mida soovime kasutada sisend- ja väljundpistikute arvu vähendamiseks, võimaldaks meil võtta need 8 varem kasutatud pinget ja vähendada neid ühe või võib -olla paarini, arvestades, et meil võib olla vaja kontrollida, kuidas sisestame tükid. Seetõttu on meie kasutatav nihkeregister Serial In / Parallel Out. Ühendage vahetusregister LED -i ja Arduino vahel. Vahetusregistri kasutamine on lihtne. Kõige raskem on lihtsalt visualiseerida andmete väljastamise tihvte ja seda, kuidas binaarsed numbrid IC -sse jõuavad ja kuidas need lõpuks LED -il ilmuvad. Võtke hetk selle planeerimiseks. 1. Kinnitage 5V tihvtile 14 (üleval paremal) ja viige tihvt 7 (all vasakul) alla maapinnale. Nihkeregistris on kaks jada sisendit, kuid me kasutame ainult ühte, nii et ühendage tihvt 2 5V3 -ga. Me ei kasuta selget tihvti (kasutatakse kõigi väljundite nullimiseks), nii et jätke see hõljuma või ründage seda 5V4 -le. Ühendage üks digitaalne IO -port nihkeregistri kinnitamiseks. See on jadasisendi tihvt.5. Ühendage üks digitaalne IO -port tihvtiga 8 (paremal all). See on kella pin.6. Ühendage oma andmeliinid Q0 kuni Q6. Me kasutame ainult 7 bitti, sest ASCII märgistik kasutab ainult seitset bitti. Kasutasin oma seeriaandmete väljastamiseks PD2 ja kella signaali jaoks PD3. Andmepistikute jaoks ühendasin LED -i Q0 kuni D6 ja jätkasin sel viisil (Q1 kuni D5, Q2 kuni D4 jne). Kuna me saadame andmeid järjestikku, peame uurima iga saadetava tähemärgi binaarset kujutist, vaadates 1 ja 0 ning väljastades iga biti jadajoonele. Olen lisanud dotmatrixled.c allika teise versiooni koos alloleva Makefile'iga. See vaatab märgistikku läbi ja kuvab kõik paarismärgid (kui on imelik mõelda, et täht võib olla paaritu või paaritu, mõelge hetkeks binaarse esituse peale). Proovige välja mõelda, kuidas panna see paarituid märke kuvama. Saate täiendavalt katsetada nihkeregistri, punktmaatriksi LED -i ja Arduino vaheliste ühendustega. LED-i ja registri vahel on mitmeid juhtimisfunktsioone, mis võimaldavad teil andmete kuvamise juhtimist täpselt reguleerida. Nii et… me oleme kaheksast I/O-pordist kasutanud ainult kahte!
5. samm: kokkuvõte
Selles juhendis olen esitanud DLO7135 punktmaatriksi LED -i ja selle toimimise. Lisaks olen arutanud, kuidas nihkeregistri abil vähendada nõutavate I/O -portide arvu kaheksalt kahe peale. DLO7135 punktmaatriksi LED -i saab kokku keerata, et teha väga pilkupüüdvaid ja huvitavaid telke. Loodan, et teil oli lõbus seda juhendit lugeda! Kui teil on mingeid täiustusi, mida ma võiksin teha, või soovitusi, mida soovite selle või mõne mu ible'i kohta anda, on mul hea meel neid kuulda! Head AVR -i!
Soovitan:
Seitsme segmendi kuva juhtimine Arduino ja 74HC595 vahetuste registri abil: 6 sammu
Seitsme segmendi kuva juhtimine Arduino ja 74HC595 vahetuste registri abil: Hei, mis toimub, poisid! Akarsh siin CETechist. Seitsme segmendi kuva on hea vaadata ja see on alati mugav tööriist andmete kuvamiseks numbrite kujul, kuid neil on puudus, mis seisneb selles, et kui me kontrollime reaalselt seitsme segmendi kuva
Arduino koos CD4015B vahetuste registriga: 3 sammu
Arduino koos CD4015B nihkeregistriga: CD4015B on kaheastmeline staatiline nihkeregister, millel on jada- ja paralleelväljund. See on 16-kontaktiline IC ja sisaldab kahte identset, 4-astmelist registrit, millel on sõltumatud andmete, kella ja lähtestamise sisendid. Loogika tase, mis on olemas iga stendi sisendis
DIY LED -punktmaatriksi kerimisekraan Arduino abil: 6 sammu
DIY LED -punktmaatriksi kerimisekraan Arduino abil: Tere juhised See on minu esimene juhendatav. Selles juhendis näitan, kuidas ma teen DIY LED -punktmaatriksi kerimisekraani, kasutades Arduino -d MCU -na. Seda tüüpi kuvasid näidatakse raudteejaamas, bussijaamas, tänavatel ja paljudes muudes kohtades. Seal
MAX7219 LED -punktmaatriksi kokkupanek ja testimine: 6 sammu (piltidega)
MAX7219 LED-punktmaatriksi kokkupanek ja testimine: punkt-maatriksekraan on ekraaniseade, mis sisaldab maatriksina joondatud valgusdioode. Seda punktmaatriksi kuvarit kasutatakse rakendustes, kus on vaja sümbolit, graafikat, tähemärke, tähestikku ja numbrit kuvatakse koos
74HC164 vahetuste register ja teie Arduino: 9 sammu
74HC164 vahetuste register ja teie Arduino: vahetuste registrid on digitaalse loogika väga oluline osa, need toimivad liimina paralleel- ja jadamaailma vahel. Nad vähendavad juhtmete arvu, tihvtide kasutamist ja isegi aitavad teie protsessorilt koormust maha võtta, võimaldades nende andmeid salvestada. Neid on erinevaid