Sisukord:

MAX7219 LED -punktmaatriksi kokkupanek ja testimine: 6 sammu (piltidega)
MAX7219 LED -punktmaatriksi kokkupanek ja testimine: 6 sammu (piltidega)

Video: MAX7219 LED -punktmaatriksi kokkupanek ja testimine: 6 sammu (piltidega)

Video: MAX7219 LED -punktmaatriksi kokkupanek ja testimine: 6 sammu (piltidega)
Video: Светодиодные матрицы на max7219 2024, November
Anonim
Image
Image
Kontrollige pakendit
Kontrollige pakendit

Punktmaatriksekraan on kuvaseade, mis sisaldab maatriksi kujul joondatud valgusdioode. Seda punktmaatriksi kuvarit kasutatakse rakendustes, kus sümbolid, graafilised, tähemärgid, tähestikud ja numbrid tuleb kuvada koos nii staatiliselt kui ka Keriv liikumine. Punktmaatriksekraani toodetakse erinevates mõõtmetes, näiteks 5x7, 8x8, 16x8, 128x16, 128x32 ja 128x64, kus numbrid tähistavad ridade ja veergude LED -e. Samuti on need kuvarid erinevates värvides, näiteks punane, roheline, kollane, sinine, Oranž, valge.

Selles juhendis tutvun 8x8 punktmaatriksiga, millel on MAX7219 draiver, liides Arduino Unoga. Alustame.

Tarvikud

MAX7219

Samm: kontrollige pakendit

Nagu näete, on mul draiveriplaadi smt -versioon, on väga oluline kontrollida kõiki vajalikke komponente, kuna smd -komponendid on väga väikesed ja saate need hõlpsalt kaotada. Internetis on saadaval ka dip -versioon, kuid ma kasutasin seda smt versioon oma suuruse järgi.

2. samm: natuke sellest konkreetsest punktmaatriksist

Natuke sellest erilisest punktmaatriksist
Natuke sellest erilisest punktmaatriksist

üks moodul võib juhtida 8x8 punktmaatriksi ühist katoodi.

Tööpinge: 5 v

Mõõdud: pikkus 3,2 cm X 3,2 cm lai X 1,3 cm kõrge, nelja kruviga augud, läbimõõt 3 mm

Sisend- ja väljundliidestega moodulid, mitme mooduli kaskaadimise tugi.

Data IN ja OUT terminalid on moodulil määratud.

Samm: draiver MAX7219

Autojuht MAX7219
Autojuht MAX7219
Autojuht MAX7219
Autojuht MAX7219

MAX7219 on 8x8 LED -MATRIX -i juhtimiseks mõeldud IC. IC on jadasisendiga ühise katoodiga (ühine negatiivne) kuvaridraiver, mis ühendab mikroprotsessorid (või mikrokontrollerid) kuni 7-kohaliste kuni 8-kohaliste numbriliste LED-ekraanide, tulpdiagrammide või 64 üksikute LED-idega.

Omadused ja spetsifikatsioonid

Tööpinge vahemik: +4,0 kuni +5,5V

Soovitatav tööpinge: +5V

Maksimaalne toitepinge: 6V

Maksimaalne vool, mis on lubatud tõmmata läbi iga segmendi tihvti: 100 mA

Maksimaalne lubatud vool läbi iga DIGIT maanduspistiku: 500 mA

Madal energiatarve

Andmete segmendi viivitusaeg: 2,2 mSek

Töötemperatuur: 0 ° C kuni +70 ° C

Säilitustemperatuur: -65 ° C kuni +150 ° C

4. samm: vooluring

Ringkond
Ringkond
Ringkond
Ringkond

Vooluahel on üsna lihtne ja seda saab ehitada isaste ja naissoost hüppajate juhtmete abil. Lihtsalt järgige pinouti ja looge vooluring. Saate selle hiljem PCB -le kokku panna, kui teete maatriksi jaoks alalist rakendust.

Pin -i konfiguratsioon on järgmine:

  • Vcc kuni 5V pinniga Arduino.
  • Gnd kuni Gnd Pin Arduino.
  • DIN Arduino digitaalsele tihvtile 12.
  • CS Arduino digitaalsele tihvtile 11
  • CLK kuni Arduino digitaalse pin 10 -ni.

Samm: kood

Siin selles juhendis pakun teile kahte erinevat koodi. Üks loob maatriksil mõned inglise tähestikud ja emotikonid. Teine aga süttib kõik 64 LED -i ükshaaval. Töötamiseks peate kasutama teeki lledcontrol.

See on inglise tähestike ja naeratuste kood

#include int DIN = 12; int CS = 11; int CLK = 10; bait e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bait d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; bait u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bait c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; kaheksa bait [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bait s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; baitpunkt [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bait o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bait 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 käivitamisel energiasäästurežiimis lc.setIntensity (0, 15); // Seadke heledus maksimaalsele väärtusele lc.clearDisplay (0); // ja kustuta ekraan} void loop () {bait naeratus [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; baitne neutraalne [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bait kortsutab kulmu [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (naeratus); viivitus (1000); printByte (neutraalne); viivitus (1000); printByte (kortsutab kulmu); viivitus (1000); printEduc8s (); lc.clearDisplay (0); viivitus (1000); } tühine printEduc8s () {printByte (e); viivitus (1000); printByte (d); viivitus (1000); printByte (u); viivitus (1000); printByte (c); viivitus (1000); printByte (kaheksa); viivitus (1000); printByte (s); viivitus (1000); printByte (punkt); viivitus (1000); printByte (c); viivitus (1000); printByte (o); viivitus (1000); printByte (m); viivitus (1000); } void printByte (baitmärk ) {int i = 0; jaoks (i = 0; i <8; i ++) {lc.setRow (0, i, märk ); }}

ja kõigi 64 LED -i testimise kood

// Peame alati kaasama raamatukogu#include "LedControl.h"

/*

Nüüd vajame töötamiseks LedControli. ***** Need pin -numbrid teie riistvaraga tõenäoliselt ei tööta ***** pin 12 on ühendatud DataIn -i tihvtiga 10 on ühendatud CLK -ga tihvt 11 on ühendatud LOADiga Meil on ainult üks MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * ootame alati ekraani värskenduste vahel natuke * */

allkirjastamata pikk viivitusaeg = 100;

tühine seadistus () {

/ * MAX72XX on käivitamisel energiasäästurežiimis, peame tegema äratuskõne */ lc.shutdown (0, false); / * Seadke heledus keskmisele väärtusele */ lc.setIntensity (0, 8); / * ja tühjendage ekraan */ lc.clearDisplay (0); }

/*

See meetod kuvab maatriksil sõna "Arduino" tähemärgid üksteise järel. (tähemärkide nägemiseks vajate vähemalt 5x7 LED -i) */ void writeArduinoOnMatrix () {/ *siin on märgid */ bait a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; bait r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bait d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; bait u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; bait i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bait n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; bait o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * kuva neid nüüd ükshaaval väikese viivitusega */

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

/*

See funktsioon süttib mõnda LED -i järjest. Mustrit korratakse igal real. Muster vilgub koos rea numbriga. rea number 4 (indeks == 3) vilgub 4 korda jne. */ void rids () {for (int rida = 0; rida <8; rida ++) {delay (delaytime); lc.setRow (0, rida, B10100000); viivitus (viivitusaeg); lc.setRow (0, rida, (bait) 0); jaoks (int i = 0; i

/*

See funktsioon süttib veerus mõnda LED -i. Mustrit korratakse igas veerus. Muster vilgub koos veeru numbriga. veeru number 4 (indeks == 3) vilgub 4 korda jne. */ void column () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, kol, B10100000); viivitus (viivitusaeg); lc.setColumn (0, kol, (bait) 0); jaoks (int i = 0; i

/*

See funktsioon süttib maatriksil iga LED -i. LED vilgub koos rea numbriga. rea number 4 (indeks == 3) vilgub 4 korda jne */ void single () {for (int rida = 0; rida <8; rida ++) {jaoks (int col = 0; col <8; col ++) { viivitus (viivitusaeg); lc.setLed (0, rida, kollane, tõene); viivitus (viivitusaeg); jaoks (int i = 0; i

void loop () {

writeArduinoOnMatrix (); read (); veerud (); vallaline (); }

6. samm: väljund

Image
Image
Väljund
Väljund
Väljund
Väljund
Väljund
Väljund

Vaata täispikka videot siit: -MAX7219 8x8 LED MATRIX KOKKUVÕTMINE JA TESTIMINE ARDUINO abil

Kogu see raske töö tasub kindlasti tulemust nähes päris hästi ära. See on seda väärt !!

Telli minu youtube kanal: -Creative Stuff

Soovitan: