![Si të ndërlidhni një matricë LED të drejtuar MAX7219 8x8 me mikrokontrollues ATtiny85: 7 hapa Si të ndërlidhni një matricë LED të drejtuar MAX7219 8x8 me mikrokontrollues ATtiny85: 7 hapa](https://i.howwhatproduce.com/images/002/image-3944-19-j.webp)
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
![Si të ndërlidhni një matricë LED të drejtuar MAX7219 8x8 me mikrokontrollues ATtiny85 Si të ndërlidhni një matricë LED të drejtuar MAX7219 8x8 me mikrokontrollues ATtiny85](https://i.howwhatproduce.com/images/002/image-3944-20-j.webp)
Kontrolluesi MAX7219 është prodhuar nga Maxim Integrated është kompakt, hyrje/dalje serike drejtues i ekranit të katodës së zakonshme që mund të ndërlidhë mikrokontrolluesit me 64 LED individuale, ekrane LED me numra 7 segmentesh deri në 8 shifra, ekrane me shirita, etj. Të përfshira në -çipi është një dekoder kodik B-BCD, qark skanimi me shumë pleks, drejtues segmentesh dhe shifrash dhe një RAM statik 8 × 8 që ruan çdo shifër.
Modulet MAX7219 janë shumë të përshtatshëm për t'u përdorur me mikrokontrollues të tillë si ATtiny85, ose, në rastin tonë Bordi Tinusaur.
Hapi 1: Hardueri
![Hardueri Hardueri](https://i.howwhatproduce.com/images/002/image-3944-21-j.webp)
![Hardueri Hardueri](https://i.howwhatproduce.com/images/002/image-3944-22-j.webp)
Modulet MAX7219 zakonisht duken kështu. Ata kanë një autobus hyrës në njërën anë dhe autobus dalës në anën tjetër. Kjo ju lejon të lidhni zinxhir 2 ose më shumë module, domethënë njëri pas tjetrit, në mënyrë që të krijoni konfigurime më të komplikuara.
Modulet që ne po përdorim janë të aftë të lidhen në një zinxhir duke përdorur 5 kërcyes të vegjël. Shikoni foton më poshtë.
Hapi 2: Pinout dhe Sinjalet
Moduli MAX7219 ka 5 kunja:
- VCC - fuqia (+)
- GND-terren (-)
- DIN - Futja e të dhënave
- CS - Chip select
- CLK - Ora
Kjo do të thotë që ne kemi nevojë për 3 kunja në anën e mikrokontrolluesit ATtiny85 për të kontrolluar modulin. Ato do të jenë:
- PB0 - i lidhur me CLK
- PB1 - i lidhur me CS
- PB2 - i lidhur me DIN
Kjo është e mjaftueshme për t'u lidhur me modulin MAX7219 dhe për ta programuar atë.
Hapi 3: Protokolli
![Protokolli Protokolli](https://i.howwhatproduce.com/images/002/image-3944-23-j.webp)
Komunikimi me MAX7219 është relativisht i lehtë - ai përdor një protokoll sinkron që do të thotë se për çdo bit të dhënash që dërgojmë ka një cikël sahati që nënkupton praninë e atij biti të të dhënave.
Me fjalë të tjera, ne dërgojmë 2 sekuenca paralele në bit - një për orën dhe një tjetër për të dhënat. Kjo është ajo që bën softueri.
Hapi 4: Softueri
![Softueri Softueri](https://i.howwhatproduce.com/images/002/image-3944-24-j.webp)
Mënyra se si funksionon ky modul MAX7219 është kjo:
- Ne shkruajmë byte në regjistrin e tij të brendshëm.
- MAX7219 interpreton të dhënat.
- MAX7219 kontrollon LED -të në matricë.
Kjo gjithashtu do të thotë që ne nuk duhet të rrethohemi nëpër grupin e LED -ve gjatë gjithë kohës në mënyrë që t'i ndriçojmë ato - kontrolluesi MAX7219 kujdeset për këtë. Gjithashtu mund të menaxhojë intensitetin e LED -ve.
Pra, për të përdorur modulet MAX7219 në një mënyrë të përshtatshme, ne kemi nevojë për një bibliotekë të funksioneve për t'i shërbyer atij qëllimi.
Së pari, ne kemi nevojë për disa funksione themelore në mënyrë që të shkruajmë në regjistrat MAX7219.
- Shkrimi i një bajti në MAX7219.
- Shkrimi i një fjale (2 bajt) në MAX7219.
Funksioni që i shkruan një bajt kontrolluesit duket kështu:
pavlefshme max7219_bit (të dhëna uint8_t) {për (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK]; // Vendosni CLK në LOW nëse (të dhëna & 0x80) // Maskoni MSB -në e të dhënave PORTB | = (1 << MAX7219_DIN); // Vendosni DIN në HIGH else PORTB & = ~ (1 << MAX7219_DIN]; // Vendosni DIN në LOW PORTB | = (1 << MAX7219_CLK]; // Vendos CLK në të dhëna HIGH << = 1; // Kalo në të majtë}}
Tani që ne mund të dërgojmë byte në MAX7219 ne mund të fillojmë të dërgojmë komanda. Kjo bëhet duke dërguar 2 bye - e para për adresën e regjistrit të brendshëm dhe e dyta për të dhënat që duam të dërgojmë.
Ka më shumë se një duzinë regjistrash në kontrolluesin MAX7219.
Dërgimi i një komande, ose një fjale, është në thelb dërgimi i 2 bajtëve të njëpasnjëshëm. Funksioni që zbatohet është shumë i thjeshtë.
pavlefshme max7219_word (adresa uint8_t, të dhëna uint8_t) {PORTB & = ~ (1 << MAX7219_CS); // Vendosni CS në LOW max7219_byte (adresa); // Dërgimi i adresës max7219_byte (të dhëna); // Dërgimi i të dhënave PORTB | = (1 << MAX7219_CS); // Vendosni CS në HIGH PORTB & = ~ (1 << MAX7219_CLK]; // Vendos CLK në LOW}
Isshtë e rëndësishme të theksohet këtu rreshti ku e kthejmë sinjalin CS në HIGH - kjo shënon fundin e sekuencës - në këtë rast, fundin e komandës. Një teknikë e ngjashme përdoret kur kontrolloni më shumë se një matricë të lidhur në një zinxhir. Hapi tjetër, para se të fillojmë të ndezim dhe fikim LED -të, është të fillojmë kontrolluesin MAX7219. Kjo bëhet duke shkruar vlera të caktuara në regjistra të caktuar. Për lehtësi, gjatë kodimit të tij ne mund të vendosim sekuencën e fillimit në një grup.
uint8_t initseq = {0x09, 0x00, // Regjistro në modalitetin e deshifrimit, 00 = Pa dekodim 0x0a, 0x01, // Regjistri i intensitetit, 0x00.. 0x0f 0x0b, 0x07, // Regjistri i skanimit-limit, 0x07 për të treguar të gjitha rreshtat 0x0c, 0x01, // Regjistri i fikjes, 0x01 = Funksionimi Normal 0x0f, 0x00, // Regjistri i Test-Testit, 0x00 = Funksionimi Normal};
Ne vetëm duhet të dërgojmë 5 komandat e mësipërme në një sekuencë si çifte adresash/të dhënash. Hapi tjetër - ndriçimi i një rreshti LED.
Kjo është shumë e thjeshtë - ne thjesht shkruajmë një komandë ku bajti i parë është adresa (nga 0 në 7) dhe bajti i dytë është 8 bitët që përfaqësojnë 8 LED në rresht.
pavlefshme max7219_row (uint8_t adresa, uint8_t data) {if (adresa> = 1 && adresa <= 8) max7219_word (adresa, të dhënat); }
Shtë e rëndësishme të theksohet se kjo do të funksionojë vetëm për 1 matricë. Nëse lidhim më shumë matrica në një zinxhir, të gjitha do të tregojnë të njëjtat të dhëna. Arsyeja për këtë është se pas dërgimit të komandës ne e kthejmë sinjalin CS në HIGH i cili bën që të gjithë kontrolluesit MAX7219 në zinxhir të fiksohen dhe të tregojnë çfarëdo që ishte komanda e fundit.
Recommended:
Si të ndërtoni një matricë të madhe LED 8x8 (MAX7219 LED 10mm): 9 hapa (me fotografi)
![Si të ndërtoni një matricë të madhe LED 8x8 (MAX7219 LED 10mm): 9 hapa (me fotografi) Si të ndërtoni një matricë të madhe LED 8x8 (MAX7219 LED 10mm): 9 hapa (me fotografi)](https://i.howwhatproduce.com/images/011/image-30624-j.webp)
Si të ndërtoni një matricë të madhe LED 8x8 (MAX7219 LED 10mm): A keni punuar me një matricë LED të gatshme 8x8 si ekrane? Ato vijnë në madhësi të ndryshme dhe janë mjaft interesante për të punuar me to. Një madhësi e madhe e gatshme është rreth 60mm x 60mm. Sidoqoftë, nëse jeni duke kërkuar një matricë LED shumë më të madhe të gatshme,
Si të ndërlidhni xhojstikun e boshtit të dyfishtë me Arduino Uno: 5 hapa
![Si të ndërlidhni xhojstikun e boshtit të dyfishtë me Arduino Uno: 5 hapa Si të ndërlidhni xhojstikun e boshtit të dyfishtë me Arduino Uno: 5 hapa](https://i.howwhatproduce.com/images/011/image-30959-j.webp)
Si të ndërlidhni xhojstikun e boshtit të dyfishtë me Arduino Uno: Këtu do të ndërlidhim një levë të boshtit të duelit me arduino uno. Ky levë ka dy kunja analoge për boshtin x dhe y aks dhe një kunj dixhital për ndërprerës
Si të bëni një dron duke përdorur Arduino UNO - Bëni një kuadopter duke përdorur mikrokontrollues: 8 hapa (me fotografi)
![Si të bëni një dron duke përdorur Arduino UNO - Bëni një kuadopter duke përdorur mikrokontrollues: 8 hapa (me fotografi) Si të bëni një dron duke përdorur Arduino UNO - Bëni një kuadopter duke përdorur mikrokontrollues: 8 hapa (me fotografi)](https://i.howwhatproduce.com/images/001/image-210-31-j.webp)
Si të bëni një dron duke përdorur Arduino UNO | Bëni një Quadcopter Duke përdorur Mikrokontrolluesin: HyrjeVizitoni Kanalin Tim në YoutubeNjë drone është një vegël (produkt) shumë e shtrenjtë për të blerë. Në këtë postim do të diskutoj, si ta bëj me çmim të ulët ?? Dhe si mund ta bëni tuajin si ky me çmim të lirë … Epo në Indi të gjitha materialet (motorët, ESC -të
Vjedhës pengues 'Vetëm në shtëpi'/ Përdorni Attiny13 për të drejtuar një Steppermotor dhe një Servo: 5 Hapa
![Vjedhës pengues 'Vetëm në shtëpi'/ Përdorni Attiny13 për të drejtuar një Steppermotor dhe një Servo: 5 Hapa Vjedhës pengues 'Vetëm në shtëpi'/ Përdorni Attiny13 për të drejtuar një Steppermotor dhe një Servo: 5 Hapa](https://i.howwhatproduce.com/images/001/image-2400-12-j.webp)
"Vetëm në shtëpi" Vjedhës pengues/ Përdorni Attiny13 për të drejtuar një Steppermotor dhe një Servo: Ky mund të jetë një nga projektet e mia më të çuditshme akoma :-) Por edhe nëse nuk jeni të interesuar të mbani hajdutët larg, ky projekt mund të përdoret për çdo gjë ku ju nevojë për të drejtuar një motor steppermotor ose servo, apo edhe disa motorë DC me një Attiny13.Mo
Mendja kryesore me një matricë LED 8x8 RGB: 5 hapa (me fotografi)
![Mendja kryesore me një matricë LED 8x8 RGB: 5 hapa (me fotografi) Mendja kryesore me një matricë LED 8x8 RGB: 5 hapa (me fotografi)](https://i.howwhatproduce.com/images/001/image-142-99-j.webp)
Përgjegjës me një matricë LED 8x8 RGB: Pjesët e kërkuara: Basys3 FPGA 8x8 RGB LED Matrix nga GEEETECH9V bateri 2N3904 transistorë (x32) rezistencë 1K (x32) Rezistencë 100 Ohm (x1) Rezistencë 50 Ohm (x1) Matrica LED është një matricë anode e zakonshme me 32 kunja gjithsej. Anoda e zakonshme do të thotë që çdo rresht është