Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-23 15:05
Dot-Matrix Display je zobrazovacie zariadenie, ktoré obsahuje svetelné diódy zarovnané do tvaru matice. Tieto bodové maticové displeje sa používajú v aplikáciách, kde je potrebné spoločne zobrazovať statický, symbol, grafiku, znaky, abecedy a číslice Posúvaný pohyb. Bodový maticový displej sa vyrába v rôznych rozmeroch, ako sú 5x7, 8x8, 16x8, 128x16, 128x32 a 128x64, kde čísla predstavujú LED diódy v riadkoch a stĺpcoch. Tiež tieto displeje sú dodávané v rôznych farbách, ako je červená, zelená, žltá, modrá, Oranžová, biela.
V tomto návode sa budem zaoberať prepojením bodovej matice 8x8 s ovládačom MAX7219 s Arduino Uno. Začnime.
Zásoby
MAX7219
Krok 1: Skontrolujte balík
Ako vidíte, mám smt verziu dosky ovládača, je veľmi dôležité overiť všetky potrebné komponenty, pretože komponenty smd sú veľmi malé a môžete ich ľahko stratiť. Na internete je k dispozícii aj dip verzia, ale použil som verzia smt pre svoju veľkosť.
Krok 2: Trochu o tejto konkrétnej bodovej matici
jeden modul môže poháňať spoločnú katódu s bodovou maticou 8x8.
Prevádzkové napätie: 5 v
Rozmery: dĺžka 3,2 cm x 3,2 cm šírka x 1,3 cm výška, otvory so štyrmi skrutkami, priemer 3 mm
Moduly so vstupným a výstupným rozhraním, podpora kaskádového zapojenia viacerých modulov.
Na module sú uvedené dátové vstupné a výstupné terminály.
Krok 3: Ovládač MAX7219
MAX7219 je integrovaný obvod určený na ovládanie LED MATRIX 8x8. IC sú ovládače displeja so spoločnou katódou (Common Negative) so sériovým vstupom, ktoré prepájajú mikroprocesory (alebo mikrokontroléry) so 7-segmentovými numerickými diódami LED s až 8 číslicami, stĺpcovými grafmi alebo 64 samostatnými diódami LED.
Vlastnosti a špecifikácie
Rozsah prevádzkového napätia: +4,0 až +5,5V
Odporúčané prevádzkové napätie: +5V
Maximálne napájacie napätie: 6V
Maximálny prúd, ktorý je možné čerpať cez každý segmentový kolík: 100 mA
Maximálny povolený prúd cez každý uzemňovací kolík DIGIT: 500mA
Nízka spotreba energie
Čas oneskorenia údajov na segment: 2,2 m
Prevádzková teplota: 0 ° C až +70 ° C
Skladovacia teplota: -65 ° C až +150 ° C
Krok 4: Okruh
Obvod je pomerne jednoduchý a môže byť zostavený pomocou prepojovacích vodičov mužských až ženských. Stačí sledovať vývod a postaviť obvod. Neskôr môžete zostaviť na dosku plošných spojov, ak robíte trvalú aplikáciu pre Matrix.
Konfigurácia pinov je nasledovná:
- Vcc až 5V pin Arduina.
- Gnd to Gnd Pin of Arduino.
- Kolík 12 na digitálny DIN až Arduino.
- Pin CS to Digital na Arduino 11
- CLK na digitálny pin 10 Arduina.
Krok 5: Kód
Tu v tomto návode vám poskytnem dva rôzne kódy. Jeden vygeneruje v Matrixe niekoľko anglických abeced a smajlíkov. Druhý chce, aby sa rozsvietilo všetkých 64 LED diód jeden po druhom. Aby to fungovalo, musíte použiť knižnicu lledcontrol.
Toto je kód pre anglickú abecedu a úsmevy
#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}; bajt u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; osem bajtov [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bodka bajtu [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bajt o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt 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 pri spustení v úspornom režime lc.setIntensity (0, 15); // Nastavte jas na maximálnu hodnotu lc.clearDisplay (0); // a vymažte displej} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; bajtový neutrál [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bajtové zamračenie [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (úsmev); oneskorenie (1000); printByte (neutrálny); oneskorenie (1000); printByte (zamračený výraz); oneskorenie (1000); printEduc8s (); lc.clearDisplay (0); oneskorenie (1000); } void printEduc8s () {printByte (e); oneskorenie (1000); printByte (d); oneskorenie (1000); printByte (u); oneskorenie (1000); printByte (c); oneskorenie (1000); printByte (osem); oneskorenie (1000); printByte; oneskorenie (1000); printByte (bodka); oneskorenie (1000); printByte (c); oneskorenie (1000); printByte (o); oneskorenie (1000); printByte (m); oneskorenie (1000); } void printByte (znak bajtu ) {int i = 0; pre (i = 0; i <8; i ++) {lc.setRow (0, i, znak ); }}
a kód na testovanie všetkých 64 LED diód
// Vždy musíme zahrnúť knižnicu#zahrnúť „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 10 je pripojený k CLK pin 11 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 = 100;
neplatné nastavenie () {
/ * MAX72XX je pri štarte 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); }
/*
Táto metóda zobrazí na matici jeden po druhom znaky pre slovo „Arduino“. (na zobrazenie celých znakov potrebujete aspoň 5x7 LED) */ void writeArduinoOnMatrix () {/ *tu sú údaje pre znaky */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; bajt r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bajt d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; bajt u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; bajt i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bajt n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; bajt o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};
/ * teraz ich zobrazujte jeden po druhom s malým oneskorení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]); oneskorenie (čas oneskorenia); 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]); oneskorenie (čas oneskorenia); 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]); oneskorenie (čas oneskorenia); 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]); oneskorenie (čas oneskorenia); 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]); oneskorenie (čas oneskorenia); 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]); oneskorenie (čas oneskorenia); 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]); oneskorenie (čas oneskorenia); 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); oneskorenie (čas oneskorenia); }
/*
Táto funkcia rozsvieti niekoľko LED v rade. Vzor sa bude opakovať v každom riadku. Vzor bude blikať spolu s číslom riadka. riadok číslo 4 (index == 3) štyrikrát zabliká atď. */ neplatné riadky () {for (int riadok = 0; riadok <8; riadok ++) {oneskorenie (čas oneskorenia); lc.setRow (0, riadok, B10100000); oneskorenie (čas oneskorenia); lc.setRow (0, riadok, (bajt) 0); pre (int i = 0; i
/*
Táto funkcia rozsvieti niektoré LED v stĺpci. Vzor sa bude opakovať v každom stĺpci. Vzor bude blikať spolu s číslom stĺpca. stĺpec číslo 4 (index == 3) štyrikrát zabliká atď. */ neplatné stĺpce () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); oneskorenie (čas oneskorenia); lc.setColumn (0, col, (byte) 0); pre (int i = 0; i
/*
Táto funkcia rozsvieti všetky LED diódy na matici. LED dióda bude blikať spolu s číslom riadku. riadok číslo 4 (index == 3) štyrikrát zabliká atď. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { oneskorenie (čas oneskorenia); lc.setLed (0, riadok, stĺpček, true); oneskorenie (čas oneskorenia); pre (int i = 0; i
prázdna slučka () {
writeArduinoOnMatrix (); riadky (); stĺpce (); single (); }
Krok 6: Výstup
Pozrite si celé video tu: -MAX7219 8x8 LED MATRIX MONTÁŽ A TESTOVANIE pomocou ARDUINO
Celá táto tvrdá práca sa určite vyplatí, keď uvidíte výsledok. Stojí to za to !!
Prihláste sa na odber môjho kanála YouTube: -Kreatívne veci
Odporúča:
Testovanie teplotných senzorov - ktorý z nich pre mňa?: 15 krokov (s obrázkami)
Testovanie teplotných senzorov - ktorý z nich pre mňa ?: Jeden z prvých senzorov, ktoré chcú vyskúšať nováčikovia vo fyzických počítačoch, je meranie teploty. Štyrmi najobľúbenejšími snímačmi sú TMP36, ktoré majú analógový výstup a vyžadujú analógovo -digitálny prevodník DS18B20, ktorý
DIY 4S 18650 batéria bez bodovej zváračky: 9 krokov
DIY akumulátor 4S 18650 bez bodovej zváračky: Hej! všetci Moje meno je Steve. Dnes vám ukážem, ako vytvoriť veľmi jednoduchý 4S akumulátor s BMS. Kliknite sem a pozrite si video Začnime
Ako používať Tinkercad na testovanie a implementáciu hardvéru: 5 krokov (s obrázkami)
Ako používať Tinkercad na testovanie a implementáciu hardvéru: Simulácia obvodov je technika, pri ktorej počítačový softvér simuluje správanie elektronického obvodu alebo systému. Nové konštrukcie je možné testovať, vyhodnocovať a diagnostikovať bez toho, aby ste skutočne skonštruovali obvod alebo systém. Simulácia obvodu môže byť
Stresové testovanie Raspberry Pi: 6 krokov (s obrázkami)
Stresové testovanie Raspberry Pi: Keď bol Raspberry Pi prvýkrát vydaný, bol som zmietaný v humbuku pri kúpe jedného, ale nakoniec som strávil viac času s Arduinom, pretože sú vhodnejšie pre projekty elektroniky. Mám dva originálne Raspberry Pi v kôlni a myslel som si, že je to
Použitie bodovej matice LED s Arduino a posuvným registrom: 5 krokov
Použitie bodovej matice LED s Arduino a posuvným registrom: Bodová matica LED Siemens DLO7135 je úžasný kúsok optoelektroniky. Účtuje sa ako 5x7 bodový maticový inteligentný displej (r) s pamäťou/dekodérom/ovládačom. Spolu s touto pamäťou má aj 96-znakový displej ASCII s horným a dolným