Obsah:
- Zásoby
- Krok 1: Zkontrolujte balíček
- Krok 2: Trochu o této konkrétní bodové matici
- Krok 3: Ovladač MAX7219
- Krok 4: Okruh
- Krok 5: Kód
- Krok 6: Výstup
Video: Sestava a testování LED matice MAX7219: 6 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Dot-Matrix Display je zobrazovací zařízení, které obsahuje světelné diody zarovnané ve formě matice. Tyto jehličkové displeje se používají v aplikacích, kde je potřeba společně zobrazovat symboly, grafiky, znaky, abecedy a číslice Rolovací pohyb. Displej Dot Matrix se vyrábí v různých rozměrech, jako jsou 5x7, 8x8, 16x8, 128x16, 128x32 a 128x64, kde čísla představují LED diody v řádcích a sloupcích. Také tyto displeje se dodávají v různých barvách, jako je červená, zelená, žlutá, modrá, Oranžová, bílá.
V tomto Instructable budu procházet propojením 8x8 Dot Matrix, která má ovladač MAX7219, k Arduino Uno. Začněme.
Zásoby
MAX7219
Krok 1: Zkontrolujte balíček
Jak vidíte, mám smt verzi desky ovladače, je velmi důležité ověřit všechny potřebné součásti, protože komponenty smd jsou velmi malé a můžete je snadno ztratit. K dispozici je také dip verze online, ale použil jsem verze smt pro svou velikost.
Krok 2: Trochu o této konkrétní bodové matici
jeden modul může pohánět společnou katodu s jehličkovou maticí 8x8.
Provozní napětí: 5 v
Rozměry: délka 3,2 cm x 3,2 cm šířka x 1,3 cm výška, otvory se čtyřmi šrouby, průměr 3 mm
Moduly se vstupními a výstupními rozhraními, podpora kaskádových více modulů.
Na modulu jsou specifikovány datové vstupy a výstupy.
Krok 3: Ovladač MAX7219
MAX7219 je integrovaný obvod určený k ovládání LED MATRIX 8x8. IC jsou ovladače se společnou katodou (Common Negative) se sériovým vstupem, které propojují mikroprocesory (nebo mikrokontroléry) se 7segmentovými numerickými LED displeji s až 8 číslicemi, sloupcovými grafy nebo 64 jednotlivými LED.
Vlastnosti a specifikace
Rozsah provozního napětí: +4,0 až +5,5V
Doporučené provozní napětí: +5V
Maximální napájecí napětí: 6V
Maximální proud odebíraný každým kolíkem segmentu: 100 mA
Maximální povolený proud procházející každým uzemňovacím pinem DIGIT: 500mA
Nízká spotřeba energie
Doba zpoždění dat na segment: 2,2 m
Provozní teplota: 0 ° C až +70 ° C
Skladovací teplota: -65 ° C až +150 ° C
Krok 4: Okruh
Obvod je poměrně jednoduchý a lze jej postavit pomocí propojovacích vodičů mezi zástrčkami a zástrčkami. Stačí sledovat pinout a postavit obvod. Pokud vytváříte trvalou aplikaci pro Matrix, můžete ji později sestavit na PCB.
Konfigurace pinů je následující:
- Vcc až 5V pin Arduina.
- Gnd to Gnd Pin of the Arduino.
- DIN na digitální pin 12 Arduina.
- CS to Digital Pin 11 Arduina
- CLK na digitální pin 10 Arduina.
Krok 5: Kód
Zde v tomto Instructable vám poskytnu dva různé kódy. Na Matrixu se vygenerují nějaké anglické abecedy a smajlíky. Druhý chce, aby se rozsvítilo všech 64 LED diod jeden po druhém. Aby fungovala, musíte použít knihovnu lledcontrol.
Toto je kód pro anglické abecedy a úsměvy
#include int DIN = 12; int CS = 11; int CLK = 10; bajt e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bajt d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; osm bytů [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bajtová tečka [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX je při spuštění v úsporném režimu lc.setIntensity (0, 15); // Nastavte jas na maximální hodnotu lc.clearDisplay (0); // a vymazat displej} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; neutrální bajt [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bajtové zamračení [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (úsměv); zpoždění (1000); printByte (neutrální); zpoždění (1000); printByte (zamračil se); zpoždění (1000); printEduc8s (); lc.clearDisplay (0); zpoždění (1000); } void printEduc8s () {printByte (e); zpoždění (1000); printByte (d); zpoždění (1000); printByte (u); zpoždění (1000); printByte (c); zpoždění (1000); printByte (osm); zpoždění (1000); printByte; zpoždění (1000); printByte (tečka); zpoždění (1000); printByte (c); zpoždění (1000); printByte (o); zpoždění (1000); printByte (m); zpoždění (1000); } void printByte (znak bajtu ) {int i = 0; pro (i = 0; i <8; i ++) {lc.setRow (0, i, znak ); }}
a kód pro testování všech 64 LED diod
// Vždy musíme zahrnout knihovnu#zahrnout "LedControl.h"
/*
Nyní potřebujeme pracovat s LedControl. ***** Tato čísla pinů pravděpodobně nebudou fungovat s vaším hardwarem ***** pin 12 je připojen k DataIn pin 10 je připojen k CLK pin 11 je připojen k LOAD Máme pouze jeden MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);
/ * mezi aktualizacemi displeje vždy chvíli počkáme */
dlouhá doba bez znaménka = 100;
neplatné nastavení () {
/ * MAX72XX je při spuštění v úsporném režimu, musíme provést probuzení */ lc.shutdown (0, false); / * Nastavte jas na střední hodnoty */ lc.setIntensity (0, 8); / * a vymažte displej */ lc.clearDisplay (0); }
/*
Tato metoda zobrazí znaky pro slovo „Arduino“jeden po druhém na matici. (k zobrazení celých znaků potřebujete alespoň 5x7 LED) */ void writeArduinoOnMatrix () {/ *zde jsou data pro znaky */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bajt d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bajt n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};
/ * nyní je zobrazujte jeden po druhém s malým zpožděním */
lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, i [0]); lc.setRow (0, 1, i [1]); lc.setRow (0, 2, i [2]); lc.setRow (0, 3, i [3]); lc.setRow (0, 4, i [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); zpoždění (doba zpoždění); lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); zpoždění (doba zpoždění); }
/*
Tato funkce rozsvítí několik LED v řadě. Vzor se bude opakovat na každém řádku. Vzor bude blikat spolu s číslem řádku. číslo řádku 4 (index == 3) 4krát zabliká atd. */ neplatné řádky () {for (int řádek = 0; řádek <8; řádek ++) {zpoždění (zpoždění); lc.setRow (0, řádek, B10100000); zpoždění (doba zpoždění); lc.setRow (0, řádek, (byte) 0); pro (int i = 0; i
/*
Tato funkce rozsvítí několik LED ve sloupci. Vzor se bude opakovat v každém sloupci. Vzor bude blikat spolu s číslem sloupce. sloupec číslo 4 (index == 3) 4krát zabliká atd. */ neplatné sloupce () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); zpoždění (doba zpoždění); lc.setColumn (0, col, (byte) 0); pro (int i = 0; i
/*
Tato funkce rozsvítí každou LED na matici. LED bliká spolu s číslem řádku. číslo řádku 4 (index == 3) 4krát zabliká atd. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { zpoždění (doba zpoždění); lc.setLed (0, řádek, sloupec, true); zpoždění (doba zpoždění); pro (int i = 0; i
prázdná smyčka () {
writeArduinoOnMatrix (); řádky (); sloupce (); singl(); }
Krok 6: Výstup
Podívejte se na celé video zde: -MAX7219 8x8 LED MATRIX MONTÁŽ A TESTOVÁNÍ pomocí ARDUINO
Celá ta dřina se určitě docela dobře vyplatí, když uvidíte výsledek. Stojí to za to !!
Přihlaste se k odběru mého youtube kanálu: -Creative Stuff
Doporučuje:
Testování teplotních senzorů - který z nich pro mě?: 15 kroků (s obrázky)
Testování teplotních senzorů - který z nich pro mě? Čtyři z nejpopulárnějších senzorů jsou TMP36, který má analogový výstup a potřebuje převodník analogového na digitální signál, DS18B20, který
Jak používat Tinkercad k testování a implementaci hardwaru: 5 kroků (s obrázky)
Jak používat Tinkercad k testování a implementaci hardwaru: Simulace obvodů je technika, kde počítačový software simuluje chování elektronického obvodu nebo systému. Nové návrhy lze testovat, vyhodnocovat a diagnostikovat, aniž by byl obvod nebo systém skutečně konstruován. Simulace obvodů může být
Stresové testování Raspberry Pi: 6 kroků (s obrázky)
Stresové testování Raspberry Pi: Když byl Raspberry Pi poprvé vydán, byl jsem stržen v humbuku při nákupu jednoho, ale nakonec jsem strávil více času s Arduinem, protože jsou vhodnější pro projekty elektroniky. Mám dva originální Raspberry Pi v kůlně a myslel jsem si, že to bylo
Pero pro testování úrovně logiky TTL: 5 kroků (s obrázky)
Pero pro testování úrovně logiky TTL: Pero pro testování polarity a Pero pro testování úrovně logiky TTL. Toto pero pro testování polarity se mírně liší, protože je schopné testovat úrovně TTL a zobrazuje stav na 7segmentovém displeji pomocí písmen: „H“; (Vysoká) pro logickou úroveň "
Brainwave Počítačové rozhraní Prototyp Starter Kit TGAM Pájení a testování: 7 kroků (s obrázky)
Prototyp Brainwave Computer Interface Prototype Starter Kit TGAM Pájení a testování: Minulé století výzkumu neurovědy výrazně rozšířilo naše znalosti o mozku a zejména elektrických signálech vysílaných neurony střílejícími v mozku. Vzory a frekvence těchto elektrických signálů lze měřit