Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
MAX7219 je integrovaný obvod, ktorý sa používa na pohon 7-segmentových diód LED (až 8 číslic), blokových displejov (stĺpcové displeje) a 64 samostatných diód LED, ktoré sú bežnými katódami. Na komunikáciu s mikrokontrolérom používa MAX7219 komunikačný systém SPI. Na pohon 64 LED diód teda stačia 3 porty mikrokontroléra.
V tomto článku vám ukážem, ako používať modul 7-Segement, ktorý používa ako ovládač IC MAX7219.
Požadované komponenty:
- 7-segmentový modul MAX7219
- Arduino Nano
- drôtený prepojka
- USB mini
Požadovaná knižnica:
LedControl
V tomto návode používam dosku Arduino Nano. Ak ste ho nikdy nepoužili. Odporúčame prečítať si môj predchádzajúci článok o „Ako používať Arduino Nano“.
Krok 1: Zostavte všetky súčasti
Pripojte dosku Arduino k 7-segmentovému modulu. Pozrite sa na obrázok alebo návod, ktorý som napísal nižšie:
Arduino na 7-segmentový
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/ZAŤAŽENIE
Krok 2: Pridajte knižnicu
Po dokončení obvodu. Pridajte knižnicu „LedControl“do Arduino IDE.
Ak chcete do Arduina pridať knižnicu, môžete si to prečítať v článku „Ako pridať externú knižnicu do Arduina“, ktorý som vytvoril predtým „.
Krok 3: Ďalšie funkcie
Po pridaní knižnice LedControl. Na ovládanie 7-segmentového modulu môžete použiť ďalšie funkcie.
Hádka
addr - adresa displeja
číslica - pozícia číslice na displeji (0..7) hodnota - hodnota, ktorá sa má zobraziť. (0x00..0x0F)
dp nastavuje desatinnú čiarku.
Funkcia
setChar (addr, číslica, hodnota.dp); // pre zobrazenie hodnoty typu char pre 7-bitové kódovanie ASCII
setDigit (addr, číslica, hodnota, bolean dp); // zobrazenie číslic a znakov v jednej funkcii setRow (addr, digit, value, boolean dp); // na zobrazenie objektu v požadovanej číslici
Viac informácií nájdete tu.
Krok 4: Nahrajte skicu
Načrtol som skúšobnú verziu tohto 7-segmentového modulu. Môžete skopírovať kód nižšie a potom ho vložiť do náčrtu.
// Knižnicu musíme vždy zahrnúť
#include "LedControl.h"
/*
Teraz potrebujeme LedControl, s ktorým budeme pracovať. ***** Tieto čísla pinov pravdepodobne nebudú fungovať s vašim hardvérom *****
pin 12 je pripojený k DataIn
pin 11 je pripojený k CLK
pin 10 je pripojený k LOAD
Máme iba jeden MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * medzi aktualizáciami displeja vždy chvíľu počkáme */
dlhá doba bez znamienka = 500;
neplatné nastavenie () {
/ * MAX72XX je pri spustení v úspornom režime, musíme zobudiť budík */
lc.shutdown (0, false);
/ * Nastavte jas na stredné hodnoty */
lc.setIntensity (0, 8);
/ * a vymažte displej */
lc.clearDisplay (0);}
void ahoj () {
lc.setChar (0,7, 'H', nepravda);
lc.setChar (0, 6, 'E', nepravda);
lc.setChar (0, 5, 'L', false);
lc.setChar (0, 4, 'L', false);
lc.setChar (0, 3, '0', nepravda);
lc.setChar (0, 2, '.', false);
lc.setChar (0, 1, '.', false);
lc.setChar (0, 0, '.', false);
oneskorenie (doba zdržania+1000);
lc.clearDisplay (0);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 7, 1, false);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 6, 2, false);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 5, 3, false);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 4, 4, nepravda);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 3, 5, nepravda);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 2, 6, false);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 1, 7, nepravda);
oneskorenie (čas oneskorenia);
lc.setDigit (0, 0, 8, false);
oneskorenie (1500);
lc.clearDisplay (0);
oneskorenie (čas oneskorenia);
}
void loop () {ahoj ();
}
Alebo si stiahnite súbor nižšie:
Krok 5: Výsledok
Užite si výsledok.
Ak máte otázky, napíšte ich do stĺpca komentárov.
Uvidíme sa v nasledujúcom článku.