Shema LED matrik. LED matrice

V zadnjih letih so LED matrice postale razširjene v zunanjem oglaševanju in raznih informativnih tablah. Precej svetle, dinamične - popolnoma pritegnejo pozornost in ne oslepijo na sončen dan. Vsak od vas jih vsak dan vidi na ulicah svojega mesta.
Seveda je njihovo distribucijo olajšala nizka cena (zaradi kitajskih proizvajalcev) in enostavnost montaže zaslona.

Kaj pa, če poskusite uporabiti takšne matrice v svojih napravah na mikrokontrolerjih? Kakšen je vmesnik za izmenjavo in izhodna logika teh matrik?
Poskusimo vse ugotoviti.

Kitajci ponujajo tako same matrice različnih velikosti in z različnimi ločljivostmi, kot tudi krmilnike za prikazovanje slik na njih z različnimi preprostimi učinki, pa tudi vse potrebne dodatke, povezovalne kable, okvirje.
Matrike so enobarvne (bela, rumena, rdeča, zelena, modra) in 3-barvne (RGB). Oznaka matričnega modela običajno izgleda kot Pxx ali PHxx, kjer je xx število, ki označuje razdaljo med piksli v milimetrih. V mojem primeru je to P10. Poleg tega matrice nekaterih standardnih velikosti niso samo pravokotne, ampak tudi kvadratne.

Možne možnosti za velikost matrice



Torej imamo belo matriko 32x16 slikovnih pik z dimenzijami 320x160 mm in s tem medpikselsko razdaljo 10 mm. Oglejmo si ga pobližje.
Pogled od spredaj:

Se vam je tudi zdelo, da so LED diode nekakšne ovalne? Se vam ni zdelo...


Nad LED diodami je izdelan majhen vizir, ki preprečuje, da bi sončna svetloba osvetlila LED diode.

Pogled od spredaj z odstranjeno plastično masko



Obrnemo matrico in vidimo tablo:


Na plošči je kup logičnih čipov. Poglejmo, kaj so ta mikrovezja:
1. 1 x SM74HC245D - neinvertirajoči medpomnilnik
2. 1 x SM74HC04 - 6-kanalni pretvornik
3. 1 x SM74HC138D - 8-bitni dekoder
4. 4 x APM4953 - sestava 2 P-kanalnih MOSFET-ov
5. 16 x 74HC595D prestavni register z zaklepom
Dva 16-pinska konektorja sta vmesnik, eden od njih je vhod (nanj je priključen krmilnik zaslona), ​​drugi pa je izhod (nanj je povezana naslednja matrika v verigi). Puščica na plošči je usmerjena od vhodnega konektorja do izhoda.
Napajanje se napaja na sponke v sredini plošče. Napajalna napetost - 5V, največji tok (ko so vklopljene vse LED matrice) - 2A (za belo matriko).

Vse zgornje informacije in predstavitev matrike v spodnjem videu. V njem od 13:04 do 15:00 govorim o odvisnosti svetlosti zaslona od števila matrik. To je posledica napake v algoritmu. Napaka je bila odpravljena in zdaj se podatki naložijo, preden se zaslon izklopi.

Tudi jaz vas bom vesela moj youtube kanal, kjer še vedno veliko stvari povezujem z mikrokontrolerji.

Hvala vsem za pozornost!

Prednosti LED diod so nesporne, danes so povsod, tudi ure. Kakšne so ure na LED matricah, bomo analizirali prednosti in slabosti v članku. Na koncu članka je predstavljen podroben vodnik po korakih za izdelavo naprave z lastnimi rokami.

kaj je

Matrična LED ura je elektronska ura, ki za prikaz uporablja matriko več LED. Njihova edina razlika je uporaba indikatorjev drugačne vrste.

Matrika je niz LED diod, sestavljenih skupaj v mrežo z eno samo anodo ali katodo. Praviloma je ločljivost takih indikatorjev - število pik navpično in vodoravno - 8×8.

Zakaj so takšne ure vse bolj priljubljene, prednosti:

  1. Cena. LED matrike so cenejše od sedemsegmentnih indikatorjev podobnih velikosti.
  2. Svetlost. LED diode so svetlejše od 7-segmentnih zaslonov in jih je lažje videti na sončnih lokacijah. Mnogi proizvajalci zagotavljajo tudi konstruktivno zaščito diode pred izpostavljenostjo soncu.
  3. Funkcionalnost. Z uporabo matrike LED lahko prikažete ne samo številke, ampak tudi različne črke, ločila, simbole. Z uporabo nabora LED-matrik lahko prikažete nekaj informacij v obliki plazeče črte.

LED matrice imajo tudi slabosti:

  • Povečana kompleksnost nadzora. Zaradi velikega števila elementov (v standardni matriki jih je 64) je lažje nadzorovati matrične kazalnike kot sedemsegmentne. Za to se uporabljajo mikrokontrolerji, dinamični indikacijski in premični registri.
  • Vidni kot. Posebnost LED diod je, da fokusirajo svetlobo v eno smer. To vodi k dejstvu, da se slika na LED matriki dobro vidi le pod določenim kotom.
  • Nestrpnost do visokih temperatur. Toplota zmanjša učinkovitost LED diod in skrajša njihovo življenjsko dobo.
  • Izgorelost posameznih LED diod bo povzročila učinek "pokvarjenega piksla" in poslabšanje kakovosti slike.

Domače ure na LED matricah

Kljub veliki priljubljenosti ur na LED matricah v Runetu ni toliko shem za njihovo samostojno proizvodnjo. Razmislimo o najbolj priljubljenih.

Potrebne veščine za sestavljanje naprave:

  • proizvodnja tiskanih vezij;
  • spajkalni elementi: shema predvideva izvedbo SMD, kar pomeni, da bodo elementi nameščeni neposredno na površino plošče;
  • vdelana programska oprema mikrokrmilnikov: v vezju se uporablja MK ATMega16A;
  • Programiranje MK: to ni potrebno, saj je programska oprema krmilnika že na voljo za to napravo. Ta veščina vam bo prišla prav, če želite spremeniti način delovanja ure ali razširiti njeno funkcionalnost, na primer z dodajanjem dodatnih elementov, kot so senzorji temperature ali vlažnosti.

Od orodij, ki jih boste potrebovali:

  • set za izdelavo desk;
  • programator MK;
  • spajkalnik.

Oglejmo si podrobneje diagram naprave. Glavni krmilni element je MK ATMega16A, zagotavlja naslednje funkcije naprave:

  1. Odštevanje in koledar. Deluje tudi, ko je napajanje izklopljeno.
  2. Alarm. Tukaj jih je 9, programirate jih lahko za delovanje ob dnevih v tednu.
  3. Merjenje temperature. Zasnova ure vam omogoča namestitev dveh temperaturnih senzorjev za meritve v prostoru in na ulici.
  4. Način tekoče črte. Poda naslednje informacije: dan v tednu, mesec, leto, temperatura.
  5. Popravek ure.

Večina funkcij je dodeljena mikrokrmilniku, kar vam omogoča, da čim bolj razbremenite vezje in uporabite najmanjše število elementov.

Naprava uporablja samo dve mikrovezji: mikrokrmilnik in premični register TPIC6B595, priključite lahko tudi dva temperaturna senzorja DS18B20 - enega zunanjega in drugega notranjega.

Za indikacijo se uporabljajo tri LED matrice 8×8. Kot diodo D1 je bolje uporabiti diodo Schottky. Dioda v vezju zagotavlja prehod na zasilno napajanje, Schottkyjeva dioda pa ima najmanjši padec napetosti in visoko preklopno hitrost.

Proizvodni proces:


Nekatere funkcije pri sestavljanju ure na LED matrici z ATMega 16A so na voljo v naslednjem videu.

Ure na LED matricah imajo številne prednosti pred napravami z drugačno vrsto indikacije: so cenejše, niso osvetljene s soncem, lahko se uporabljajo za prikaz več informacij. Obstaja veliko število modelov ur na led matricah in vsakdo bo našel napravo zase z zahtevano funkcionalnostjo. Poleg tega je takšne ure enostavno izdelati sam, kot ste videli iz zgornjega vodnika po korakih, ne potrebuje posebnih orodij ali posebnih veščin.

!
Danes se bomo zabavali z naslovljivo LED matriko. Ta projekt je precej zapleten, hkrati pa ga lahko vsak ponovi. Avtor projekta je AlexGyver.

Naslovljivi LED trak je sestavljen iz tribarvnih LED, od katerih ima vsaka posebno mikrovezje.


Mikrovezje v LED diodah med seboj prenaša informacije. To vam omogoča osvetlitev katere koli LED diode na traku z eno od 16.000.000 barv in odtenkov. In kar je najbolj kul, je to, da se vse skupaj krmili z eno žico, živimo v zelo zanimivem času.
Trak nadzira mikrokrmilnik, kot je platforma arduino.


Takšen kup je že sam po sebi zelo zanimiv in najdeš kup aplikacij v dizajnu ali domačih izdelkih, kar je vredno le efekta plamena. Toda danes ne bomo govorili o tem. Kaj se zgodi, če je trak položen v cikcak in tako, da LED diode tvorijo enakomerno, pravilno mrežo? Tako je, LED matrika. Za udobje lahko kupite že pripravljeno matrico pri Kitajcih, najbolj zanimivo pa je, da stane veliko manj kot nakup traku in večurna poraba rezanja in povezovanja kosov z žicami.




Na primer obstaja taka matrica 8X8, najcenejša, se bo kdo lažje poigral z njo.


Značilnost današnjega projekta je njegova vsestranskost in vsestranskost, to pomeni, da lahko kupite že pripravljeno matrico, vendar je tako rekoč majhna, lahko pa kupite tudi trak z nizko gostoto LED in izdelate matriko tega, recimo, s sliko. To bo kul.
Matrica ponuja odlične možnosti za ustvarjanje različnih pikslovnih učinkov, prikaz slik in gifov (gif), ustvarjanje klasičnih iger in drugih zanimivih stvari. Obiščite stran projekta, tam boste našli vse potrebne povezave, vdelano programsko opremo, diagrame in dodatna navodila.
Torej, oboroženi z orodjem za nadzor matrike, lahko prižgemo katero koli LED diodo glede na njene koordinate.


Odlično, narediš lahko najrazličnejše kul učinke. Upravljate ga lahko iz pametnega telefona prek bluetootha. To pomeni, da pametni telefon pošlje nekaj ukazov prek bluetootha, modul jih prejme in prenese v arduino. In arduino nato odda podatke v matriko.




Avtor je začel z odločitvijo, da bo izdelal risalno orodje, torej da lahko izberete barvo in prižgete poljubno LED na matrici.


Prvi korak je bil razvoj komunikacijskega protokola z arduinom.


Prva številka v njem je način, ostale pa so bile odgovorne za različne nastavitve in druge prenesene vrednosti. Nato je avtor izdelal grafično polje, na katerega je narisal mrežo.

Program sledi koordinatam dotika polja s prstom in na tem mestu nariše kvadrat s poljubno barvo. Med potjo se koordinate kvadrata pošljejo arduinu.

Za izdelavo potrebujemo:
1) Matrika ali trak na naslovljivih LED;
2) Arduino;
3) Bluetooth modul;
4) Upor.


Lahko kupite funt pri Kitajcih ali pa v kateri koli radijski trgovini. Komponente povežemo po zelo preprosti shemi:


Vse lahko zbereš na mizi. Nato prenesite arhiv s projektom s strani projekta, namestite knjižnice v skladu z navodili in odprite datoteko vdelane programske opreme.




Tukaj imamo nastavitve. Določite velikost vaše matrice, njeno vrsto in točko povezave.

Če sami izdelate veliko matrico, torej spajkate iz kosov traku, potem imate na izbiro 2 vrsti.


Avtor svetuje, da izberete pravo možnost, saj jo je lažje spajkati. Zdaj se je treba odločiti za začetek matrice, to je točko povezave z njo in smer prvega kosa traku. Ta goljufija bo pomagala pri vseh 8 možnostih lokacije matrice:


Avtor je porabil ogromno časa za to firmware. To je avtorjev največji projekt glede na količino kode. Arduino je pakiran samo do zrkla, potisnjen, kot pravijo, nevpihuemoe.


Torej, nastavite, kliknite za prenos vdelane programske opreme. Pred prenosom ne pozabite odklopiti bluetooth iz rx pina, sicer arduino ne bo flashal. Za udobje lahko na žico spajkate tudi stikalo.


Nato namestite aplikacijo GyverMatrixBT na svoj pametni telefon Android. Ta aplikacija je na voljo v Play Marketu, je popolnoma brezplačna in brez oglasov.


Nato se združi z bluetooth modulom (geslo 1234 ali 0000), poveže z modulom v aplikaciji in to je to. V nastavitvah lahko prilagodite svetlost in velikost matrike, ki ustreza vaši, ter nekatere druge njene parametre.

Glede na prilagojeno velikost bomo imeli polje v zavihku za risanje. Kliknite, da ga inicializirate. Tukaj lahko rišete s tapi in potezami, lahko brišete, lahko počistite polje in ga napolnite z barvo.




Na splošno imamo trenutno delujoče orodje za pošiljanje podatkov v matriko. Lahko greš naprej. Celoten sistem je avtor zasnoval, da bi zgradil veliko matriko trakov ali modulov. Zanimiva je kot projekt, kot hobi, morda bo komu uporabna v reklamne namene, za okras ali dizajn, no, ali pa samo za zabavo.

Toda matrika v tej obliki ni videti zelo kul, ne pikselirana in ne osembitna. Nujno je treba narediti mrežo, tako da vsaka LED tvori svoje kvadratne piksle in na vrh postaviti difuzor. Takrat bo vse zelo kul. Rešetka je lahko izdelana iz katerega koli materiala v obliki in letvicah. Lahko je karton, paket sovjetskih lesenih ravnil ali plastična možnost (PVC vogal), lahko ga kupite v trgovini z gradbenimi materiali, kjer so plastične plošče in različni izdelki zanje. Vogale lahko prelomimo po dolžini, naredimo zareze za sredino in sestavimo rešetko. To je najbolj »kolektivna« možnost po kartonu.

In seveda se lahko sprostite in natisnete mrežo na 3D tiskalniku. Torej naredimo to.






Torej, telo matrice je natisnjeno. Mimogrede, avtor meni, da črna ni najboljša izbira, bolje je natisniti rešetko v beli barvi, tako da odbija svetlobo. Pa saj ni važno, bomo pobarvali.


Pravzaprav je tukaj naša matrika brez mreže, LED diode, kakršne so.


Postavimo rešetko, postane bolj ostra, to je zato, ker gledamo pod kotom.


In zdaj poglejte, kaj se zgodi, če dodate difuzor v obliki lista papirja.


Toda matrika, tako kot vsak zaslon, deluje v barvnem prostoru rgb, njeno ozadje pa mora biti črno za pravilnejšo zaznavo barv. Avtor je preizkusil več možnosti in se odločil za film

Včasih je treba na mikrokrmilnik priključiti več sedemsegmentnih indikatorjev ali LED matriko, za prikaz informacij pa se uporablja dinamična indikacija. Bistvo dinamične indikacije je zaporedni prikaz informacij na indikatorjih. Spodnji diagram prikazuje primer povezovanja več sedemsegmentnih indikatorjev (na primer s skupno katodo) za izvedbo dinamične indikacije, na splošno ob upoštevanju točke dobimo 8 segmentov, vendar na staromoden način imenovano tako. Vsi zaključki (anode) istoimenskih segmentov so povezani skupaj, za skupno 8 linij, ki so povezane z mikrokontrolerjem preko uporov. Skupna katoda vsakega indikatorja je preko tranzistorja povezana z mikrokontrolerjem.


Algoritem indikacije je naslednji: najprej nastavimo zahtevane logične nivoje na črtah, odvisno od tega, kateri segmenti morajo biti vklopljeni na prvem indikatorju (indikacija od leve proti desni), z visokim logičnim nivojem za vklop, nizkim do izklopi segment. Nato na osnovo tranzistorja VT1 uporabimo visoko logično raven, s čimer je skupna katoda prvega indikatorja povezana s skupno žico, v tem trenutku zasvetijo tisti segmenti, na anodah katerih je logična enota. Po določenem času (pavza) izklopimo indikator z uporabo nizkega logičnega nivoja na bazi tranzistorja, nato znova spremenimo logične nivoje na linijah v skladu z izhodnimi informacijami, namenjenimi drugemu indikatorju, in pošljemo signal za vklop tranzistorja VT2. Tako po vrstnem redu v krožnem ciklu preklopimo vse indikatorje, to je celotna dinamična indikacija.

Za solidno sliko brez utripanja mora biti preklapljanje na visoki hitrosti, da preprečimo utripanje LED diod je treba nastaviti frekvenco osveževanja od 70 Hz ali več, jaz jo ponavadi nastavim na 100 Hz. Za zgornjo konstrukcijo se premor izračuna na naslednji način: za frekvenco 100 Hz je obdobje 10 ms, indikatorji so samo 4, čas žarenja vsakega indikatorja je nastavljen na 10/4 = 2,5 ms. V enem ohišju so večmestni sedemsegmentni indikatorji, pri katerih so istoimenski segmenti povezani znotraj samega ohišja, za njihovo uporabo pa je seveda potrebna dinamična indikacija.

Za izvedbo dinamične indikacije je potrebno uporabiti prekinitve ob prekoračitvi enega od časovnikov. Spodaj je koda, ki uporablja časovnik TMR0:

;Izvedba dinamične indikacije za 4 sedemsegmentne kazalnike ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; swapf STATUS,W ; clrf STATUS ; movwf STATUS_TEMP ; ; bcf ind1 ;izklop 1. indikatorja bcf ind2 ;izklop 2. indikatorja bcf ind3 ;izklop 3. indikatorja bcf ind4 ;izklop 4. indikatorja; incf shet,F ;inkrementni register shet movlw .5 ;preveri vsebino registra shet xorwf shet,W ;preveri, če je enak 5 btfss STATUS,Z ; goto met1 ;številka v registru listov ni enaka 5 movlw .1 ;številka v registru listov je 5: zapišite številko 1 movwf shet ;v register listov ; met1 movlw .1; preveri vsebino registra shet xorwf shet,W; enako številu 1 btfss STATUS,Z; goto met2 ;številka v registru shet ni enaka 1: skok na met2 movf datind1,W ;številka v registru shet je enaka 1: kopiraj movwf PORTB ;vsebina registra datind1 v register PORTB bsf ind1 ;vklopi 1. indikator met2 movlw .2 ;preveri vsebino registrskega lista xorwf shet,W ; enako 2 btfss STATUS,Z ; goto met3 ;številka v registru shet ni enaka 2: skok na met3 movf datind2,W ;številka v registru shet je 2: kopiraj movwf PORTB ;vsebina registra datind2 v register PORTB bsf ind2 ;vklop 2. indikatorja goto exxit ;skok na label exxit met3 movlw .3; preveri vsebino registra shet xorwf shet,W; enako 3 btfss STATUS,Z; goto met4 ;številka v registru shet ni enaka 3: skok na met4 movf datind3,W ;številka v registru shet je 3: kopiraj movwf PORTB ;vsebina registra datind3 v register PORTB bsf ind3 ;vklop 3. indikatorja goto exxit ;skok na oznaka exxit met4 movf datind4,W ;kopiraj vsebino registra datind3 movwf PORTB ;v register PORTB bsf ind4 ;vklop 4. indikatorja; movlw .100 ;zapisati 156 v register časovnika TMR0 movwf TMR0 ; ; movwf STATUS ; swapf W_TEMP,F ; swapf W_TEMP,W ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Glavni program ................. movlw b"11010011" ; OPTION_REG, s čimer nastavite notranji ; nastavite razmerje preddelilnika 1:16 ; clrf shet; ponastavitev registrskega lista, pred zagonom; prekinitve ob prelivu TMR0, izvedeno; clrf datind1 ;čiščenje registrov za izpis informacij v clrf datind2 ;indikatorje, je enakovredno izklopu clrf datind3 ;indikatorjev, kot indikatorjev s skupnim clrf datind4 ;katoda; bcf INTCON,T0IF ; počisti TMR0 prekinitveno zastavico bsf INTCON,T0IE ; omogoči TMR0 prekinitve prelivanja bsf INTCON,GIE ; omogoči globalne prekinitve; movlw b"00000110"; 13.52 primer izhoda movwf datind1; movlw b"11001111" ; movwf z datumom2; movlw b"01101101" ; movwf z datumom3; movlwb"01011011" ; movwf z datumom4; ; . ................; .................; .................; ; konec ; konec celotnega programa;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Izvedba dinamične indikacije za 4 sedemsegmentne indikatorje

; Primer taktne frekvence 4 MHz, strojni cikel 1 µs

org 0000h ;začetek izvajanja programa na naslovu 0000h

goto Start ;pojdi na oznako Start

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Prekinitev rutine

org 0004h ;začeti izvajanje podprograma na naslovu 0004h

movwf W_TEMP ;shrani vrednosti registra ključev

swapf STATUS,W ;

movwf STATUS_TEMP ;

bcf ind1 ;izklopi 1. indikator

bcf ind2 ;izklopi 2. indikator

bcf ind3 ;izklopi 3. indikator

bcf ind4 ;izklopi 4. indikator

incf shet,F ;prirast registrskega lista

movlw .5; preverite vsebino registrskega lista

xorwf shet,W; enako 5

btfss STATUS,Z ;

goto met1 ;številka v registrskem listu ni enaka 5

movlw .1 ;številka v registru listov je 5: zapišite številko 1

movwf shet ;za registracijo lista

met1 movlw .1; preveri vsebino registra listov

xorwf shet,W; enako številu 1

btfss STATUS,Z ;

goto met2 ;številka v shet register ni enaka 1: skoči na met2

movf datind1,W ;številka v registru listov je 1: kopija

movwf PORTB; vsebina registra datind1 v register PORTB

bsf ind1 ;vklop 1. indikatorja

goto exxit ;pojdi na label exxit

met2 movlw .2; preveri vsebino registra listov

xorwf shet,W; enako številu 2

btfss STATUS,Z ;

goto met3 ;številka v shet register ni enaka 2: skoči na met3

movf datind2,W ;številka v registru listov je 2: kopija

movwf PORTB; vsebina registra datind2 v register PORTB

bsf ind2 ;vklop 2. indikatorja

goto exxit ;pojdi na label exxit

met3 movlw .3; preveri vsebino registra listov

xorwf shet,W ; enako številu 3

btfss STATUS,Z ;

goto met4 ;številka v shet register ni enaka 3: skoči na met4

movf datind3,W ;številka v registru listov je 3: kopija

movwf PORTB; vsebina registra datind3 v register PORTB

bsf ind3 ;vklopi 3. indikator

goto exxit ;pojdi na label exxit

met4 movf datind4,W; kopiraj vsebino registra datind3

movwf PORTB ;v register PORTB

bsf ind4 ;vklopi 4. indikator

izhod bcf INTCON,T0IF ;ponastavitev zastavice prekinitve preliva TMR0

movlw .100 ;zapisati številko 156 v register časovnika TMR0

swapf STATUS_TEMP,W; obnovi vsebino registrov ključev

swapf W_TEMP,F ;

swapf W_TEMP,W ;

retfie ;izhod iz prekinitvene rutine

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Glavni program

Start ................. ;začetna nastavitev registrov

................. ;poseben namen

.................

bsf STATUS,RP0 ;zapišite binarno število 11010011 za registracijo

movlw b"11010011" ;OPTION_REG, s čimer nastavite notranji

movwf OPTION_REG; izvor ure za TMR0

bcf STATUS,RP0 ;omogoči preddelilnik pred TMR0

;Nastavite razmerje preddelilnika na 1:16

clrf shet; pred začetkom ponastavite register listov

;prekinitev pretoka TMR0, izvedena

;enkrat po vklopu

clrf datind1; počisti registre za izpis informacij

clrf datind2 ;indikatorji, enakovredni izklopu

clrf datind3 ;indikatorji, saj indikatorji s skupnim

clrf datind4 ;katoda

bcf INTCON,T0IF ;ponastavi zastavico prekinitve preliva TMR0

bsf INTCON,T0IE ;omogoči prekinitve prekoračitve TMR0

bsf INTCON,GIE; omogoči globalne prekinitve

