Obsah:

Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85: 7 krokov
Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85: 7 krokov

Video: Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85: 7 krokov

Video: Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85: 7 krokov
Video: Ako vymeniť LCD LED Displej na notebooku,screen replacment. LCD Display.www.klavesnica.sk 2024, December
Anonim
Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85
Ako prepojiť maticu LED poháňanú MAX7219 8x8 s mikrokontrolérom ATtiny85

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

Hardvér
Hardvér
Hardvér
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

Protokol
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

Softvér
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: