Kazalo:
- Zaloge
- 1. korak: Preverite paket
- 2. korak: Malo o tej posebni matriki
- Korak: Gonilnik MAX7219
- 4. korak: Vezje
- 5. korak: Koda
- 6. korak: Izhod
Video: Sestavljanje in testiranje matrične LED -matrike MAX7219: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Matrični zaslon je prikazovalna naprava, ki vsebuje svetleče diode, poravnane v obliki matrice. Ta matrični zaslon se uporablja v aplikacijah, kjer je treba simbol, grafiko, znake, abecede, številke prikazati skupaj v statičnem in Pomikanje. Matrix zaslon Dot je izdelan v različnih dimenzijah, kot so 5x7, 8x8, 16x8, 128x16, 128x32 in 128x64, kjer številke predstavljajo LED v vrsticah in stolpcih. Oranžna, bela.
V tem navodilu bom šel skozi povezovanje matrike 8x8, ki ima gonilnik MAX7219, do Arduino Uno. Začnimo.
Zaloge
MAX7219
1. korak: Preverite paket
Kot vidite, imam smt različico gonilniške plošče, je zelo pomembno preveriti vse potrebne komponente, saj so komponente smd zelo majhne in jih lahko preprosto izgubite. Na voljo so tudi dip različice, vendar sem uporabil različico smt za svojo velikost.
2. korak: Malo o tej posebni matriki
en sam modul lahko poganja skupno katodo matrike 8x8.
Delovna napetost: 5 v
Mere: dolžina 3,2 cm X 3,2 cm široka X 1,3 cm visoka, luknje s štirimi vijaki, premer 3 mm
Moduli z vhodnimi in izhodnimi vmesniki, podpora za kaskadno prikazovanje več modulov.
Terminali Data IN in OUT so podani na modulu.
Korak: Gonilnik MAX7219
MAX7219 je IC, namenjen krmiljenju 8x8 LED MATRIX. IC je serijski vhodni gonilnik zaslona s skupno katodo (skupni negativni), ki povezuje mikroprocesorje (ali mikrokrmilnik) s 7-segmentnimi številskimi LED zasloni z največ 8 števkami, prikazom stolpnega grafikona ali 64 posameznimi LED.
Lastnosti in specifikacije
Območje obratovalne napetosti: +4,0 do +5,5V
Priporočena delovna napetost: +5V
Največja napajalna napetost: 6V
Največji dovoljeni tok skozi vsak segmentni zatič: 100mA
Največji dovoljeni tok skozi vsak DIGIT ozemljitveni zatič: 500mA
Nizka poraba energije
Čas zakasnitve podatkov do segmenta: 2,2 mSec
Delovna temperatura: 0 ° C do +70 ° C
Temperatura skladiščenja: -65 ° C do +150 ° C
4. korak: Vezje
Vezje je precej preprosto in ga je mogoče zgraditi z moškimi moškimi žicami. Samo sledite izklopu in sestavite vezje. Kasneje ga lahko sestavite na tiskanem vezju, če se za Matrix stalno prijavljate.
Konfiguracija pin je naslednja:
- Vcc do 5V Pin Arduino.
- Gnd v Gnd Pin Arduina.
- DIN na digitalni pin 12 Arduina.
- CS na digitalni pin 11 Arduina
- CLK na digitalni pin 10 Arduina.
5. korak: Koda
Tukaj v tem navodilu vam bom ponudil dve različni kodi. Eden bo ustvaril nekaj angleških abeced in smeškov na Matrixu. Drugi bo prižgal vseh 64 LED, ki se prižgejo ena za drugo. Če želite, da deluje, uporabite knjižnico lledcontrol.
To je koda za angleške abecede in nasmehe
#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}; bajt s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bajtna pika [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 v načinu varčevanja z energijo ob zagonu lc.setIntensity (0, 15); // Nastavite svetlost na največjo vrednost lc.clearDisplay (0); // in počistite zaslon} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; bajtno nevtralno [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bajt namrščen [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (nasmeh); zamuda (1000); printByte (nevtralno); zamuda (1000); printByte (namrščen); zamuda (1000); printEduc8s (); lc.clearDisplay (0); zamuda (1000); } void printEduc8s () {printByte (e); zamuda (1000); printByte (d); zamuda (1000); printByte (u); zamuda (1000); printByte (c); zamuda (1000); printByte (osem); zamuda (1000); printByte (s); zamuda (1000); printByte (pika); zamuda (1000); printByte (c); zamuda (1000); printByte (o); zamuda (1000); printByte (m); zamuda (1000); } void printByte (bajtni znak ) {int i = 0; za (i = 0; i <8; i ++) {lc.setRow (0, i, znak ); }}
in kodo za testiranje vseh 64 LED
// Vedno moramo vključiti knjižnico#include "LedControl.h"
/*
Zdaj potrebujemo LedControl za delo. ***** Te pin številke verjetno ne bodo delovale s vašo strojno opremo ***** pin 12 je priključen na DataIn pin 10 je priključen na pin CLK 11 je priključen na LOAD Imamo samo en MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);
/ * vedno čakamo med posodobitvami zaslona */
dolga zakasnitev brez podpisa = 100;
void setup () {
/ * MAX72XX je v načinu varčevanja z energijo ob zagonu, opraviti moramo klic zbujanja */ lc.shutdown (0, false); / * Nastavite svetlost na srednje vrednosti */ lc.setIntensity (0, 8); / * in počistite zaslon */ lc.clearDisplay (0); }
/*
Ta metoda bo prikazala znake za besedo "Arduino" enega za drugim na matrici. (Če želite videti celotne znake, potrebujete vsaj 5 x 7 LED) */ void writeArduinoOnMatrix () {/ *tukaj so podatki za znake */ bajt 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};
/ * zdaj jih prikažite enega za drugim z majhno zamudo */
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]); zamuda (zamik); 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]); zamuda (zamik); 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]); zamuda (zamik); 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]); zamuda (zamik); 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]); zamuda (zamik); 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]); zamuda (zamik); 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]); zamuda (zamik); 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); zamuda (zamik); }
/*
Ta funkcija prižge nekaj LED zapored. Vzorec se bo ponovil v vsaki vrstici. Vzorec bo utripal skupaj s številko vrstice. vrstica številka 4 (indeks == 3) bo utripala 4 -krat itd. */ void rows () {for (int row = 0; row <8; row ++) {delay (delaytime); lc.setRow (0, vrstica, B10100000); zamuda (zamik); lc.setRow (0, vrstica, (bajt) 0); za (int i = 0; i
/*
Ta funkcija osvetli nekaj LED v stolpcu. Vzorec se bo ponovil v vsakem stolpcu. Vzorec bo utripal skupaj s številko stolpca. stolpec številka 4 (indeks == 3) bo utripal 4 -krat itd. */ void stolpci () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, stolpec, B10100000); zamuda (zamik); lc.setColumn (0, stolpec, (bajt) 0); za (int i = 0; i
/*
Ta funkcija zasveti vsak LED na matriki. LED bo utripala skupaj s številko vrstice. vrstica 4 (indeks == 3) bo utripala 4 -krat itd. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { zamuda (zamik); lc.setLed (0, vrstica, stolpec, res); zamuda (zamik); za (int i = 0; i
void loop () {
writeArduinoOnMatrix (); vrstice (); stolpci (); samski (); }
6. korak: Izhod
Celoten videoposnetek si oglejte tukaj: -MAX7219 8x8 LED MATRIX MONTAŽA IN TESTIRANJE z uporabo ARDUINO
No, vse to trdo delo se zagotovo izplača, ko vidite rezultat. Je vredno !!
Naročite se na moj youtube kanal: -Kreativne stvari
Priporočena:
Sestavljanje kompleta radijskega sprejemnika AM: 9 korakov (s slikami)
Sestavljanje kompleta AM radijskega sprejemnika: rad sestavljam različne elektronske komplete. Navdušen sem nad radii. Pred meseci sem v internetu našel poceni komplet radijskih sprejemnikov AM. Naročil sem ga in po standardnem čakanju približno mesec dni je prišel. Komplet je DIY sedem tranzistor superhet
Sestavljanje strojne opreme za namizni Pi: 12 korakov (s slikami)
Sklop strojne opreme za namizni Pi: Raspberry Pi in svet enosmernih računalnikov (SBC) se mi zdijo fascinantni. Integracija vseh osnovnih komponent, ki so potrebne za tipičen računalnik za domačo uporabo, v kompakten in samostojen sistem je spremenila igro za strojno opremo in
Komplet osciloskopa DIY - Vodnik za sestavljanje in odpravljanje težav: 10 korakov (s slikami)
Komplet osciloskopa DIY - Priročnik za sestavljanje in odpravljanje težav: Pri načrtovanju nekega elektronskega pripomočka zelo pogosto potrebujem osciloskop za opazovanje prisotnosti in oblike električnih signalov. Do sedaj sem uporabljal stari sovjetski (letnik 1988) enokanalni analogni CRT osciloskop. Še vedno deluje
Funkcionalno najdeno umetniško sestavljanje- ura: 8 korakov (s slikami)
Funkcionalna umetniška zbirka- ura: Moj oče je 30 let delal v oglaševanju. Vedno je bil zelo ustvarjalen človek. Pravzaprav je svoje poklicno življenje začel kot umetniški direktor, preden je napredoval v kreativnega direktorja. Če si ogledate novo oddajo? Zaupaj mi?, Morda bo to
Uporaba LED matrične pike z registrom Arduino in Shift: 5 korakov
Uporaba matrične LED z matriko z registrom Arduino in Shift: Dot matrika Siemens DLO7135 je en neverjeten kos optoelektronike. Zaračuna se kot 5 x 7 matrični inteligentni zaslon (r) s pomnilnikom/dekoderjem/gonilnikom. Skupaj s tem pomnilnikom ima 96-mestni zaslon ASCII z zgornjo in spodnjo