Kazalo:

Sestavljanje in testiranje matrične LED -matrike MAX7219: 6 korakov (s slikami)
Sestavljanje in testiranje matrične LED -matrike MAX7219: 6 korakov (s slikami)

Video: Sestavljanje in testiranje matrične LED -matrike MAX7219: 6 korakov (s slikami)

Video: Sestavljanje in testiranje matrične LED -matrike MAX7219: 6 korakov (s slikami)
Video: Полное руководство по 16-канальному сервоконтроллеру PCA9685 для Arduino с кодом версии 5 (V1) 2024, Julij
Anonim
Image
Image
Preverite paket
Preverite paket

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

Malo o tej posebni matriki
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

Gonilnik MAX7219
Gonilnik MAX7219
Gonilnik MAX7219
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
Vezje
Vezje
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

Image
Image
Izhod
Izhod
Izhod
Izhod
Izhod
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: