
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:42

MAX7219-ohjaimen on valmistanut Maxim Integrated on pienikokoinen sarjatulo/-lähtöinen yhteisen katodin näytönohjain, joka voi liittää mikro-ohjaimet 64 yksittäiseen LED-valoon, 7-segmenttiset numeeriset LED-näytöt, joissa on enintään 8 numeroa, pylväsdiagrammit jne. -piiri on BCD-koodi-B-dekooderi, multiplex-skannauspiiri, segmentti- ja numero-ohjaimet ja 8 × 8 staattinen RAM, joka tallentaa jokaisen numeron.
MAX7219 -moduuleja on erittäin kätevä käyttää mikro -ohjaimien, kuten ATtiny85, tai meidän tapauksessamme Tinusaur Boardin kanssa.
Vaihe 1: Laitteisto


MAX7219 -moduulit näyttävät yleensä tältä. Niillä on tuloväylä toisella puolella ja lähtöväylä toisella puolella. Tämän avulla voit ketjuttaa 2 tai useampia moduuleja, eli yksi toisensa jälkeen, monimutkaisempien asetusten luomiseksi.
Käyttämämme moduulit pystyvät kytkeytymään ketjuun käyttämällä 5 pientä hyppääjää. Katso alla oleva kuva.
Vaihe 2: Pinout ja signaalit
MAX7219 -moduulissa on 5 nastaa:
- VCC - teho (+)
- GND-maa (-)
- DIN - Tietojen syöttö
- CS - Sirun valinta
- CLK - Kello
Tämä tarkoittaa, että tarvitsemme 3 nastaa ATtiny85 -mikrokontrollerin puolella ohjaamaan moduulia. Niitä tulee olemaan:
- PB0 - kytketty CLK: hon
- PB1 - kytketty CS: ään
- PB2 - DIN -liitäntä
Tämä riittää muodostamaan yhteyden MAX7219 -moduuliin ja ohjelmoimaan sen.
Vaihe 3: Protokolla

Kommunikointi MAX7219: n kanssa on suhteellisen helppoa - se käyttää synkronista protokollaa, mikä tarkoittaa, että jokaiselle lähettämällemme databitille on kellosykli, joka merkitsee kyseisen tietobitin läsnäoloa.
Toisin sanoen lähetämme biteille kaksi rinnakkaista sekvenssiä - yksi kellolle ja toinen datalle. Ohjelmisto tekee tämän.
Vaihe 4: Ohjelmisto

Tämä MAX7219 -moduuli toimii seuraavasti:
- Kirjoitamme tavuja sen sisäiseen rekisteriin.
- MAX7219 tulkitsee tiedot.
- MAX7219 ohjaa matriisin LED -valoja.
Tämä tarkoittaa myös sitä, että meidän ei tarvitse kiertää koko ajan LED -valoja niiden sytyttämiseksi - MAX7219 -ohjain huolehtii siitä. Se voisi myös hallita LEDien voimakkuutta.
Joten voidaksemme käyttää MAX7219 -moduuleja kätevällä tavalla, tarvitsemme funktiokirjaston tätä tarkoitusta varten.
Ensinnäkin tarvitsemme joitain perustoimintoja kirjoittaaksemme MAX7219 -rekistereihin.
- Tavun kirjoittaminen MAX7219: ään.
- Sanan kirjoittaminen (2 tavua) MAX7219: lle.
Toiminto, joka kirjoittaa yhden tavun ohjaimeen, näyttää tältä:
void max7219_byte (uint8_t data) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Aseta CLK arvoksi LOW jos (data & 0x80) // Peitä datan MSB PORTB | = (1 << MAX7219_DIN); // Aseta DIN -arvoksi HIGH else PORTB & = ~ (1 << MAX7219_DIN); // Aseta DIN -asetukseksi LOW PORTB | = (1 << MAX7219_CLK); // Aseta CLK arvoksi HIGH data << = 1; // Vaihto vasemmalle}}
Nyt kun voimme lähettää tavuja MAX7219 -laitteeseen, voimme aloittaa komentojen lähettämisen. Tämä tehdään lähettämällä 2 tavua - ensimmäinen sisäisen rekisterin osoitteelle ja toinen tiedoille, jotka haluamme lähettää.
MAX7219 -ohjaimessa on yli tusina rekisteriä.
Komennon tai sanan lähettäminen on pohjimmiltaan kahden peräkkäisen tavun lähettäminen. Toiminnon toteuttaminen on hyvin yksinkertaista.
void max7219_word (uint8_t -osoite, uint8_t -tiedot) {PORTB & = ~ (1 << MAX7219_CS); // Aseta CS arvoksi LOW max7219_byte (osoite); // Osoitteen lähettäminen max7219_byte (data); // Tietojen lähettäminen PORTB | = (1 << MAX7219_CS); // Aseta CS asetukseksi HIGH PORTB & = ~ (1 << MAX7219_CLK); // Aseta CLK -arvoksi LOW}
On tärkeää huomata tässä rivi, jossa tuomme CS -signaalin takaisin HIGH - tämä merkitsee jakson loppua - tässä tapauksessa komennon loppua. Samanlaista tekniikkaa käytetään, kun ohjataan useampaa kuin yhtä ketjuun kytkettyä matriisia. Seuraava vaihe, ennen kuin aloitamme LED -valojen sytyttämisen ja sammuttamisen, on MAX7219 -ohjaimen alustaminen. Tämä tehdään kirjoittamalla tietyt arvot tiettyihin rekistereihin. Kätevyyden vuoksi koodatessamme voisimme laittaa alustusjärjestyksen matriisiin.
uint8_t initseq = {0x09, 0x00, // Dekooditilarekisteri, 00 = Ei dekoodausta 0x0a, 0x01, // Intensiteettirekisteri, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07 näyttää kaikki rivit 0x0c, 0x01, // Sammutusrekisteri, 0x01 = Normaalikäyttö 0x0f, 0x00, // Näytön testirekisteri, 0x00 = Normaali toiminta};
Meidän on vain lähetettävä yllä olevat 5 komentoa järjestyksessä osoite/datapareina. Seuraava vaihe - LED -valojen sytyttäminen.
Tämä on hyvin yksinkertaista - kirjoitamme vain yhden komennon, jossa ensimmäinen tavu on osoite (0-7) ja toinen tavu on 8 bittiä, jotka edustavat rivin 8 LEDiä.
void max7219_row (uint8_t -osoite, uint8_t -tiedot) {if (address> = 1 && address <= 8) max7219_word (osoite, data); }
On tärkeää huomata, että tämä toimii vain yhdellä matriisilla. Jos yhdistämme ketjuun enemmän matriiseja, ne kaikki näyttävät samat tiedot. Syynä tähän on se, että komennon lähettämisen jälkeen tuomme CS -signaalin takaisin HIGH: iin, mikä saa kaikki ketjun MAX7219 -ohjaimet lukkiutumaan ja näyttämään mitä tahansa viimeistä komentoa.
Suositeltava:
Ohjaimen asentaminen, suorittaminen ja liittäminen emulaattoriin: 7 vaihetta

Ohjaimen asentaminen, suorittaminen ja liittäminen emulaattoriin: Oletko koskaan istunut ja muistanut lapsuutesi nuorena pelaajana ja toivoisi joskus, että voisit palata menneisyyden vanhoihin helmiin? No, siihen on sovellus … tarkemmin sanottuna on pelaajien yhteisö, joka tekee ohjelmaa
Magicbitin liittäminen Thingsboardiin: 3 vaihetta

Magicbitin liittäminen Thingsboardiin: Tässä projektissa lähetämme tietoja magicbitiin kytketyistä antureista, jotka voimme näyttää visuaalisesti asiattaululla
Google -kalenterien liittäminen Google -sivustoihin: 5 vaihetta

Google -kalenterien liittäminen Google -sivustoihin: Tämä on opetusohjelma, joka opettaa sinulle, miten voit luoda, käyttää ja muokata Google -kalentereita ja liittää ne sitten Google -sivustoon jakamisominaisuuksien avulla. Tästä voi olla hyötyä monille ihmisille, koska Google -sivustoilla voidaan koordinoida ja jakaa
Kuinka käyttää Max7219 8x8 pistematriisia "skiiiD": llä: 9 vaihetta

Kuinka käyttää Max7219 8x8 -pistematriisia "skiiiD": n kanssa: Tämä on video -ohje Max7219 8x8 -pistematriisista "skiiiD": n kautta Ennen kuin aloitat, alla on perusopas skiiiDD: n käyttöön .https: //www.instructables.com/id /Aloittaminen-W
Kuinka rakentaa 8x8 BIG LED -matriisi (MAX7219 LED 10mm): 9 vaihetta (kuvilla)

Kuinka rakentaa 8x8 BIG LED -matriisi (MAX7219 LED 10mm): Oletko työskennellyt valmiiden 8x8 LED-matriisinä näytöinä? Niitä on erikokoisia ja niiden kanssa on varsin mielenkiintoista työskennellä. Suuri helposti saatavilla oleva koko on noin 60 mm x 60 mm. Jos kuitenkin etsit paljon suurempaa valmiita LED-matriisia