Sisällysluettelo:

MAX7219 LED -pistematriisin kokoaminen ja testaus: 6 vaihetta (kuvilla)
MAX7219 LED -pistematriisin kokoaminen ja testaus: 6 vaihetta (kuvilla)

Video: MAX7219 LED -pistematriisin kokoaminen ja testaus: 6 vaihetta (kuvilla)

Video: MAX7219 LED -pistematriisin kokoaminen ja testaus: 6 vaihetta (kuvilla)
Video: Lesson 19: Using LCD Screen with Arduino LCD1602 LCD2004 | Arduino Step By Step Course 2024, Heinäkuu
Anonim
Image
Image
Tarkista paketti
Tarkista paketti

Piste-matriisinäyttö on näyttölaite, joka sisältää matriisin muotoon kohdistettuja valoa lähettäviä diodeja. Tätä piste-matriisinäyttöä käytetään sovelluksissa, joissa symbolit, graafiset, merkit, aakkoset, numerot on näytettävä yhdessä staattisena ja Pistematriisinäyttöä valmistetaan eri mitoissa, kuten 5x7, 8x8, 16x8, 128x16, 128x32 ja 128x64, joissa numerot edustavat LED -valoja riveissä ja sarakkeissa. Oranssi, valkoinen.

Tässä Instructable -ohjelmassa käyn läpi 8x8 -pistematriisin, jossa on MAX7219 -ohjain, liittämisen Arduino Unoon. Aloitetaan.

Tarvikkeet

MAX7219

Vaihe 1: Tarkista paketti

Kuten näet, minulla on ajurikortin smt -versio, on erittäin tärkeää tarkistaa kaikki tarvittavat komponentit, koska smd -komponentit ovat kooltaan hyvin pieniä ja voit helposti menettää ne. Verkossa on myös saatavilla dip -versio, mutta smt -versio kokonsa puolesta.

Vaihe 2: Hieman tästä erityisestä pistematriisista

Vähän tästä erityisestä pistematriisista
Vähän tästä erityisestä pistematriisista

yksi moduuli voi ajaa 8x8 pistematriisin yhteistä katodia.

Käyttöjännite: 5 v

Mitat: pituus 3,2 cm x 3,2 cm leveä x 1,3 cm korkea, reikiä neljällä ruuvilla, halkaisija 3 mm

Tulo- ja lähtöliitännöillä varustetut moduulit, tuki useiden moduulien porrastamiseen.

Data IN- ja OUT -liittimet on määritetty moduulissa.

Vaihe 3: MAX7219 -ohjain

Kuljettaja MAX7219
Kuljettaja MAX7219
Kuljettaja MAX7219
Kuljettaja MAX7219

MAX7219 on IC, joka on suunniteltu ohjaamaan 8x8 LED MATRIXia. IC on sarjatulon yhteisen katodin (Common Negative) näytönohjaimet, jotka yhdistävät mikroprosessorit (tai mikrokontrollerit) 7-segmenttisiin numeerisiin LED-näyttöihin, joissa on enintään 8 numeroa, pylväskaavio tai 64 yksittäistä LEDiä.

Ominaisuudet ja tekniset tiedot

Käyttöjännitealue: +4,0 - +5,5V

Suositeltu käyttöjännite: +5V

Suurin syöttöjännite: 6V

Suurin sallittu virta jokaisen segmenttitapin läpi: 100 mA

Suurin sallittu virta kullakin DIGIT -maadoitusnastalla: 500 mA

Alhainen virrankulutus

Tietojen ja segmenttien viiveaika: 2,2 ms

Käyttölämpötila: 0 ° C - +70 ° C

Varastointilämpötila: -65 ° C - +150 ° C

Vaihe 4: Piiri

Piiri
Piiri
Piiri
Piiri

Piiri on melko yksinkertainen ja voidaan rakentaa uros -naarashyppyjohtimilla. Seuraa vain pinoutia ja rakenna piiri. Voit myöhemmin koota sen piirilevylle, jos teet pysyvän sovelluksen Matrixille.

Pin -kokoonpano on seuraava:

  • Vcc - 5V Arduino -nasta.
  • Gnd - Gnd Pin Arduinosta.
  • DIN Arduinon digitaaliseen nastaan 12.
  • CS Arduinon digitaaliseen nastaan 11
  • CLK Arduinon digitaaliseen nastaan 10.

Vaihe 5: Koodi

Tässä opetusohjelmassa annan sinulle kaksi eri koodia. Yksi luo joitain englantilaisia aakkosia ja hymiöitä Matrixiin. Toinen valaisee kaikki 64 LEDiä palamaan yksitellen. Sinun on käytettävä lledcontrol -kirjastoa, jotta se toimisi.

Tämä on koodi englannin aakkosille ja hymyille

#include int DIN = 12; int CS = 11; int CLK = 10; tavu e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; tavu d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; tavu u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; tavu c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; tavu kahdeksan [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; tavu s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; tavupiste [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; tavu o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; tavu m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX on virransäästötilassa käynnistettäessä lc.setIntensity (0, 15); // Aseta kirkkaus maksimiarvoon lc.clearDisplay (0); // ja tyhjennä näyttö} void loop () {tavu hymy [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; tavut neutraali [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; tavu rypistyy [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (hymy); viive (1000); printByte (neutraali); viive (1000); printByte (paheksua); viive (1000); printEduc8s (); lc.clearDisplay (0); viive (1000); } void printEduc8s () {printByte (e); viive (1000); printByte (d); viive (1000); printByte (u); viive (1000); printByte (c); viive (1000); printByte (kahdeksan); viive (1000); printByte (s); viive (1000); printByte (piste); viive (1000); printByte (c); viive (1000); printByte (o); viive (1000); printByte (m); viive (1000); } void printByte (tavumerkki ) {int i = 0; for (i = 0; i <8; i ++) {lc.setRow (0, i, merkki ); }}

ja koodi kaikkien 64 LED -valon testaamiseen

// Meidän on aina sisällytettävä kirjasto#include "LedControl.h"

/*

Nyt tarvitsemme LedControlin toimimaan. ***** Nämä nastanumerot eivät todennäköisesti toimi laitteistosi kanssa ***** nasta 12 on kytketty DataIniin nasta 10 on kytketty CLK -nastaan 11 on kytketty LOADiin Meillä on vain yksi MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * odotamme aina vähän näytön päivitysten välillä */

allekirjoittamaton pitkä viiveaika = 100;

void setup () {

/ * MAX72XX on virransäästötilassa käynnistettäessä, meidän on tehtävä herätys */ lc.shutdown (0, false); / * Aseta kirkkaus keskiarvoon */ lc.setIntensity (0, 8); / * ja tyhjennä näyttö */ lc.clearDisplay (0); }

/*

Tämä menetelmä näyttää sanan "Arduino" merkit peräkkäin matriisissa. (tarvitset vähintään 5x7 lediä nähdäksesi kaikki merkit) */ void writeArduinoOnMatrix () {/ *tässä on merkkien */ tavun tiedot [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; tavu r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; tavu d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; tavu u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; tavu i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; tavu n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; tavu o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * näytä ne nyt yksitellen pienellä viiveellä */

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

/*

Tämä toiminto sytyttää joitain LED -valoja peräkkäin. Kuvio toistetaan jokaisella rivillä. Kuvio vilkkuu rivinumeron kanssa. rivin numero 4 (indeksi == 3) vilkkuu 4 kertaa jne. */ void rws () {for (int rivi = 0; rivi <8; rivi ++) {delay (delaytime); lc.setRow (0, rivi, B10100000); viive (viive) lc.setRow (0, rivi, (tavu) 0); varten (int i = 0; i

/*

Tämä toiminto syttyy sarakkeessa oleviin joihinkin LED -valoihin. Kuvio toistetaan jokaisella sarakkeella. Kuvio vilkkuu sarakkeen numeron kanssa. sarake numero 4 (indeksi == 3) vilkkuu 4 kertaa jne. */ void column () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, sarake, B10100000); viive (viive) lc.setColumn (0, sarake, (tavu) 0); varten (int i = 0; i

/*

Tämä toiminto syttyy jokaiseen matriisin LED -valoon. LED vilkkuu rivinumeron kanssa. rivin numero 4 (indeksi == 3) vilkkuu 4 kertaa jne. */ void single () {for (int rivi = 0; rivi <8; rivi ++) {for (int col = 0; col <8; col ++) { viive (viive) lc.setLed (0, rivi, sarake, tosi); viive (viive) varten (int i = 0; i

void loop () {

writeArduinoOnMatrix (); rivit (); sarakkeet (); yksittäinen(); }

Vaihe 6: Lähtö

Image
Image
Lähtö
Lähtö
Lähtö
Lähtö
Lähtö
Lähtö

Katso koko video täältä: -MAX7219 8x8 LED-MATRIX-KOKOONPANO JA TESTAUS ARDUINO: ta käyttäen

Kaikki tämä kova työ maksaa varmasti melko hyvin, kun näet tuloksen. Se on sen arvoista !!

Tilaa youtube-kanavani: -Creative Stuff

Suositeltava: