Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
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 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
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 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
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:
Tutorial 4 în 1 MAX7219 Modul de afișare cu matrice de puncte utilizând Arduino UNO: 5 pași
4 în 1 Tutorial pentru modulul de afișare a matricei de puncte MAX7219 folosind Arduino UNO: Descriere: Căutați o matrice LED ușor de controlat? Acest modul de afișare matricială 4 în 1 ar trebui să fie potrivit pentru dvs. Întregul modul vine în patru matrice de puncte catodice comune de 8x8 RED, echipate cu IC MAX7219 fiecare. Excelent pentru a afișa textul care rulează a
Coilgun SGP33 - Instrucțiuni complete de asamblare și testare: 12 pași
Coilgun SGP33 - Instrucțiuni complete de asamblare și testare: Acest tutorial descrie cum să asamblați electronica pistolului cu bobină prezentat în acest videoclip: Asamblare SGP-33 Youtube Există, de asemenea, un videoclip în care îl vedeți în acțiune pe ultima pagină a acestui tutorial. Iată link-ul. PCB-urile pentru această demonstrație au fost amabile
Instalarea matricei LED în carcasa electronică veche - necesită achiziționarea kitului: 3 pași (cu imagini)
Instalarea matricei LED în vechea carcasă electronică - necesită achiziționarea kitului: afișajul LED controlat de un computer Windows prin tehnici Bluetooth și difuzie LED Unele exemple de pixel art și animații care rulează pe afișajul LED Conținutul kitului PIXEL Guts În acest manual, ll
Monitor SMS -- Afișare cu matrice de puncte -- MAX7219 -- SIM800L: 8 pași (cu imagini)
Monitor SMS || Afișare cu matrice de puncte || MAX7219 || SIM800L: În acest videoclip, veți învăța cum să utilizați un modul GSM, un afișaj cu matrice de puncte și cum să afișați textul defilat pe acesta. După aceea, le vom combina pentru a afișa mesajele primite printr-un SIM GSM pe un afișaj cu matrice de puncte. Este destul de ușor și
Controlul matricei LED cu Arduino Uno (Arduino Powered Robot Face): 4 pași (cu imagini)
Controlul matricei LED cu Arduino Uno (Arduino Powered Robot Face): Această instrucțiune arată cum să controlați o matrice de matrice LED 8x8 folosind un Arduino Uno. Acest ghid poate fi folosit pentru a crea un ecran simplu (și relativ ieftin) pentru propriile dvs. proiecte. În acest fel puteți afișa litere, cifre sau animații personalizate