
INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53

Die MAX7219-kontroleerder word vervaardig deur Maxim Integrated, 'n kompakte, seriële invoer/uitset gemeenskaplike katode-skermbestuurder wat mikrobeheerders tot 64 individuele LED's kan koppel, 7-segment numeriese LED-skerms van tot 8 syfers, staafgrafieke, ens. -skyfie is 'n BCD-kode-B-dekodeerder, multiplex-skanderingskringe, segment- en syferbestuurders en 'n 8 × 8 statiese RAM wat elke syfer stoor.
Die MAX7219 -modules is baie handig om te gebruik met mikrobeheerders soos ATtiny85, of in ons geval die Tinusaur Board.
Stap 1: Die hardeware


Die MAX7219 -modules lyk gewoonlik so. Hulle het 'n invoerbus aan die een kant en 'n uitsetbus aan die ander kant. Hiermee kan u 2 of meer modules, d.w.s. die een na die ander, koppel om meer ingewikkelde opstellings te skep.
Die modules wat ons gebruik, kan met 5 klein springers in 'n ketting verbind word. Sien die prentjie hieronder.
Stap 2: Pinout en seine
Die MAX7219 -module het 5 penne:
- VCC - krag (+)
- GND-gemaal (-)
- DIN - Data -invoer
- CS - Chip select
- CLK - Klok
Dit beteken dat ons 3 penne aan die ATtiny85 -mikrokontroller se kant nodig het om die module te beheer. Dit sal wees:
- PB0 - gekoppel aan die CLK
- PB1 - gekoppel aan die CS
- PB2 - gekoppel aan die DIN
Dit is voldoende om aan te sluit op die MAX7219 -module en dit te programmeer.
Stap 3: Die protokol

Dit is relatief maklik om met die MAX7219 te kommunikeer - dit gebruik 'n sinchrone protokol wat beteken dat daar vir elke databit wat ons stuur 'n kloksiklus is wat die teenwoordigheid van die databit aandui.
Met ander woorde, ons stuur 2 parallelle rye na stukkies - een vir die klok en 'n ander vir die data. Dit is wat die sagteware doen.
Stap 4: Die sagteware

Die manier waarop hierdie MAX7219 -module werk, is soos volg:
- Ons skryf grepe na sy interne register.
- MAX7219 interpreteer die data.
- MAX7219 beheer die LED's in die matriks.
Dit beteken ook dat ons nie die hele tyd deur die verskeidenheid LED's hoef te draai om dit te verlig nie - die MAX7219 -beheerder sorg daarvoor. Dit kan ook die intensiteit van die LED's beheer.
Om die MAX7219 -modules op 'n gerieflike manier te gebruik, benodig ons 'n biblioteek met funksies om hierdie doel te bereik.
Eerstens benodig ons 'n paar basiese funksies om na die MAX7219 -registers te skryf.
- Skryf 'n greep na die MAX7219.
- Skryf 'n woord (2 grepe) na die MAX7219.
Die funksie wat een byte aan die beheerder skryf, lyk soos volg:
leegte max7219_byte (uint8_t data) {vir (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Stel CLK op LAAG as (data & 0x80) // Masker die MSB van die data PORTB | = (1 << MAX7219_DIN); // Stel DIN op HIGH else PORTB & = ~ (1 << MAX7219_DIN); // Stel DIN op LAAG PORTB | = (1 << MAX7219_CLK); // Stel CLK in op HOOG data << = 1; // Skuif na links}}
Noudat ons grepe na die MAX7219 kan stuur, kan ons begin om opdragte te stuur. Dit word gedoen deur 2 byes te stuur - 1ste vir die adres van die interne register en die 2de vir die data wat ons wil stuur.
Daar is meer as 'n dosyn register in die MAX7219 -beheerder.
Die stuur van 'n opdrag, of 'n woord, stuur basies 2 opeenvolgende grepe. Die implementering van die funksie is baie eenvoudig.
void max7219_word (uint8_t address, uint8_t data) {PORTB & = ~ (1 << MAX7219_CS); // Stel CS op LOW max7219_byte (adres); // Stuur die adres max7219_byte (data); // Stuur die data PORTB | = (1 << MAX7219_CS); // Stel CS op HOOG PORTB & = ~ (1 << MAX7219_CLK); // Stel CLK op LAAG}
Dit is belangrik om hier te let op die lyn waar ons die CS -sein na HOOG terugbring - dit is die einde van die ry - in hierdie geval die einde van die opdrag. 'N Soortgelyke tegniek word gebruik om meer as een matriks wat in 'n ketting gekoppel is, te beheer. Volgende stap, voordat ons die LED's aan- en uitskakel, is om die MAX7219 -beheerder te initialiseer. Dit word gedoen deur sekere waardes na sekere registers te skryf. Vir die gemak kon ons die initialiseringsvolgorde in 'n skikking plaas tydens die kodering daarvan.
uint8_t initseq = {0x09, 0x00, // Decode-Mode Register, 00 = Geen dekodeer 0x0a, 0x01, // Intensiteitsregister, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07 om alle lyne te wys 0x0c, 0x01, // Sluitregister, 0x01 = normale werking 0x0f, 0x00, // vertoon-toetsregister, 0x00 = normale werking};
Ons hoef net die 5 opdragte hierbo in 'n volgorde as adres-/datapare te stuur. Volgende stap - 'n ry LED's aansteek.
Dit is baie eenvoudig - ons skryf net een opdrag waar 1ste byte die adres is (van 0 tot 7) en die 2de byte is die 8 bisse wat die 8 LED's in die ry verteenwoordig.
ongeldig max7219_row (uint8_t adres, uint8_t data) {if (adres> = 1 && adres <= 8) max7219_word (adres, data); }
Dit is belangrik om daarop te let dat dit slegs vir 1 matriks werk. As ons meer matrikse in 'n ketting verbind, sal hulle almal dieselfde data toon. Die rede hiervoor is dat ons na die stuur van die opdrag die CS -sein na HIGH terugbring, wat veroorsaak dat al die MAX7219 -beheerders in die ketting vashou en wys wat die laaste opdrag ook al was.
Aanbeveel:
Koppel en koppel u gekoppelde oplossings aan met Hologram Nova en Ubidots: 9 stappe

Koppel en koppel u gekoppelde oplossings aan met Hologram Nova en Ubidots: Gebruik u Hologram Nova om infrastruktuur op te stel. Stel die Hologram Nova op met 'n Raspberry Pi om (temperatuur) data na Ubidots te stuur. In die volgende gids sal Ubidots demonstreer hoe u 'n Hologram Nova met 'n Raspberry Pi kan opstel en 'n
Hoe om Max7219 8x8 Dot Matrix te gebruik met "skiiiD": 9 stappe

Hoe om Max7219 8x8 Dot Matrix te gebruik met "skiiiD": Dit is 'n video -instruksie van Max7219 8x8 Dot Matrix via "skiiiD" Voor aanvang, hieronder is 'n basiese handleiding vir die gebruik van skiiiDhttps: //www.instructables.com/id /Aan die gang-W
Hoe om 8x8 BIG LED Matrix (MAX7219 LED 10mm) te bou: 9 stappe (met foto's)

Hoe om 'n 8x8 GROOT LED-matriks te bou (MAX7219 LED 10mm): het u gewerk met 'n gereedgemaakte 8x8 LED-matriks as skerms? Hulle kom in verskillende groottes en is baie interessant om mee te werk. 'N Groot beskikbare grootte is ongeveer 60 mm x 60 mm. As u egter op soek is na 'n veel groter klaargemaakte LED-matriks
Hoe om 'n GPS-module (NEO-6m) met Arduino te koppel: 7 stappe (met foto's)

Hoe om 'n GPS-module (NEO-6m) met Arduino te koppel: In hierdie projek het ek getoon hoe u 'n GPS-module met Arduino UNO kan koppel. Die gegewens vir lengte- en breedtegraad word op die LCD vertoon en die ligging kan op die app gesien word.Lys van materiaal Arduino Uno == > $ 8 Ublox NEO-6m GPS-module == > $ 15 16x
Tutoriaal Hoe om 'n 4-syfer-skerm te koppel met Arduino UNO: 6 stappe (met foto's)

Tutoriaal Hoe om 'n vier-syfer-skerminterface met Arduino UNO te gebruik: hierdie tutoriaal gaan u 'n paar basiese beginsels leer oor die gebruik van vier-syfer-skerm met Arduino UNO