Cuprins:

Asamblare și testare a matricei de puncte LED MAX7219: 6 pași (cu imagini)
Asamblare și testare a matricei de puncte LED MAX7219: 6 pași (cu imagini)

Video: Asamblare și testare a matricei de puncte LED MAX7219: 6 pași (cu imagini)

Video: Asamblare și testare a matricei de puncte LED MAX7219: 6 pași (cu imagini)
Video: Testare leduri cu ajutorul multimetrului 2024, Septembrie
Anonim
Image
Image
Verificați pachetul
Verificați pachetul

Un afișaj cu matrice de puncte este un dispozitiv de afișare care conține diode emițătoare de lumină aliniate sub formă de matrice. Mișcare de derulare. Afișajul cu matrice de puncte este fabricat în diferite dimensiuni, cum ar fi 5x7, 8x8, 16x8, 128x16, 128x32 și 128x64, unde numerele reprezintă LED-uri în rânduri și coloane. De asemenea, aceste afișaje sunt disponibile în diferite culori, cum ar fi roșu, verde, galben, albastru, Portocaliu, alb.

În acest Instructable, voi trece prin interfațarea unei matrice de puncte 8x8 care are un driver MAX7219 la un Arduino Uno. Să începem.

Provizii

MAX7219

Pasul 1: Verificați pachetul

După cum puteți vedea, am o versiune SMT a plăcii driverului, este foarte important să verificați toate componentele necesare, deoarece componentele smd sunt foarte mici și le puteți pierde cu ușurință. Există, de asemenea, versiunea dip disponibilă online, dar am folosit versiunea smt pentru dimensiunea sa.

Pasul 2: Un pic despre această matrice de puncte particulară

Un pic despre această matrice de puncte particulară
Un pic despre această matrice de puncte particulară

un singur modul poate conduce un catod comun cu matrice de 8x8 puncte.

Tensiune de funcționare: 5 v

Dimensiuni: lungime 3,2 cm X 3,2 cm lățime X 1,3 cm înălțime, găuri cu patru șuruburi, diametrul de 3 mm

Module cu interfețe de intrare și ieșire, suport pentru module multiple în cascadă.

Terminalele de date IN și OUT sunt specificate pe modul.

Pasul 3: Driverul MAX7219

Driverul MAX7219
Driverul MAX7219
Driverul MAX7219
Driverul MAX7219

MAX7219 este un IC conceput pentru a controla o matrice LED de 8x8. IC-ul este driverul de afișare cu catod comun (negativ comun) de intrare serial care interfață microprocesoarele (sau microcontrolerul) cu afișaje numerice cu 7 segmente cu până la 8 cifre, afișaje cu grafice cu bare sau 64 de LED-uri individuale.

Caracteristici și specificații

Gama de tensiune de funcționare: +4,0 până la + 5,5V

Tensiunea de funcționare recomandată: + 5V

Tensiunea maximă de alimentare: 6V

Curentul maxim permis pentru a trage prin fiecare pin de segment: 100mA

Curentul maxim permis prin fiecare pin DIGIT: 500mA

Consum redus de putere

Timp de întârziere date-segmente: 2,2 m Sec

Temperatura de funcționare: 0 ° C până la + 70 ° C

Temperatura de depozitare: -65 ° C până la + 150 ° C

Pasul 4: Circuitul

Circuitul
Circuitul
Circuitul
Circuitul

Circuitul este destul de simplu și poate fi construit folosind fire jumper de la mascul la feminin. Doar urmați pinout-ul și construiți circuitul. Mai târziu îl puteți asambla pe un PCB dacă faceți o aplicație permanentă pentru Matrix.

Configurarea Pin este următoarea:

  • Vcc la 5V Pinul Arduino.
  • Pinul Gnd la Gnd al Arduino.
  • DIN la pinul digital 12 al Arduino.
  • CS la pinul digital 11 al Arduino
  • CLK la pinul digital 10 al Arduino.

Pasul 5: Codul

Aici, în acest instructabil, vă voi oferi două coduri diferite. Unul va genera câteva alfabete engleze și zâmbete pe Matrix. Celălalt va face ca toate cele 64 de LED-uri să se aprindă unul câte unul. Trebuie să utilizați biblioteca lledcontrol pentru ao face să funcționeze.

Acesta este codul pentru alfabete și zâmbete în limba engleză

#include int DIN = 12; int CS = 11; int CLK = 10; octet e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; octet d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; octet u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; octet c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; octet opt [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; octet s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; octet punct [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; octet o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; octet m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX este în modul de economisire a energiei la pornirea lc.setIntensity (0, 15); // Setați luminozitatea la valoarea maximă lc.clearDisplay (0); // și ștergeți afișajul} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; octet neutru [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; octet încruntat [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (zâmbet); întârziere (1000); printByte (neutru); întârziere (1000); printByte (încruntat); întârziere (1000); printEduc8s (); lc.clearDisplay (0); întârziere (1000); } void printEduc8s () {printByte (e); întârziere (1000); printByte (d); întârziere (1000); printByte (u); întârziere (1000); printByte (c); întârziere (1000); printByte (opt); întârziere (1000); printByte (s); întârziere (1000); printByte (punct); întârziere (1000); printByte (c); întârziere (1000); printByte (o); întârziere (1000); printByte (m); întârziere (1000); } void printByte (octet caracter ) {int i = 0; for (i = 0; i <8; i ++) {lc.setRow (0, i, caracter ); }}

și codul pentru testarea tuturor celor 64 de LED-uri

// Întotdeauna trebuie să includem biblioteca # include "LedControl.h"

/*

Acum avem nevoie de un LedControl pentru a lucra. ***** Aceste numere de pin nu vor funcționa probabil cu hardware-ul dvs. ***** pinul 12 este conectat la DataIn pinul 10 este conectat la pinul CLK 11 este conectat la LOAD Avem doar un singur MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * așteptăm întotdeauna puțin între actualizările afișajului * /

timp de întârziere nesemnat = 100;

configurare nulă () {

/ * MAX72XX este în modul de economisire a energiei la pornire, trebuie să facem un apel de trezire * / lc.shutdown (0, fals); / * Setați luminozitatea la valori medii * / lc.setIntensity (0, 8); / * și ștergeți afișajul * / lc.clearDisplay (0); }

/*

Această metodă va afișa caracterele pentru cuvântul „Arduino” unul după altul pe matrice. (aveți nevoie de cel puțin 5x7 leduri pentru a vedea toate caracterele) * / void writeArduinoOnMatrix () {/ * aici sunt datele pentru caracterele * / octet a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; octet r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; octet d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; octet u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; octet i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; octet n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; octet o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * acum afișați-le unul câte unul cu o mică întârziere * /

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]); întârziere (întârziere); 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]); întârziere (întârziere); 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]); întârziere (întârziere); 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]); întârziere (întârziere); 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]); întârziere (întârziere); 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]); întârziere (întârziere); 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]); întârziere (întârziere); 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); întârziere (întârziere); }

/*

Această funcție aprinde câteva LED-uri la rând. Modelul va fi repetat pe fiecare rând. Modelul va clipi împreună cu numărul rândului. rândul 4 (index == 3) va clipi de 4 ori etc. * / void rows () {for (int row = 0; row <8; row ++) {delay (delaytime); lc.setRow (0, rând, B10100000); întârziere (întârziere); lc.setRow (0, rând, (octet) 0); pentru (int i = 0; i

/*

Această funcție luminează câteva leduri într-o coloană. Modelul va fi repetat pe fiecare coloană. Modelul va clipi împreună cu numărul coloanei. numărul coloanei 4 (index == 3) va clipi de 4 ori etc. * / void coloane () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); întârziere (întârziere); lc.setColumn (0, col, (octet) 0); pentru (int i = 0; i

/*

Această funcție va aprinde fiecare Led de pe matrice. Ledul va clipi împreună cu numărul rândului. rândul 4 (index == 3) va clipi de 4 ori etc. * / void single () {pentru (int rând = 0; rând <8; rând ++) {pentru (int col = 0; col <8; col ++) { întârziere (întârziere); lc.setLed (0, rând, col, adevărat); întârziere (întârziere); pentru (int i = 0; i

bucla nulă () {

writeArduinoOnMatrix (); rânduri (); coloane (); singur(); }

Pasul 6: ieșirea

Image
Image
Ieșirea
Ieșirea
Ieșirea
Ieșirea
Ieșirea
Ieșirea

Urmăriți videoclipul complet aici: -MAX7219 8x8 LED MATRIX ASSEMBLY AND TESTING folosind ARDUINO

Ei bine, toată această muncă grea, cu siguranță se plătește destul de bine atunci când vedeți rezultatul. Se merită !!

Abonați-vă la canalul meu de pe YouTube: -Creative Stuff

Recomandat: