Obsah:

Sestava a testování LED matice MAX7219: 6 kroků (s obrázky)
Sestava a testování LED matice MAX7219: 6 kroků (s obrázky)

Video: Sestava a testování LED matice MAX7219: 6 kroků (s obrázky)

Video: Sestava a testování LED matice MAX7219: 6 kroků (s obrázky)
Video: Arduino návody | LED displej MAX7219 2024, Červenec
Anonim
Image
Image
Zkontrolujte balíček
Zkontrolujte balíček

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

Něco málo o této konkrétní tečkové matici
Něco málo o této konkrétní tečkové 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

Ovladač MAX7219
Ovladač MAX7219
Ovladač MAX7219
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

Okruh
Okruh
Okruh
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

Image
Image
Výstup
Výstup
Výstup
Výstup
Výstup
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: