Sisällysluettelo:
Video: MAX7219 -ohjattavan LED -matriisin 8x8 liittäminen ATtiny85 -mikrokontrolleriin: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
PASSIIVISEN BUZZERIN LIITTÄMINEN ARDUINOON: 4 vaihetta
PASSIIVISEN BUZZERIN LIITTÄMINEN ARDUINOON: Äänen tekeminen arduino -laitteella on mielenkiintoinen projekti, joka voidaan toteuttaa käyttämällä erilaisia moduuleja ja laitteita projektistasi ja valinnoistasi riippuen. Tässä projektissa tarkastelemme tapaa, jolla voit tehdä äänen summerilla. Summeri, jota käyttää ho
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