movlw b"00000110"; primer izhoda 13.52

movlw b"11001111" ;

movlw b"01101101" ;

movlwb"01011011" ;

................. ;

................. ;

................. ;

konec; konec celotnega programa

V glavnem programu smo najprej nastavili časovnik z uporabo registra OPTION_REG, prej sem govoril o uporabi časovnikov za . Nato počistimo register listov, namenjen vpisu števila od 1 do 4, za vsak indikator. Ta register se poveča v prekinitveni servisni rutini in tam prilagodi (šteje od 1 do 4), tako da se to brisanje izvede enkrat po vklopu. Na podlagi tega registra bomo določili, kateri indikator bomo vključili in izdali ustrezne podatke. Naslednji korak je brisanje registrov za shranjevanje informacij, štirih registrov datain1,2,3,4, ki ustrezajo štirim indikatorjem. Čiščenje je enakovredno izklopu indikatorjev, saj se v prekinitveni servisni rutini vsebina teh registrov prenese v register PORTB, na katerega so povezane indikatorske anode. To je potrebno, da se po omogočenih prekinitvah na indikatorjih ne prikaže kakršna koli smeti, načeloma tega ni mogoče storiti, če se pravilne informacije takoj zapišejo za izhod. Nato ponastavite zastavico prekinitve prekoračitve časovnika, omogočite prekinitve prekoračitve TMR0 in končno omogočite globalne prekinitve.

V prekinitveni rutini najprej izklopimo vse indikatorje (z uporabo nizkih logičnih nivojev na bazah tranzistorjev), ker se ne ve, kateri je vklopljen. Povečamo register listov, preverimo enakost s številko 5, če obstaja takšno ujemanje, v register vpišemo številko 1, saj je treba šteti od 1 do 4. Nato preverimo, katera številka je v listu register, s katerim naložimo podatke iz PORTB v PORTB informacijske registre (dataind) za pripadajoči indikator in ga vklopimo. Po tem ponastavimo prekinitveno zastavico preliva TMR0, v časovnik zapišemo številko 100 (izračun te vrednosti je podan spodaj), za časovni zamik in zapustimo obdelovalnik prekinitev. Ob prvi prekinitvi se prižge prvi indikator, ob drugi prekinitvi drugi in tako naprej v krožnem ciklu. V glavnem programu ostane samo nalaganje podatkov v registre za shranjevanje informacij za vsak indikator. V prekinitvenem podprogramu ne pozabite shraniti in obnoviti vrednosti registrov ključev, o tem sem pisal v članku o.

Za izpis številk je bolje uporabiti generator znakov v obliki podatkovne tabele. Na primer, če želite na indikatorjih prikazati številko 3456, jo je treba razdeliti na števke, medtem ko je bolje uporabiti ločene registre za shranjevanje števila števk (od 0 do 9), nato pa te registre zagnati skozi generator znakov, s čimer pridobivanje pravilnih bajtov (naloženih v registre podatkov in) za vžig zadevnih segmentov.

Frekvenco taktnega generatorja bomo vzeli kot 4 MHz, strojni cikel je 1 μs. Naj bo hitrost osveževanja vsakega indikatorja 100 Hz (obdobje T = 10 ms), zahtevana časovna zakasnitev je 10/4 = 2,5 ms. Faktor preddelilnika za TMR0 je nastavljen na 1:16, medtem ko je največja možna zakasnitev 256x16 = 4096 µs, potrebujemo pavzo 2,5 ms. Izračunajmo številko za zapis v TMR0: 256-((256x2,5)/4,096) = 256-156,25 = 99,75. Po zaokroževanju dobimo število 100.

Spodaj lahko prenesete model za program Proteus, vdelano programsko opremo in izvorno kodo z izvedbo dinamične indikacije na 4-mestnem indikatorju s skupno katodo z uporabo mikrokrmilnika PIC16F628A. Na indikatorju so na primer prikazane številke 0000; 0001; 0002; 13,52; 9764.

Zdaj razmislite o priključitvi matrike z ločljivostjo 8x8 slikovnih pik (LED). Struktura matrike se običajno obravnava v smislu vrstic in stolpcev. Na spodnji sliki so v vsakem stolpcu povezane katode vseh LED diod, v vsaki vrstici pa anode. Niti (8 linij, LED anode) so povezani preko uporov na mikrokontroler. Vsak stolpec (LED katode) je povezan z mikrokontrolerjem preko 8 tranzistorjev. Algoritem indikacije je enak, najprej na vrsticah nastavimo potrebne logične nivoje, v skladu s katerimi naj LED diode svetijo v stolpcu, nato priključimo prvi stolpec (indikacija od leve proti desni). Po določenem premoru izklopimo stolpec in spremenimo logične ravni na vrsticah za prikaz drugega stolpca, nato povežemo drugi stolpec. In tako izmenično vozite vse kolone. Spodaj je diagram povezave matrike z mikrokontrolerjem.


Skupno je za povezavo takšne matrike potrebnih 16 zatičev mikrokrmilnika, kar je precej, zato je za zmanjšanje krmilnih linij bolje uporabiti serijske premične registre.

Najpogostejši serijski register je mikrovezje 74HC595, ki vsebuje premikalni register za nalaganje podatkov in zadržani register, prek katerega se podatki prenašajo v izhodne linije. Nalaganje podatkov vanj je preprosto, na vhodu ure SH_CP nastavimo logično 0, nato na vhodu podatkov DS nastavimo zahtevani logični nivo, nakar preklopimo vhod ure na 1, pri tem pa shranimo vrednost nivoja (na vhodu DS) znotraj premikalnega registra. Hkrati se podatki premaknejo za en bit. Ponovno ponastavite izhod SH_CP na 0, nastavite zahtevano raven na vhodu DS in dvignite SH_CP na 1. Ko je premični register popolnoma naložen (8 bitov), ​​nastavite izhod ST_CP na 1, v tem trenutku se podatki prenesejo v register za shranjevanje in doveden v izhodne vrstice Q0 ... Q7, po katerem ponastavimo izhod ST_CP. Med sekvenčnim nalaganjem se podatki premaknejo iz Q0 v Q7. Pin Q7' je povezan z zadnjim bitom premikalnega registra, ta pin je lahko povezan z vhodom drugega mikrovezja, tako da lahko naložite podatke v dve ali več mikrovezij hkrati. Zatič OE preklopi izhodne linije v tretje (visoko uporno) stanje, ko se nanj uporabi logična 1. Zatič MR je zasnovan za ponastavitev premikalnega registra, to je za nastavitev nizkih logičnih nivojev na izhodih sprožilcev registra , kar je enako nalaganju osmih ničel. Spodaj je diagram nalaganja podatkov v mikrovezje 74NS595 z nastavitvijo vrednosti 11010001 na izhodnih linijah Q0 ... Q7, pod pogojem, da so bile na začetku ničle:


Razmislite o povezovanju matrike 8×8 z mikrokrmilnikom PIC16F628A z uporabo dveh preklopnih registrov 74HC595, diagram je prikazan spodaj:


Podatki se naložijo v čip DD2 (nadzor logičnega nivoja na vrsticah, anode LED), nato se preko pina Q7 prenesejo na DD3 (nadzor stolpca), oziroma najprej naložimo bajt za omogočanje stolpca, nato bajt z logičnimi nivoji v vrsticah. Tranzistorji preklopnih matričnih stebrov (LED katode) so priključeni na izhodne linije DD3. Spodaj je programska koda za prikaz slike na matrici:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Izvedba dinamične indikacije za matriko z ločljivostjo 8x8 ;Frekvenca taktnega generatorja npr. 4 MHz, strojni cikel 1 µs org 0000h ;začetek izvajanja programa z naslova 0000h goto Start ;skok na oznako Start ;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Prekini rutino org 0004h ;začetek izvajanja podprograma z naslova 0004h movwf W_TEMP ;shrani vrednosti registra ključev swapf STATUS,W ; clrf STATUS ; movwf STATUS_TEMP ; ; movwf FSR_osn ;v register FSR_osn movf FSR_prer,W ;obnavlja predhodno shranjeno vrednost movwf FSR ;registra FSR iz registra FSR_prer ;;;;;;;;;;;;;;;;;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;;; ;naložiti vsebino registra stolb v čip movf stolb,W ;prepisati vsebino registra stolb movwf var ;v register var met2 btfsc var,0 ;nastaviti izhod ds v skladu z btfss var,0 ; bcf ds ; bcf sh_cp; rrf var,F ;premični register var desno za pripravo;naslednji bit goto met2 ;scetbit ni enak nič: skok na oznako met2 ;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;naloži vsebino registra INDF v čip;74HC595 (serijski premični register) movf INDF,W ;kopiraj vsebino registra INDF movwf var ;v register var movlw .8 ;zapiši številko 8 v register scetbit, za štetje movwf scetbit ;preneseni biti met1 btfsc var ,7 ;nastavi izhod ds glede na bsf ds ;vrednost 7. bita registra var btfss var,7 ; bcf ds ; bsf sh_cp ;ura sh_cp izhod za zapah podatkov bcf sh_cp ; rlf var,F ;premični register var levo za pripravo;naslednji bit decfsz scetbit,F ;zmanjšanje s pogojem registra scetbit goto met1 ;scetbit ni enak nič: Skoči na oznako met1 ; bsf st_cp;taktirajte izhod st_cp za prenos naloženih bcf st_cp;bajtov v izhodne vrstice čipov 74HC595; bcf STATUS,C ;ponastavi bit C statusa registra pred premikom rrf stolb,F ;levi premik register stolb ; incf FSR,F ;Povečaj register FSR, pripravi naslednje ;Registriraj se za pošiljanje podatkov v 74HC595 decfsz shet,F ;Zmanjšaj s pogojem registra shet goto exxit ;Register lista ni enak 0: Skoči na izhod movlw data1 ;Register lista je enak 0: Najprej zapišite naslov movwf FSR ;Register za shranjevanje informacij v register FSR movlw .8 ;Pisanje številke 8 v shet register, za vzdrževanje movwf shet ;Štetje stolpcev ; izhod bcf INTCON,T0IF ;ponastavi prekinitveno zastavico prekoračitve TMR0 movlw . 124 ;zapisati številko 124 v register časovnika TMR0 movwf TMR0 ; ; movf FSR,W ;Shrani trenutno vrednost FSR movwf FSR_prer ;V FSR_prer movf FSR_osn ,W ;Obnovi predhodno shranjeno vrednost movwf FSR ;FSR iz FSR_osn ; swapf STATUS_TEMP,W obnovi vsebino registrov ključev movwf STATUS ; swapf W_TEMP,F ; swapf W_TEMP,W ; ; retfie ;izhod iz prekinitvenega podprograma;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Zagon glavnega programa ................ ;Začetna nastavitev registrov ................. ;Poseben namen..... ............ bsf STATUS,RP0 ;zapišite binarno število 11010011 v register movlw b"11010010" ;OPTION_REG, s čimer nastavite notranji movwf OPTION_REG ;vir ure za TMR0 bcf STATUS,RP0 ;omogočite preddelilnik pred TMR0; nastavite razmerje preddelilnika 1:8; je izvedeno enkrat, po vklopu napajanja; movlw data1 ;Zapis naslova prvega registra (shranjevalni registri movwf FSR_prer ;informacije) v register FSR_prer, izvedeno;enkrat po vklopu; movlw .8 ;čiščenje 8 registrov izhodnih informacij v movwf tmp ;matrika, enakovredno izklopu movlw data1 ;matrika movwf FSR ; met3 clrf INDF ; incf FSR,F ; decfsz tmp,F ; goto met3 ; ; bcf INTCON,T0IF ; počisti TMR0 prekinitveno zastavico bsf INTCON,T0IE ; omogoči TMR0 prekinitve prelivanja bsf INTCON,GIE ; omogoči globalne prekinitve; m1 movlw data1; R primer izhoda movwf FSR; movlw b"00000000" ; movwf INDF ; incf FSR,F ; movlw b"01111111" ; movwf INDF ; incf FSR,F ; movlwb"00001001"; movwf INDF ; incf FSR,F ; movlwb"00011001"; movwf INDF ; incf FSR,F ; movlwb"00101001"; movwf INDF ; incf FSR,F ; movlw b"01000110" ; movwf INDF ; incf FSR,F ; movlw b"00000000" ; movwf INDF ; incf FSR,F ; movlw b"00000000" ; movwf INDF ; ; .................; .................; .................; ; konec ; konec celotnega programa;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Izvedba dinamične indikacije za matriko z ločljivostjo 8x8

; Primer taktne frekvence 4 MHz, strojni cikel 1 µs

org 0000h ;začetek izvajanja programa na naslovu 0000h

goto Start ;pojdi na oznako Start

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Prekinitev rutine

org 0004h ;začeti izvajanje podprograma na naslovu 0004h

movwf W_TEMP ;shrani vrednosti registra ključev

swapf STATUS,W ;

movwf STATUS_TEMP ;

movf FSR,W ;shrani trenutno vrednost registra FSR

movwf FSR_osn ;v register FSR_osn

movf FSR_prer,W; obnovi predhodno shranjeno vrednost

movwf FSR ;FSR iz FSR_prer

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (serijski premični register)

movf stolb,W; kopiraj vsebino registra stolb

movwf var ;za registracijo var

movlw .8 ;zapisati številko 8 v register scetbit za štetje

movwf scetbit ;preneseni biti

met2 btfsc var,0 ;nastavi izhod ds glede na

bsf ds; 7. bitna vrednost registra var

bsf sh_cp ;ura sh_cp izhod za zapah podatkov

rrf var,F ;premični register var desno za pripravo

;naslednji košček

decfsz scetbit,F ;dekrement s pogojem registra scetbit

goto met2 ;scetbit ni enak nič: skoči na oznako met2

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (serijski premični register)

movf INDF,W ; kopiraj vsebino registra INDF

movwf var ;za registracijo var

movlw .8 ;zapisati številko 8 v register scetbit za štetje

movwf scetbit ;preneseni biti

met1 btfsc var,7 ;nastavi izhod ds glede na

bsf ds; 7. bitna vrednost registra var

bsf sh_cp ;ura sh_cp izhod za zapah podatkov

rlf var,F ;levi premik var za pripravo

;naslednji košček

decfsz scetbit,F ;dekrement s pogojem registra scetbit

goto met1 ;scetbit ni enak nič: skoči na oznako met1

bsf st_cp ;takt izhod st_cp za prenos naložen

bcf st_cp ;bajtov na 74HC595 izhodnih vrstic

bcf STATUS,C; počisti bit C statusnega registra pred premikom

rrf stolb,F ;levi premični register stolb

incf FSR,F ;povečanje registra FSR, priprava naslednjega

; registrirajte se za pošiljanje podatkov na 74HC595

decfsz shet,F ;dekrement s pogojnim listom registra

goto exxit ;shet register ni enak 0: skok na exxit

movlw data1 ;shet register je 0: zapišite naslov prvega

movwf FSR ;Registrirajte se za shranjevanje informacij v FSR

movlw .8 ;zapišite številko 8 v register listov za referenco

movwf list ;štetje stolpcev

movlw b"10000000" ;zapisati binarno število 10000000 v

movwf stolb ;registrirajte stolb, da vključite 1. stolpec

izhod bcf INTCON,T0IF ;ponastavitev zastavice prekinitve preliva TMR0

movlw .124 ;zapisati številko 124 v register časovnika TMR0

movf FSR,W ;shrani trenutno vrednost registra FSR

movwf FSR_prer ;v register FSR_prer

movf FSR_osn, W; obnovitev predhodno shranjene vrednosti

movwf FSR ;FSR iz FSR_osn

swapf STATUS_TEMP,W; obnovi vsebino registrov ključev

swapf W_TEMP,F ;

swapf W_TEMP,W ;

retfie ;izhod iz prekinitvene rutine

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Glavni program

Start ................. ;začetna nastavitev registrov

................. ;poseben namen

.................

bsf STATUS,RP0 ;zapišite binarno število 11010011 za registracijo

movlw b"11010010" ;OPTION_REG, s čimer nastavite notranji

movwf OPTION_REG; izvor ure za TMR0

bcf STATUS,RP0 ;omogoči preddelilnik pred TMR0

;Nastavite razmerje preddelilnika na 1:8

movlw .8 ;zapišite številko 8 v register listov pred zagonom

movwf shet; TMR0 prekinitve prelivanja, teče

;enkrat po vklopu

movlw b"10000000" ;zapisati binarno število 10000000 v

movwf stolb ;registrirajte stolb, da vključite 1. stolpec

Informacije z logičnimi ravnmi za vrstice vsakega stolpca so shranjene v 8 registrih za shranjevanje informacij, do katerih se dostopa preko. Naslov prvega registra se imenuje data1. Poleg začetnega zapisovanja registrov shet in stolb je treba v register FSR_prer zapisati naslov prvega registra za shranjevanje informacij (register je data1, vnos v FSR_prer se izvede enkrat, nato se prilagodi v obdelovalnik), šele po tem dovolite prekinitve prelivanja TMR0.

Preden omogočite prekinitve, je zaželeno počistiti registre za shranjevanje informacij, ta operacija se izvede z uporabo dodatnega registra tmp (kot števca) in posrednega naslavljanja, brisanje je enakovredno izklopu matrike.

V rutini za obdelavo prekinitev naložimo vsebino registra stolb v čip DD2 (ko prvič vnesete upravljalnik po omogočitvi prekinitev, register vsebuje številko 10000000, kot je navedeno zgoraj). Nalaganje se začne od nizkega bita stolb registra, ki se premakne v smeri od Q0 do Q7 (znotraj čipa DD2), ko se naloži, algoritem nalaganja je bil obravnavan zgoraj, tako da mislim, da ne bo težko razumeti kode . Nato naložimo vsebino registra INDF v DD2, to je eden od registrov za shranjevanje informacij, katerega naslov je v FSR (ko prvič vnesete upravljalnik po omogočitvi prekinitev, FSR vsebuje naslov prvega register za shranjevanje informacij, imenovan data1). Nalaganje se začne od visokega bita registra INDF. Po nalaganju obravnavanih 2 bajtov urimo izhod st_cp, s čimer se preneseni podatki prenesejo v izhodne linije mikrovezja DD2, DD3. Tako se ob prvem vhodu v upravljalnik preklopi prvi stolpec matrike, v katerem svetijo LED diode, na katerih anodah je visok logični nivo, v skladu z vsebino registra data1 (data1). prvi register za shranjevanje informacij).

Nato premaknemo stolb register v desno za en bit, da pripravimo drugi stolpec matrike za preklop ob naslednjem vstopu v obdelovalnik prekinitev. Zastavo C registra STATUS je treba počistiti pred premikom, saj do premika pride prek te zastavice in njeno stanje v času premika ni znano. Po premiku inkrementiramo register FSR in tako pripravimo naslednji shranjevalni register (za registrom data1) z logičnimi nivoji vrstic za drugi stolpec. Nato dekrementiramo shet register s pogojem, in če ta ni enak nič, ponastavimo prekinitveno zastavico preliva TMR0, zapišemo številko v časovnik in zapustimo upravljalnik prekinitev.

Ko naslednjič vnesete upravljalnik, bo omogočen drugi stolpec matrike in tako naprej. Ko se shet register ponastavi (po preklopu 8. stolpca), se vanj zapiše številka 8 za naslednji cikel preklapljanja stolpcev, poleg tega se popravi vrednost stolb registra, naslov prvega registra za shranjevanje informacij ( data1) se zapiše v register FSR.

Izračunajmo časovni zamik za časovnik TMR0, urna frekvenca je 4 MHz, strojni cikel je 1 µs. Da bi se izognili utripanju LED, vzemimo frekvenco osveževanja vsakega stolpca kot 100Hz (obdobje T=10ms), časovni zamik je 10/8 = 1,25ms. Razmerje preddelilnika TMR0 smo nastavili na 1:8, največja možna zakasnitev pa je 256x8 = 2048 µs. Za premor 1,25 ms mora časovnik šteti (256x1,25) / 2,048 = 156,25-krat, zaokrožimo navzgor in dobimo 156 štetij. V skladu s tem je treba v časovnik zapisati številko 256-156 = 100. Vendar to ni povsem pravilna vrednost, saj traja nekaj časa za izvedbo prekinitvene rutine, v tem primeru traja približno 190 µs, preračunano ob upoštevanju če upoštevamo koeficient preddelilnika, dobimo 190/8 = 23,75 ali 24 točk. Pravilna vrednost za zapis v TMR0 je: 100+24=124.

V glavni program zapišemo 8 registrov za shranjevanje informacij, v skladu s tem, kar želimo prikazati na matriki. Spodaj je diagram, ki pojasnjuje izpis informacij v matriko za zgornjo kodo.


Poleg registrov premikov obstajajo specializirani gonilniki za prikaz informacij na sedemsegmentnih indikatorjih in LED matricah, v tem primeru gonilnik sam izvaja dinamično indikacijo, ostane le, da mu pošlje podatke za prikaz. Enega od teh priljubljenih gonilnikov sem pregledal v članku o.

Pod povezavo lahko prenesete vdelano programsko opremo in izvorno kodo za mikrokrmilnik PIC16F628A z izvedbo dinamične indikacije na matriki 8x8 z uporabo dveh premičnih registrov 74HC595, povezovalni diagram je bil obravnavan zgoraj. Na matrici se izmenično prikazujejo črke R, L, številka 46, smešek in samo vzorec v obliki križa, ta animacija je prikazana v spodnjem videu.

z oznakami,. Preberi .

Zasloni LED z matriko 8x8 so na voljo v različnih velikostih in z njimi je zabavno delati. Veliki industrijski sklopi so veliki približno 60 x 60 mm. Če pa iščete veliko večje nize LED, jih je težko dobiti.

V tem projektu bomo izdelali resnično velik LED matrični LED zaslon, ki je sestavljen iz več velikih 8x8 LED modulov, ki so zaporedno povezani med seboj. Vsak od teh modulov je velik približno 144 x 144 mm.

Posebnost tega zaslona je, da lahko po potrebi pogledate ozadje za njim. To omogoča kreativno uporabo teh zaslonov, na primer njihovo postavitev pred steklene plošče, tako da lahko vidite, kaj se dogaja za zaslonom.

Za ta projekt bomo uporabili 10 mm. Uporabite lahko tudi druge velikosti. Običajno dostopne velikosti so 3 mm, 5 mm, 8 mm in 10 mm.

Čeprav zaslon ni zasnovan za delo z nobenim mikrokontrolerjem, bomo uporabili priljubljene plošče Arduino in ga povezali prek SPI z uporabo samo 3 signalnih žic.

Za izdelavo tega projekta je potrebno osnovno znanje o elektroniki in spajkanju komponent ter nekaj znanja o uporabi Arduina. Firmware .

Tukaj morate spajkati LED diode skupaj z uporabo dolgih nog LED. Uporabite lahko katero koli velikost in barvo LED, vendar mora biti dolžina noge (več kot 23 mm) dovolj dolga, da jih lahko upognete in spajkate skupaj. LED diode so razporejene v obliki matrike 8x8, kjer so katode spajkane skupaj za vrstice, anode pa za stolpce.

Gonilnik MAX7219 nadzoruje dinamično indikacijo matrike LED. Pri načrtovanju bo vsaka matrika LED 8x8 temeljila na vezju z uporabo naslednjih komponent:

  • 1 x MAX7219
  • 1 x 10uF 16V elektrolitski kondenzator
  • 1 x 0,1 UF keramični kondenzator
  • 1 x 12 kΩ upor (0,25 W)
  • 1 x 24-polna DIP IC vtičnica

Upoštevajte, da boste morda morali izbrati drugo vrednost upora za delo z LED, ki jo uporabljate. Ta upor omejuje največji tok na MAX7219, ki bo oddajal LED.

Ta videoposnetek jasno prikazuje, kako poteka namestitev matrike LED, elektronske nadzorne plošče in preprost preizkus za zagon s priljubljeno ploščo Arduino UNO / Nano.


Ena od pomembnih prednosti tega pretvornika je, da praktično ne potrebuje nastavitve, celotna nastavitev se zmanjša na izbiro kondenzatorja za nastavitev frekvence mikrovezja, ki so nastavljeni na želeno frekvenco, s povečanjem kapacitivnosti tega kondenzatorja se frekvenca zmanjša, s povečanjem pa se poveča.



Povezani članki: