Obsah:
Video: Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Ovládač MAX7219 vyrába spoločnosť Maxim Integrated je kompaktný ovládač sériového vstupu/výstupu so spoločnou katódou, ktorý môže prepojiť mikrokontroléry so 64 jednotlivými diódami LED, 7-segmentovými numerickými diódami LED s až 8 číslicami, stĺpcovými grafmi atď. -čip sú BCD kód-B dekodér, multiplexné skenovacie obvody, segmentové a číselné ovládače a 8 × 8 statická RAM, ktorá ukladá každú číslicu.
Moduly MAX7219 sa veľmi pohodlne používajú s mikrokontrolérmi, ako je ATtiny85, alebo v našom prípade s doskou Tinusaur.
Krok 1: Hardvér
Moduly MAX7219 zvyčajne vyzerajú takto. Na jednej strane majú vstupnú zbernicu a na druhej výstupnú zbernicu. To vám umožní prepojiť 2 alebo viac modulov, t.j. jeden po druhom, za účelom vytvorenia komplikovanejších nastavení.
Moduly, ktoré používame, sa dajú reťazovo prepojiť pomocou 5 malých prepojok. Pozrite sa na obrázok nižšie.
Krok 2: Pinout a signály
Modul MAX7219 má 5 pinov:
- VCC - výkon (+)
- GND-zem (-)
- DIN - Zadávanie údajov
- CS - Vyberte čip
- CLK - Hodiny
To znamená, že na ovládanie modulu potrebujeme 3 piny na strane mikrokontroléra ATtiny85. To budú:
- PB0 - pripojený k CLK
- PB1 - pripojený k CS
- PB2 - pripojený k DIN
To stačí na pripojenie k modulu MAX7219 a jeho naprogramovanie.
Krok 3: Protokol
Komunikácia s MAX7219 je relatívne jednoduchá - používa synchrónny protokol, čo znamená, že pre každý odoslaný dátový bit existuje hodinový cyklus, ktorý znamená prítomnosť tohto dátového bitu.
Inými slovami, posielame 2 paralelné sekvencie na bity - jednu pre hodiny a druhú pre dáta. Na to slúži softvér.
Krok 4: Softvér
Tento modul MAX7219 funguje takto:
- Bajty zapisujeme do jeho vnútorného registra.
- MAX7219 interpretuje údaje.
- MAX7219 ovláda LED diódy v matici.
To tiež znamená, že nemusíme stále krúžiť v rade LED diód, aby sme ich rozsvietili - o to sa stará ovládač MAX7219. Mohlo by to tiež zvládnuť intenzitu LED diód.
Aby sme mohli moduly MAX7219 pohodlne používať, potrebujeme na to účel knižnicu funkcií.
Najprv potrebujeme niekoľko základných funkcií, aby sme mohli zapisovať do registrov MAX7219.
- Zápis bajtu do MAX7219.
- Zapísanie slova (2 bajty) do MAX7219.
Funkcia, ktorá zapíše jeden bajt do radiča, vyzerá takto:
neplatné max7219_byte (uint8_t údaje) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Nastavte CLK na LOW, ak (data & 0x80) // Maskujte MSB dát PORTB | = (1 << MAX7219_DIN); // Nastavte DIN na HIGH else PORTB & = ~ (1 << MAX7219_DIN); // Nastaviť DIN na NÍZKY PORTB | = (1 << MAX7219_CLK); // Nastaviť CLK na VYSOKÉ údaje << = 1; // Posun doľava}}
Teraz, keď môžeme odoslať bajty na MAX7219, môžeme začať odosielať príkazy. To sa vykoná odoslaním 2 bajtov - prvého pre adresu interného registra a druhého pre údaje, ktoré by sme chceli odoslať.
V ovládači MAX7219 je viac ako tucet registrov.
Odoslanie príkazu alebo slova v zásade znamená odoslanie 2 po sebe nasledujúcich bajtov. Implementácia tejto funkcie je veľmi jednoduchá.
neplatné max7219_word (adresa uint8_t, údaje uint8_t) {PORTB & = ~ (1 << MAX7219_CS); // Nastav CS na LOW max7219_byte (adresa); // odosielanie adresy max7219_byte (data); // Odosielanie údajov PORTB | = (1 << MAX7219_CS); // Nastaviť CS na VYSOKÝ PORTB & = ~ (1 << MAX7219_CLK); // Nastaviť CLK na NÍZKU}
Tu je dôležité poznamenať riadok, v ktorom privádzame signál CS späť na HIGH - to znamená koniec sekvencie - v tomto prípade koniec príkazu. Podobná technika sa používa pri riadení viac ako jednej matice zapojenej v reťazci. Ďalším krokom, než začneme zapínať a vypínať diódy LED, je inicializácia ovládača MAX7219. To sa robí zapísaním určitých hodnôt do určitých registrov. Pre zjednodušenie by sme pri jeho kódovaní mohli dať inicializačnú sekvenciu do poľa.
uint8_t initseq = {0x09, 0x00, // Register v režime dekódovania, 00 = bez dekódovania 0x0a, 0x01, // register intenzity, 0x00.. 0x0f 0x0b, 0x07, // limit skenovania registra, 0x07 na zobrazenie všetkých riadkov 0x0c, 0x01, // Register vypnutia, 0x01 = normálna prevádzka 0x0f, 0x00, // register testovania displeja, 0x00 = normálna prevádzka};
Potrebujeme poslať vyššie uvedených 5 príkazov v poradí ako páry adresa/údaj. Ďalší krok - rozsvietenie radu diód LED.
Je to veľmi jednoduché - napíšeme jeden príkaz, kde 1. bajt je adresa (od 0 do 7) a 2. bajt je 8 bitov predstavujúcich 8 diód LED v riadku.
neplatné max7219_row (adresa uint8_t, údaje uint8_t) {if (adresa> = 1 && adresa <= 8) max7219_word (adresa, údaje); }
Je dôležité si uvedomiť, že to bude fungovať iba pre 1 maticu. Ak spojíme viac matíc v reťazci, všetky budú zobrazovať rovnaké údaje. Dôvodom je to, že po odoslaní príkazu vrátime signál CS späť na HIGH, čo spôsobí zablokovanie všetkých radičov MAX7219 v reťazci a zobrazenie akéhokoľvek posledného príkazu.
Odporúča:
Ako používať bodovú maticu Max7219 8x8 s „skiiiD“: 9 krokov
Ako používať bodovú maticu Max7219 8x8 s „skiiiD“: Toto je video inštrukcia k bodovej matici Max7219 8x8 pomocou „skiiiD“Pred spustením je nižšie uvedený základný návod na používanie skiiiDhttps: //www.instructables.com/id /Začíname-W
Ako vytvoriť 8x8 VEĽKÚ LED maticu (MAX7219 LED 10 mm): 9 krokov (s obrázkami)
Ako zostaviť 8x8 VEĽKÚ LED maticu (MAX7219 LED 10 mm): Pracovali ste s hotovou maticou 8x8 LED ako displejmi? Prichádzajú v rôznych veľkostiach a je celkom zaujímavé s nimi pracovať. Veľký ľahko dostupný rozmer je približne 60 mm x 60 mm. Ak však hľadáte oveľa väčšiu hotovú maticu LED,
Ako prepojiť dvojosový joystick s Arduino Uno: 5 krokov
Ako prepojiť dvojosový joystick s Arduino Uno: Tu prepojíme jeden joystick duelovej osi s arduino uno. Tento joystick má dva analógové kolíky pre os x a os y a jeden digitálny kolík pre prepínač
Ako prepojiť modul GPS (NEO-6m) s Arduino: 7 krokov (s obrázkami)
Ako prepojiť modul GPS (NEO-6m) s Arduino: V tomto projekte som ukázal, ako prepojiť modul GPS s Arduino UNO. Údaje o zemepisnej dĺžke a šírke sa zobrazujú na LCD displeji a polohu je možné zobraziť v aplikácii. Zoznam materiálu Arduino Uno == > 8 dolárov GPS modul Ublox NEO-6m == > 15 dolárov 16x
Ako prepojiť displej 16x4 s Arduino: 6 krokov
Ako prepojiť displej 16x4 s Arduino: Úvod Nedávno som dostal niekoľko bezplatných vzoriek LCD od svojich priateľov na FocusLCDs.com. Jeden z nich je LCD monitor s rozmermi 16 x 4; P/N: C164AXBSYLY6WT. Namiesto HD44780 bežne používaného v štítoch LCD používa radič ST7066U (pozri technický list tu). Ja niesom