Sommario:
- Forniture
- Passaggio 1: controlla il pacchetto
- Passaggio 2: un po' di questa particolare matrice di punti
- Passaggio 3: il driver MAX7219
- Passaggio 4: il circuito
- Passaggio 5: il codice
- Passaggio 6: l'output
Video: MAX7219 LED Dot Matrix Assemblaggio e test: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Un display a matrice di punti è un dispositivo di visualizzazione che contiene diodi emettitori di luce allineati sotto forma di matrice. Questi display a matrice di punti sono utilizzati in applicazioni in cui è necessario visualizzare insieme simboli, grafici, caratteri, alfabeti e numeri in statico e Movimento a scorrimento. Il display a matrice di punti è prodotto in varie dimensioni come 5x7, 8x8, 16x8, 128x16, 128x32 e 128x64 dove i numeri rappresentano i LED in righe e colonne, inoltre questi display sono disponibili in diversi colori come rosso, verde, giallo, blu, Arancio, Bianco.
In questo Instructable, esaminerò l'interfacciamento di una matrice di punti 8x8 che ha un driver MAX7219 a un Arduino Uno. Iniziamo.
Forniture
MAX7219
Passaggio 1: controlla il pacchetto
Come puoi vedere ho una versione smt della scheda driver, è molto importante verificare tutti i componenti necessari poiché i componenti smd sono di dimensioni molto piccole e puoi facilmente perderli. Ci sono anche versioni dip disponibili online ma ho usato la versione smt per le sue dimensioni.
Passaggio 2: un po' di questa particolare matrice di punti
un singolo modulo può pilotare un catodo comune a matrice di punti 8x8.
Tensione di esercizio: 5 v
Dimensioni: lunghezza 3,2 cm X 3,2 cm di larghezza X 1,3 cm di altezza, fori con quattro viti, diametro di 3 mm
Moduli con interfacce di input e output, supporto per moduli multipli in cascata.
I terminali di ingresso e uscita dati sono specificati sul modulo.
Passaggio 3: il driver MAX7219
Il MAX7219 è un IC progettato per controllare una MATRICE LED 8x8. L'IC è un driver di visualizzazione a catodo comune (Common Negative) con ingresso seriale che interfaccia i microprocessori (o microcontrollori) a display LED numerici a 7 segmenti fino a 8 cifre, display con grafici a barre o 64 LED singoli.
Caratteristiche e specifiche
Intervallo di tensione di esercizio: da +4,0 a +5,5 V
Tensione di esercizio consigliata: +5V
Tensione di alimentazione massima: 6V
Corrente massima consentita per assorbire ogni pin del segmento: 100 mA
Corrente massima consentita attraverso ciascun pin di terra DIGIT: 500 mA
Basso consumo energetico
Tempo di ritardo da dati a segmento: 2,2 mSec
Temperatura di esercizio: da 0°C a +70°C
Temperatura di stoccaggio: da -65°C a +150°C
Passaggio 4: il circuito
Il circuito è abbastanza semplice e può essere costruito utilizzando cavi jumper maschio-femmina. Basta seguire il pinout e costruire il circuito. Puoi assemblarlo in seguito su un PCB se stai facendo un'applicazione permanente per Matrix.
La configurazione dei pin è la seguente:
- Vcc a 5V Pin di Arduino.
- Gnd to Gnd Pin di Arduino.
- DIN al pin digitale 12 di Arduino.
- CS al Pin digitale 11 di Arduino
- CLK al Pin 10 digitale di Arduino.
Passaggio 5: il codice
Qui in questo Instructable ti fornirò due codici diversi. Uno genererà alcuni alfabeti inglesi e faccine su Matrix. L'altro per far accendere tutti i 64 led uno ad uno. Devi usare la libreria lledcontrol per farlo funzionare.
Questo è il codice per alfabeti e sorrisi inglesi
#include int DIN = 12; int CS = 11; int CLK = 10; byte e[8]= {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d[8]= {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u[8]= {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c[8]= {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte otto[8]= {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s[8]= {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; byte punto[8]= {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o[8]= {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m[8]= {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc=LedControl(DIN, CLK, CS, 0); void setup(){ lc.shutdown(0, false); //Il MAX72XX è in modalità di risparmio energetico all'avvio lc.setIntensity(0, 15); // Imposta la luminosità al valore massimo lc.clearDisplay(0); // e cancella il display } void loop(){ byte smile[8]= {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutro[8]= {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte cipiglio[8]= {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte(sorriso); ritardo(1000); printByte(neutro); ritardo(1000); printByte(cipiglio); ritardo(1000); printEduc8s(); lc.clearDisplay(0); ritardo(1000); } void printEduc8s() { printByte(e); ritardo(1000); printByte(d); ritardo(1000); printByte(u); ritardo(1000); printByte(c); ritardo(1000); printByte(otto); ritardo(1000); printByte(s); ritardo(1000); printByte(punto); ritardo(1000); printByte(c); ritardo(1000); printByte(o); ritardo(1000); printByte(m); ritardo(1000); } void printByte(byte carattere ) { int i = 0; for(i=0;i<8;i++) { lc.setRow(0, i, carattere); } }
e il codice per testare tutti i 64 LED
//Dobbiamo sempre includere la libreria#include "LedControl.h"
/*
Ora abbiamo bisogno di un LedControl con cui lavorare. ***** Questi numeri di pin probabilmente non funzioneranno con il tuo hardware ***** il pin 12 è collegato a DataIn il pin 10 è collegato a CLK Il pin 11 è collegato a LOAD Abbiamo solo un singolo MAX72XX. */ LedControl lc=LedControl(12, 11, 10, 1);
/* aspettiamo sempre un po' tra gli aggiornamenti del display */
unsigned long delaytime=100;
void setup() {
/* Il MAX72XX è in modalità di risparmio energetico all'avvio, dobbiamo fare una sveglia */ lc.shutdown(0, false); /* Imposta la luminosità a valori medi */ lc.setIntensity(0, 8); /* e cancella il display */ lc.clearDisplay(0); }
/*
Questo metodo visualizzerà i caratteri per la parola "Arduino" uno dopo l'altro sulla matrice. (sono necessari almeno 5x7 led per vedere tutti i caratteri) */ void writeArduinoOnMatrix() { /* ecco i dati per i caratteri */ byte a[5]={B01111110, B10001000, B10001000, B10001000, B01111110}; byte r[5]={B00111110, B00010000, B00100000, B00100000, B00010000}; byte d[5]={B00011100, B00100010, B00100010, B00010010, B11111110}; byte u[5]={B00111100, B000000110, B000000110, B00000100, B00111110}; byte i[5]={B00000000, B00100010, B10111110, B00000010, B00000000}; byte n[5]={B00111110, B00010000, B00100000, B00100000, B00011110}; byte o[5]={B00011100, B00100010, B00100010, B00100010, B00011100};
/* ora li mostra uno per uno con un piccolo ritardo */
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]); ritardo (ritardo); 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]); ritardo (ritardo); 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]); ritardo (ritardo); 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]); ritardo (ritardo); 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]); ritardo (ritardo); 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]); ritardo (ritardo); 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]); ritardo (ritardo); 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); ritardo (ritardo); }
/*
Questa funzione accende alcuni Led in fila. Il motivo verrà ripetuto su ogni riga. Il motivo lampeggerà insieme al numero di riga. la riga numero 4 (indice==3) lampeggerà 4 volte ecc. */ void righe() { for(int riga=0;riga<8;riga++) { delay(delaytime); lc.setRow(0, riga, B10100000); ritardo (ritardo); lc.setRow(0, riga, (byte)0); for(int i=0;i
/*
Questa funzione accende alcuni Led in colonna. Il modello verrà ripetuto su ogni colonna. Il motivo lampeggerà insieme al numero della colonna. la colonna numero 4 (indice==3) lampeggerà 4 volte ecc. */ void columns() { for(int col=0;col<8;col++) { delay(delaytime); lc.setColumn(0, col, B10100000); ritardo (ritardo); lc.setColumn(0, col, (byte)0); for(int i=0;i
/*
Questa funzione accenderà ogni Led della matrice. Il led lampeggerà insieme al numero di riga. la riga numero 4 (indice==3) lampeggerà 4 volte, ecc. */ void single() { for(int riga=0;riga<8;riga++) { for(int col=0;col<8;col++) { ritardo (ritardo); lc.setLed(0, riga, col, vero); ritardo (ritardo); for(int i=0;i
ciclo vuoto() {
writeArduinoOnMatrix(); righe(); colonne(); separare(); }
Passaggio 6: l'output
Guarda il video completo qui: - MAX7219 8x8 LED MATRIX MONTAGGIO E COLLAUDO utilizzando ARDUINO
Bene, tutto questo duro lavoro, sicuramente ripaga abbastanza bene quando vedi il risultato. Ne vale la pena!!
Iscriviti al mio canale youtube:-Creative Stuff
Consigliato:
Assemblaggio del kit ricevitore radio AM: 9 passaggi (con immagini)
Assemblaggio del kit ricevitore radio AM: mi piace assemblare diversi kit elettronici. Sono affascinato dalle radio. Mesi fa ho trovato su Internet un kit ricevitore radio AM economico. L'ho ordinato e dopo l'attesa standard di circa un mese è arrivato. Il kit è fai da te sette transistor superhet
Assemblaggio hardware Desktop Pi: 12 passaggi (con immagini)
Assemblaggio hardware desktop Pi: trovo affascinante il Raspberry Pi e il mondo dei computer a scheda singola (SBC). L'integrazione di tutti i componenti di base necessari per un tipico computer per uso domestico in un sistema compatto e autonomo ha rappresentato un punto di svolta per l'hardware e
Dot Matrix 32x8 Max7219 Interfacciamento con Ardiuno: 5 passaggi (con immagini)
Dot Matrix 32x8 Max7219 Interfaccia con Ardiuno: Ciao a tutti, Dot Matrix based o Max7219 non sono nuovi nel 2020, fino a poco tempo fa, il processo di installazione era ben documentato, si scaricava la libreria hardware da MajicDesigns. e ho cambiato poche righe nei file di intestazione e FC16 ha funzionato come un incantesimo. Questo è stato fino a
IoT Smart Clock Dot Matrix Usa Wemos ESP8266 - ESP Matrix: 12 passaggi (con immagini)
Matrice di punti dell'orologio intelligente IoT Usa Wemos ESP8266 - Matrice ESP: crea il tuo orologio intelligente IoT che può: Visualizzare l'orologio con una bella icona di animazione Visualizzare da promemoria-1 a Promemoria-5 Visualizzare calendario Visualizzare orari di preghiera musulmani Visualizzare informazioni meteo Visualizzare notizie Visualizzare consigli Visualizzazione del tasso di bitcoin
Interfaccia LED Dot Matrix (8x8) con NodeMCU: 6 passaggi (con immagini)
Interfaccia LED Dot Matrix (8x8) con NodeMCU: Hello Makers, sono con un altro Instructable semplice e interessante. In questo Instructable impareremo come interfacciare LED Dot Matrix (8x8) con NodeMCU. Quindi, iniziamo