Indholdsfortegnelse:

MAX7219 LED Dot Matrix Montering og testning: 6 trin (med billeder)
MAX7219 LED Dot Matrix Montering og testning: 6 trin (med billeder)

Video: MAX7219 LED Dot Matrix Montering og testning: 6 trin (med billeder)

Video: MAX7219 LED Dot Matrix Montering og testning: 6 trin (med billeder)
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, Juli
Anonim
Image
Image
Tjek pakken
Tjek pakken

En Dot-Matrix Display er en displayenhed, der indeholder lysemitterende dioder, der er justeret i form af matrix. Denne Dot-matrix-skærme bruges i applikationer, hvor symbol, grafik, tegn, alfabeter, tal skal vises sammen i statisk samt Scrolling motion. Dot Matrix Display er fremstillet i forskellige dimensioner som 5x7, 8x8, 16x8, 128x16, 128x32 og 128x64, hvor tallene repræsenterer LED'er i rækker og kolonner. Disse displays kommer også i forskellige farver som rød, grøn, gul, blå, Orange, hvid.

I denne instruks vil jeg gå igennem grænseflade mellem en 8x8 Dot Matrix, som har en MAX7219 driver til en Arduino Uno. Lad os komme i gang.

Forbrugsvarer

MAX7219

Trin 1: Kontroller pakken

Som du kan se, har jeg en smt -version af driverkortet, det er meget vigtigt at kontrollere hver eneste nødvendige komponent, da smd -komponenterne er meget små i størrelse, og du let kan miste dem. Der er også dip -version tilgængelig online, men jeg brugte smt -versionen for sin størrelse.

Trin 2: Lidt om denne særlige prikmatrix

Lidt om denne særlige prikmatrix
Lidt om denne særlige prikmatrix

enkelt modul kan drive en 8x8 dot matrix fælles katode.

Driftsspænding: 5 v

Dimensioner: længde 3,2 cm X 3,2 cm bred X 1,3 cm høj, huller med fire skruer, diameteren 3 mm

Moduler med input- og output -interfaces, understøttelse af flere moduler i kaskade.

Data IN og OUT terminaler er angivet på modulet.

Trin 3: MAX7219 -driveren

MAX7219 -driveren
MAX7219 -driveren
MAX7219 -driveren
MAX7219 -driveren

MAX7219 er en IC designet til at styre en 8x8 LED MATRIX. IC'en er serielle input common-cathode (Common Negative) displaydrivere, der grænseflader mikroprocessorer (eller mikrokontroller) til 7-segment numeriske LED-skærme på op til 8 cifre, søjlediagramdisplayer eller 64 individuelle LED'er.

Funktioner og specifikationer

Driftsspændingsområde: +4.0 til +5.5V

Anbefalet driftsspænding: +5V

Maksimal forsyningsspænding: 6V

Maksimal strøm tilladt at trække gennem hver segmentstift: 100mA

Maksimal strøm tilladt gennem hver DIGIT jordstift: 500mA

Lavt strømforbrug

Data-til-segment forsinkelsestid: 2,2 mSek

Driftstemperatur: 0 ° C til +70 ° C

Opbevaringstemperatur: -65 ° C til +150 ° C

Trin 4: Kredsløbet

Kredsløbet
Kredsløbet
Kredsløbet
Kredsløbet

Kredsløbet er ret simpelt og kan bygges ved hjælp af han til hun jumper ledninger. Bare følg pinout og opbyg kredsløbet. Du kan senere samle det på et printkort, hvis du laver en permanent applikation til Matrix.

Pin -konfigurationen er som følger:

  • Vcc til 5V pin af Arduino.
  • Gnd til Gnd Pin af Arduino.
  • DIN til digital pin 12 på Arduino.
  • CS til Digital Pin 11 af Arduino
  • CLK til Digital Pin 10 på Arduino.

Trin 5: Koden

Her i denne Instructable giver jeg dig to forskellige koder. Man vil generere nogle engelske alfabeter og smilies på Matrix. Den anden vil lyse alle de 64 LED'er en efter en. Du skal bruge lledcontrol -biblioteket for at få det til at fungere.

Dette er koden for engelske alfabeter og smil

#include int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte otte [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; byte prik [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 er i strømbesparende tilstand ved opstart lc.setIntensity (0, 15); // Indstil lysstyrken til maksimal værdi lc.clearDisplay (0); // og ryd displayet} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutral [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte rynke [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (smil); forsinkelse (1000); printByte (neutral); forsinkelse (1000); printByte (rynker panden); forsinkelse (1000); printEduc8s (); lc.clearDisplay (0); forsinkelse (1000); } ugyldige printEduc8s () {printByte (e); forsinkelse (1000); printByte (d); forsinkelse (1000); printByte (u); forsinkelse (1000); printByte (c); forsinkelse (1000); printByte (otte); forsinkelse (1000); printByte (r); forsinkelse (1000); printByte (prik); forsinkelse (1000); printByte (c); forsinkelse (1000); printByte (o); forsinkelse (1000); printByte (m); forsinkelse (1000); } void printByte (byte tegn ) {int i = 0; for (i = 0; i <8; i ++) {lc.setRow (0, i, tegn ); }}

og koden til test af alle 64 lysdioder

// Vi skal altid inkludere biblioteket#inkludere "LedControl.h"

/*

Nu har vi brug for en LedControl at arbejde med. ***** Disse pin numre vil sandsynligvis ikke fungere med din hardware ***** pin 12 er forbundet til DataIn pin 10 er forbundet til CLK pin 11 er forbundet til LOAD Vi har kun en enkelt MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * vi venter altid lidt mellem opdateringer af displayet */

usigneret lang forsinkelse = 100;

ugyldig opsætning () {

/ * MAX72XX er i strømbesparende tilstand ved opstart, vi skal foretage et vågneopkald */ lc.shutdown (0, false); / * Indstil lysstyrken til et medium værdier */ lc.setIntensity (0, 8); / * og ryd displayet */ lc.clearDisplay (0); }

/*

Denne metode viser tegnene for ordet "Arduino" efter hinanden på matrixen. (du skal bruge mindst 5 x 7 lysdioder for at se hele tegningerne) */ void writeArduinoOnMatrix () {/ *her er dataene for tegnene */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * vis dem nu en efter en med en lille forsinkelse */

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]); forsinkelse (forsinkelse); 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]); forsinkelse (forsinkelse); 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]); forsinkelse (forsinkelse); 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]); forsinkelse (forsinkelse); 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]); forsinkelse (forsinkelse); 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]); forsinkelse (forsinkelse); 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]); forsinkelse (forsinkelse); 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); forsinkelse (forsinkelse); }

/*

Denne funktion lyser nogle lysdioder i træk. Mønsteret gentages på hver række. Mønsteret blinker sammen med rækkenummeret. række nummer 4 (indeks == 3) blinker 4 gange osv. */ ugyldige rækker () {for (int række = 0; række <8; række ++) {forsinkelse (forsinkelse); lc.setRow (0, række, B10100000); forsinkelse (forsinkelse); lc.setRow (0, række, (byte) 0); for (int i = 0; i

/*

Denne funktion tænder nogle lysdioder i en kolonne. Mønsteret vil blive gentaget på hver kolonne. Mønsteret blinker sammen med kolonnenummeret. kolonne nummer 4 (indeks == 3) blinker 4 gange osv. */ void kolonner () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); forsinkelse (forsinkelse); lc.setColumn (0, col, (byte) 0); for (int i = 0; i

/*

Denne funktion lyser hver LED på matrixen. LED'en blinker sammen med rækkenummeret. række nummer 4 (indeks == 3) blinker 4 gange osv. */ void single () {for (int række = 0; række <8; række ++) {for (int col = 0; col <8; col ++) { forsinkelse (forsinkelse); lc.setLed (0, række, kol, sand); forsinkelse (forsinkelse); for (int i = 0; i

void loop () {

writeArduinoOnMatrix (); rækker (); kolonner (); enkelt(); }

Trin 6: Output

Image
Image
Output
Output
Output
Output
Output
Output

Se hele videoen her: -MAX7219 8x8 LED MATRIX MONTERING OG TEST ved hjælp af ARDUINO

Alt dette hårde arbejde, betaler sig sikkert temmelig godt, når du ser resultatet. Det er det værd !!

Abonner på min youtube-kanal: -Creative Stuff

Anbefalede: