In questo tutorial progetteremo un display a scorrimento a matrice di LED 8x8 utilizzando Arduino Uno, che mostrerà alfabeti a scorrimento.
8x8 LED Matrix contiene 64 LED (Light Emitting Diodes) disposti sotto forma di una matrice, da cui il nome è LED matrix. Realizzeremo questa matrice saldando questi 64 LED sulla perfboard o sul PCB DOT. I LED possono essere di qualsiasi colore, scegli quelli che sono disponibili con te. Quindi scriveremo un programma per Arduino per controllare la matrice di questi 64 LED. L'UNO, secondo il programma, alimenta i LED appropriati per mostrare i caratteri in modo scorrevole.
Componenti richiesti:
- Arduino Uno
- 64 LED
- Perfboard con altri strumenti di saldatura
- Resistenza da 1KΩ (8 pezzi)
- Alimentazione (5v)
Circuito e spiegazione di lavoro:
Ci sono 64 LED disposti in una forma a matrice. Quindi abbiamo 8 colonne e 8 righe. Su quelle righe e colonne, tutti i terminali positivi in una riga vengono riuniti. Per ogni riga, c'è un terminale positivo comune per tutti gli 8 LED in quella riga. È mostrato nella figura sottostante,
Quindi per 8 file abbiamo 8 terminali positivi comuni. Si consideri la prima riga, come si vede in figura, 8 LED da D57 a D64 hanno un terminale positivo comune e sono indicati con 'POSITIVO0'. Ora se vogliamo accendere uno o tutti i LED nella prima RIGA della matrice, allora dovremmo alimentare il PIN0 della Matrice LED. Allo stesso modo, se vogliamo accendere qualsiasi LED (o tutti) in qualsiasi RIGA, allora dobbiamo alimentare il corrispondente Pin terminale positivo comune di quella rispettiva riga.
Non è ancora finita e lasciare le MATRIX ROWS con un'offerta positiva non produrrà nulla. Dobbiamo mettere a terra i negativi dei LED per illuminarli. Quindi nella matrice LED 8x8, tutti i terminali negativi dei LED in qualsiasi colonna sono riuniti per formare otto terminali negativi comuni, come tutti i terminali negativi nella prima colonna sono collegati insieme al PIN-A1 (NEGATIVO7). Questo è mostrato nella figura seguente:
Si dovrebbe prestare attenzione a questi pin durante la saldatura dei LED su Perfboard.
Ora, se abbiamo bisogno di mettere a terra qualsiasi LED nella prima colonna, metteremo a terra il PIN-A1 (NEGATIVO7) di MATRIX e metterà a terra tutti i LED nella prima colonna. Lo stesso processo vale per tutte le altre sette colonne negative comuni.
Da ora sai come funzionano Common Positive e Common Negative. Mettiamoli insieme per vedere come funzionano insieme e il display finale Circuit for Scrolling 8x8 LED Matrix sarà simile a questo:
Guidare la matrice LED 8x8 utilizzando il multiplexing:
Ora diciamo di voler accendere il LED57, quindi dobbiamo alimentare il PIN0 di UNO e mettere a terra il PIN-8 di UNO. Ora per accendere sia LED57 che LED50, dobbiamo alimentare il PIN0, PIN1 e mettere a terra il PIN8, PIN9. Ma così facendo non solo si attiveranno D57, D50 ma anche D49, D58. Per evitare ciò utilizziamo una tecnica chiamata Multiplexing. Abbiamo già discusso questa tecnica Multiplex in 8x8 LED Matrix in dettaglio; leggere l'articolo per una spiegazione dettagliata. Qui stiamo spiegando brevemente il Multiplexing.
L'occhio umano non può catturare una frequenza superiore a 30 HZ. Cioè se un LED si accende e si spegne continuamente a una velocità di 30 Hz o più. L'occhio vede il LED sempre acceso. Tuttavia, non è così e il LED si accenderà e spegnerà costantemente. Questa tecnica è chiamata multiplexing.
Supponiamo, ad esempio, di voler accendere solo LED57 e LED50 senza accendere D49 e D58. Il trucco è che prima forniremo alimentazione alla prima fila per accendere il LED57 e attendere 1 mSEC, quindi lo spegneremo. Quindi forniremo alimentazione alla seconda fila per accendere LED50 e attendere 1mSEC, quindi lo spegneremo. Il ciclo procede continuamente ad alta frequenza e LED57 e LED50 si accenderanno e spegneranno rapidamente ed entrambi i LED appariranno continuamente accesi ai nostri occhi. Significa che stiamo fornendo alimentazione solo a una riga alla volta, eliminando le possibilità di accendere altri LED in altre file. Useremo questa tecnica per mostrare tutti i personaggi.
C'è anche una libreria chiamata LedControlMS.h per prendersi cura di tutta questa complessità del multiplexing, dove devi solo inserire il carattere o il numero che vuoi stampare sulla matrice LED, controlla questa matrice LED Arduino con il progetto MAX7219 per maggiori dettagli.
Spiegazione della programmazione:
Nel nostro codice abbiamo scritto un valore decimale per ogni carattere e programmato questi valori in Arduino. Il programma ha scritto di spostare questi valori nella riga successiva ogni 0.2 sec, questo sarà visto come uno scorrimento dei caratteri verso l'alto, è molto semplice.
Per modificare i caratteri da visualizzare, è sufficiente sostituire il valore nell'array ALPHA char in base ai valori dei caratteri indicati di seguito, 24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Ad esempio, se si desidera visualizzare DAD sulla matrice LED, sostituire prima i valori dei caratteri nell'array ALPHA dei caratteri inserendo i valori per i caratteri D, A e D dall'elenco sopra:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
I valori totali ora sono 5 * 10 = 50 valori, quindi
Sostituisci, for (int x = 0; x <142; x ++) // 150-8 (per fermare l'overflow) {…….. Con, for (int x = 0; x <42; x ++) // 50-8 (per fermare l'overflow) {……..
Quindi devi solo cambiare il numero.
Con questo hai fatto la programmazione e ora puoi scorrere qualsiasi testo sulla matrice LED 8x8, controlla il codice completo qui sotto con un video dimostrativo.