Sadržaj:
Video: Kako spojiti LED matricu 8x8 sa MAX7219 pogonom sa mikrokontrolerom ATtiny85: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Kontroler MAX7219 proizvodi Maxim Integrated, kompaktan je serijski ulazno/izlazni upravljački program za prikaz sa zajedničkom katodom koji može povezati mikrokontrolere sa 64 pojedinačne LED diode, 7-segmentne numeričke LED ekrane do 8 znamenki, ekrane sa stupčastim grafikonom itd. Uključeno na -čip su BCD kod-B dekoder, kola za multipleksno skeniranje, upravljački programi za segmente i znamenke te 8 × 8 statička RAM memorija koja pohranjuje svaku znamenku.
Moduli MAX7219 vrlo su prikladni za upotrebu s mikrokontrolerima kao što je ATtiny85 ili, u našem slučaju Tinusaur ploča.
Korak 1: Hardver
Moduli MAX7219 obično izgledaju ovako. Na jednoj strani imaju ulaznu magistralu, a na drugoj izlaznu magistralu. Ovo vam omogućuje da povežete 2 ili više modula, tj. Jedan za drugim, kako biste stvorili složenije postavke.
Moduli koje koristimo mogu se povezati u lanac pomoću 5 malih kratkospojnika. Pogledajte sliku ispod.
Korak 2: Pinout i signali
Modul MAX7219 ima 5 pinova:
- VCC - snaga (+)
- GND-uzemljenje (-)
- DIN - Unos podataka
- CS - Odabir čipa
- CLK - Sat
To znači da su nam potrebna 3 pina na strani mikrokontrolera ATtiny85 za upravljanje modulom. To će biti:
- PB0 - spojen na CLK
- PB1 - spojen na CS
- PB2 - spojen na DIN
Ovo je dovoljno za povezivanje s modulom MAX7219 i njegovo programiranje.
Korak 3: Protokol
Komunikacija s MAX7219 je relativno laka - koristi sinkroni protokol što znači da za svaki podatkovni bit koji šaljemo postoji ciklus takta koji označava prisutnost tog bita podataka.
Drugim riječima, šaljemo 2 paralelne sekvence u bitove - jednu za sat, a drugu za podatke. Ovo softver radi.
Korak 4: Softver
Način rada ovog MAX7219 modula je sljedeći:
- Bajte upisujemo u njegov interni registar.
- MAX7219 tumači podatke.
- MAX7219 kontrolira LED diode u matrici.
To također znači da ne moramo stalno kružiti kroz niz LED dioda da bismo ih upalili - za to se brine MAX7219 kontroler. Također bi mogao upravljati intenzitetom LED dioda.
Dakle, za korištenje MAX7219 modula na prikladan način potrebna nam je biblioteka funkcija koja služi u tu svrhu.
Prvo, potrebne su nam neke osnovne funkcije za pisanje u MAX7219 registre.
- Zapisivanje bajta u MAX7219.
- Zapisivanje riječi (2 bajta) na MAX7219.
Funkcija koja zapisuje jedan bajt u kontroler izgleda ovako:
void max7219_byte (uint8_t podaci) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Postavimo CLK na LOW ako (podaci & 0x80) // Maskiramo MSB podataka PORTB | = (1 << MAX7219_DIN); // Postavite DIN na HIGH else PORTB & = ~ (1 << MAX7219_DIN); // Postavite DIN na LOW PORTB | = (1 << MAX7219_CLK); // Postavimo CLK na HIGH data << = 1; // Pomicanje ulijevo}}
Sada kada možemo poslati bajtove na MAX7219 možemo početi slati naredbe. To se postiže slanjem 2 bajva - prvi za adresu internog registra i drugi za podatke koje želimo poslati.
U kontroleru MAX7219 postoji više desetaka registriranih.
Slanje naredbe ili riječi u osnovi je slanje 2 uzastopna bajta. Implementacija funkcije je vrlo jednostavna.
void max7219_word (uint8_t adresa, uint8_t podaci) {PORTB & = ~ (1 << MAX7219_CS); // Postavite CS na LOW max7219_byte (adresa); // Slanje adrese max7219_byte (data); // Slanje podataka PORTB | = (1 << MAX7219_CS); // Postavite CS na HIGH PORTB & = ~ (1 << MAX7219_CLK); // Postavite CLK na LOW}
Ovdje je važno napomenuti red u kojem CS signal vraćamo na HIGH - to označava kraj sekvence - u ovom slučaju kraj naredbe. Slična tehnika koristi se pri kontroliranju više od jedne matrice povezane u lanac. Sljedeći korak, prije nego što počnemo uključivati i isključivati LED diode, je inicijalizacija kontrolera MAX7219. To se postiže upisivanjem određenih vrijednosti u određene registre. Radi praktičnosti, prilikom kodiranja mogli smo inicijalizacijski niz staviti u niz.
uint8_t initseq = {0x09, 0x00, // Registar načina dekodiranja, 00 = Bez dekodiranja 0x0a, 0x01, // Registar intenziteta, 0x00.. 0x0f 0x0b, 0x07, // Registar ograničenja skeniranja, 0x07 za prikaz svih linija 0x0c, 0x01, // Registar isključivanja, 0x01 = Normalni rad 0x0f, 0x00, // Registar za testiranje prikaza, 0x00 = Normalni rad};
Samo trebamo poslati 5 gore navedenih naredbi u nizu kao parove adresa/podaci. Sljedeći korak - osvjetljavanje niza LED dioda.
Ovo je vrlo jednostavno - samo pišemo jednu naredbu gdje je prvi bajt adresa (od 0 do 7), a drugi bajt 8 bitova koji predstavljaju 8 LED dioda u redu.
void max7219_row (uint8_t adresa, uint8_t podaci) {if (adresa> = 1 && adresa <= 8) max7219_word (adresa, podaci); }
Važno je napomenuti da će ovo raditi samo za 1 matricu. Ako povežemo više matrica u lanac, sve će prikazati iste podatke. Razlog za to je što nakon slanja naredbe vraćamo CS signal na HIGH što uzrokuje da se svi kontroleri MAX7219 u lancu zaključaju i pokažu što god bila zadnja naredba.
Preporučuje se:
Tekst u govor Kliknite na UMhip sa ARMbasic pogonom i ostale SBC sa pogonom na ARMbasic: 3 koraka
Tekst u govor Kliknite na UChip sa ARMbasic pogonom i druge SBC -ove sa ARMbasic pogonom: Uvod: Dobar dan. Moje ime je Tod. Ja sam svemirski i odbrambeni profesionalac koji je takođe pomalo štreber u srcu. Inspiracija: Potiče iz ere dial-up BBS-a, 8-bitnih mikrokontrolera, ličnih računara Kaypro/Commodore/Tandy/TI-994A, kada R
Dvocifreni ekran koji koristi jednu 8x8 LED matricu: 3 koraka
Dvocifreni ekran koji koristi jednu 8x8 LED matricu: Ovdje bih želio napraviti indikator temperature i vlažnosti za svoju sobu. Koristio sam jednu LED matricu 8x8 za prikaz dvoznamenkastih brojeva i mislim da je taj dio projekta postao korisniji. Boksao sam finale napravljeno od kartonske kutije, bol
Arduino: Potencio indikator koristi LED matricu MAX7219: 4 koraka
Arduino: Potencio indikator koristi LED matricu MAX7219: U prethodnom vodiču napravio sam indikaciju potenciometra koristeći RGB prsten neo piksela. možete ga vidjeti u ovom članku "Potencio indikator koristi RGB neopiksel" A danas ću pokazati indikator potencijatora pomoću LED -a MAX7219 led met
Kako koristiti Max7219 Matricu matrice 8x8 sa "skiiiD": 9 koraka
Kako koristiti Max7219 8x8 Dot Matrix sa "skiiiD": Ovo je video uputstvo Max7219 8x8 Dot Matrix putem "skiiiD" Prije početka, ispod je osnovno uputstvo za korištenje skiiiDhttps: //www.instructables.com/id /Početak rada-W
Kako izgraditi 8x8 VELIKU LED matricu (MAX7219 LED 10 mm): 9 koraka (sa slikama)
Kako izgraditi 8x8 VELIKU LED matricu (MAX7219 LED 10 mm): Jeste li radili sa gotovom LED matricom 8x8 kao ekranima? Dolaze u različitim veličinama i s njima je vrlo zanimljivo raditi. Velika dostupna veličina je oko 60 mm x 60 mm. Međutim, ako tražite mnogo veću gotovu LED matricu