INHOUDSOPGAWE:

MAX7219 LED Dot Matrix Montage en toetsing: 6 stappe (met foto's)
MAX7219 LED Dot Matrix Montage en toetsing: 6 stappe (met foto's)

Video: MAX7219 LED Dot Matrix Montage en toetsing: 6 stappe (met foto's)

Video: MAX7219 LED Dot Matrix Montage en toetsing: 6 stappe (met foto's)
Video: How to make a LED digital counter using 7- Segment Display 2024, November
Anonim
Image
Image
Gaan die pakket na
Gaan die pakket na

'N Dot-Matrix Display is 'n display-toestel wat liguitstralende diodes bevat wat in die vorm van 'n matriks in lyn is, en dit word gebruik in toepassings waar simbool, grafika, karakters, alfabette, syfers saam staties en Scrolling motion. Dot Matrix Display word vervaardig in verskillende afmetings, soos 5x7, 8x8, 16x8, 128x16, 128x32 en 128x64, waar die getalle LED's in rye en kolomme verteenwoordig. Oranje, Wit.

In hierdie instruksies gaan ek 'n 8x8 Dot Matrix met 'n MAX7219 -bestuurder koppel aan 'n Arduino Uno. Kom ons begin.

Voorrade

MAX7219

Stap 1: Gaan die pakket na

Soos u kan sien, het ek 'n smt -weergawe van die bestuurdersbord, dit is baie belangrik om elke komponent wat nodig is, te verifieer, aangesien die smd -komponente baie klein is en u dit maklik kan verloor. Daar is ook 'n dip -weergawe beskikbaar, maar ek het dit gebruik die smt -weergawe vir sy grootte.

Stap 2: 'n bietjie meer oor hierdie besondere puntmatriks

'N Bietjie oor hierdie besondere puntmatriks
'N Bietjie oor hierdie besondere puntmatriks

'n enkele module kan die gemeenskaplike katode met 'n matriks van 8 x 8 punte dryf.

Bedryfspanning: 5 v

Afmetings: lengte 3,2 cm x 3,2 cm breed x 1,3 cm hoog, gate met vier skroewe, die deursnee van 3 mm

Modules met invoer- en afvoer -koppelvlakke, ondersteuning vir die onderbreek van verskeie modules.

Data IN en OUT terminale word op die module gespesifiseer.

Stap 3: Die MAX7219 -bestuurder

Die MAX7219 bestuurder
Die MAX7219 bestuurder
Die MAX7219 bestuurder
Die MAX7219 bestuurder

Die MAX7219 is 'n IC wat ontwerp is om 'n 8x8 LED MATRIX te beheer. Die IC is 'n seriële invoer-algemene katode (algemene negatiewe) vertoonbestuurders wat mikroverwerkers (of mikrobeheerder) koppel aan 7-segment numeriese LED-skerms van tot 8 syfers, staafgrafiekvertonings of 64 individuele LED's.

Kenmerke en spesifikasies

Bedryfspanning: +4.0 tot +5.5V

Aanbevole werkspanning: +5V

Maksimum toevoerspanning: 6V

Maksimum stroom wat toegelaat word om deur elke segmentpen te trek: 100mA

Maksimum stroom wat deur elke DIGIT -grondpen toegelaat word: 500mA

Lae kragverbruik

Data-tot-segment vertragingstyd: 2.2mSek

Bedryfstemperatuur: 0 ° C tot +70 ° C

Bergingstemperatuur: -65 ° C tot +150 ° C

Stap 4: Die stroombaan

Die stroombaan
Die stroombaan
Die stroombaan
Die stroombaan

Die kring is redelik eenvoudig en kan gebou word met manlike tot vroulike springdrade. Volg net die pinout en bou die kring. U kan dit later op 'n PCB monteer as u 'n permanente toepassing vir die Matrix maak.

Die speldkonfigurasie is soos volg:

  • Vcc tot 5V Pin van Arduino.
  • Gnd tot Gnd Pin van die Arduino.
  • DIN volgens digitale pen 12 van die Arduino.
  • CS na Digital Pin 11 van die Arduino
  • CLK na Digital Pin 10 van die Arduino.

Stap 5: Die kode

Hier in hierdie Instructable gee ek u twee verskillende kodes. Die een sal 'n paar Engelse alfabette en smileys op die Matrix genereer. Die ander een sal al die 64 LED's een vir een verlig. U moet die lledcontrol -biblioteek gebruik om dit te laat werk.

Dit is die kode vir Engelse alfabet en glimlagte

#sluit int DIN = 12 in; int CS = 11; int CLK = 10; greep e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; greep d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; greep c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; greep agt [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; grepe s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; greep punt [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; greep m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); ongeldige opstelling () {lc.shutdown (0, vals); // Die MAX72XX is in die kragbesparingsmodus tydens die aanvang van lc.setIntensity (0, 15); // Stel die helderheid in op maksimum waarde lc.clearDisplay (0); // en maak die skerm} leeg lus () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C} skoon; greepneutraal [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; greep frons [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (glimlag); vertraging (1000); printByte (neutraal); vertraging (1000); printByte (frons); vertraging (1000); printEduc8s (); lc.clearDisplay (0); vertraging (1000); } ongeldig printEduc8s () {printByte (e); vertraging (1000); printByte (d); vertraging (1000); printByte (u); vertraging (1000); printByte (c); vertraging (1000); printByte (agt); vertraging (1000); printByte (s); vertraging (1000); printByte (punt); vertraging (1000); printByte (c); vertraging (1000); printByte (o); vertraging (1000); printByte (m); vertraging (1000); } void printByte (byte karakter ) {int i = 0; vir (i = 0; i <8; i ++) {lc.setRow (0, i, karakter ); }}

en die kode vir die toets van al 64 LED's

// Ons moet altyd die biblioteek insluit#insluit "LedControl.h"

/*

Nou het ons 'n LedControl nodig om mee te werk. ***** Hierdie pennommers werk waarskynlik nie met u hardeware nie ***** pen 12 is gekoppel aan die DataIn pen 10 is gekoppel aan die CLK pen 11 is gekoppel aan LOAD Ons het slegs 'n enkele MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * ons wag altyd 'n bietjie tussen opdaterings van die skerm */

ongetekende lang vertraging = 100;

ongeldige opstelling () {

/ * Die MAX72XX is in die kragbesparingsmodus tydens die aanvang; ons moet 'n wekroep */ lc.stop (0, vals) doen; / * Stel die helderheid op 'n medium waardes */ lc.setIntensity (0, 8); / * en maak die skerm */ lc.clearDisplay (0) skoon; }

/*

Hierdie metode sal die karakters vir die woord "Arduino" een na die ander op die matriks vertoon. (jy benodig minstens 5x7 LED's om die hele tekens te sien) */ void writeArduinoOnMatrix () {/ *hier is die data vir die karakters */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; greep d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; greep n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * vertoon dit nou een vir een met 'n klein vertraging */

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

/*

Hierdie funksie verlig 'n paar LED's in 'n ry. Die patroon word op elke ry herhaal. Die patroon knip saam met die ry-nommer. ry nommer 4 (indeks == 3) sal 4 keer ens. */ leë rye () {vir (int ry = 0; ry <8; ry ++) {vertraging (vertraging); lc.setRow (0, ry, B10100000); vertraging (vertragingstyd); lc.setRow (0, ry, (byte) 0); vir (int i = 0; i

/*

Hierdie funksie verlig 'n paar LED's in 'n kolom. Die patroon word op elke kolom herhaal. Die patroon flikker saam met die kolomnommer. kolom nommer 4 (indeks == 3) sal 4 keer knip, ens. */ nietige kolomme () {vir (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, kol, B10100000); vertraging (vertragingstyd); lc.setColumn (0, kol, (byte) 0); vir (int i = 0; i

/*

Hierdie funksie sal elke Led op die matriks verlig. Die LED knip saam met die ry-nommer. ry nommer 4 (indeks == 3) sal 4 keer ens knip. */ void enkel () {vir (int ry = 0; ry <8; ry ++) {vir (int col = 0; kol <8; col ++) { vertraging (vertragingstyd); lc.setLed (0, ry, kol, waar); vertraging (vertragingstyd); vir (int i = 0; i

leemte -lus () {

writeArduinoOnMatrix (); rye (); kolomme (); enkel (); }

Stap 6: Die uitset

Image
Image
Die uitset
Die uitset
Die uitset
Die uitset
Die uitset
Die uitset

Kyk hier na die volledige video: -MAX7219 8x8 LED MATRIX MONTERING EN TOETSING met behulp van ARDUINO

Al hierdie harde werk, betaal beslis baie goed as u die resultaat sien. Dit is die moeite werd !!

Teken in op my YouTube-kanaal: -Creative Stuff

Aanbeveel: