🔲 Arduino • Matrice LED • Test 8×8

Matrice LED 8×8 con Arduino: collegamenti e test

Colleghiamo una matrice LED 8×8 direttamente ad Arduino e realizziamo uno sketch di prova per verificare righe, colonne e cablaggio prima di visualizzare lettere e simboli.

DifficoltàIntermedia
LED64 in matrice 8×8
ObiettivoTest righe e colonne
In poche parole: una matrice 8×8 contiene 64 LED organizzati in otto righe e otto colonne. Invece di usare 128 collegamenti, condividiamo le linee e controlliamo i LED tramite 16 terminali.

Cosa imparerai

  • come è organizzata una matrice LED 8×8;
  • come distinguere righe e colonne;
  • come collegare i 16 terminali ad Arduino;
  • come usare anche i pin analogici come uscite digitali;
  • come verificare il cablaggio accendendo progressivamente le righe;
  • come preparare il circuito per il progetto successivo con lettere e simboli.

La matrice LED 8×8

Matrice LED 8x8 per Arduino

Nel sito questa immagine era visualizzata a circa 191 px: manteniamo la stessa dimensione massima.

Una matrice 8×8 permette di visualizzare punti, figure, lettere e simboli. Questo primo tutorial serve soprattutto a verificare che ogni riga e ogni colonna sia collegata correttamente; nel progetto successivo useremo la stessa matrice per comporre caratteri.

Come sono organizzati i 64 LED

Schema interno matrice LED 8x8 Arduino
Tabella collegamenti matrice LED 8x8

Queste due immagini nel sito erano impostate su larghezza automatica, quindi non vengono ingrandite artificialmente.

Concetto chiave: per accendere un LED specifico bisogna attivare contemporaneamente la sua riga e la sua colonna con la polarità richiesta dalla matrice.

Materiale necessario

🔌 Arduino Uno
🔲 Matrice LED 8×8
〰️ 8 resistenze da 220 Ω
🧩 2 breadboard
🔗 Cavetti jumper

🧰 Kit Arduino consigliato

Molti progetti del sito utilizzano LED, resistenze, breadboard e cavetti. Un kit completo può essere comodo per iniziare.

👉 Guarda il kit Arduino consigliato

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

📘 Vuoi imparare Arduino passo dopo passo?

Se vuoi approfondire e realizzare progetti più completi, puoi dare un’occhiata anche ai miei libri dedicati ad Arduino. All’interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.

👉 Scopri i miei libri su Arduino

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

Schema del circuito

Schema Arduino matrice LED 8x8

schema del collegamento. Nel sito la larghezza era automatica.

Pin usati dal progetto

Lo sketch utilizza ben 16 linee di Arduino. Oltre ai pin digitali D2–D13 sfrutta anche A0–A3 come normali pin digitali.

GruppoPin Arduino
Linee della matriceD2–D13 + A0–A3
Numero totale di linee16
Resistenze8 × 220 Ω
Nota sui numeri 14–17: nello sketch Arduino usa anche i numeri 14, 15, 16 e 17. Su Arduino Uno corrispondono rispettivamente ad A0, A1, A2 e A3 quando vengono usati come pin digitali.

Mappatura di righe e colonne

Il sketch crea prima un array generale dei 16 pin e poi due array separati per colonne e righe. Manteniamo la stessa corrispondenza, ma scritta direttamente in modo più leggibile.

Linea matricePin Arduino
Colonna 1D9
Colonna 2D12
Colonna 3D7
Colonna 4D13
Colonna 5D2
Colonna 6D6
Colonna 7A1
Colonna 8D5
Riga 1A3
Riga 2A2
Riga 3D3
Riga 4D8
Riga 5D4
Riga 6D10
Riga 7D11
Riga 8A0

Codice Arduino commentato

Test matrice LED 8×8 – righe e collegamenti
// ==========================================================
// MATRICE LED 8x8 CON ARDUINO - TEST COLLEGAMENTI
// Versione semplificata del progetto
// ==========================================================

// Le otto colonne della matrice.
// La sequenza mantiene esattamente la mappatura
// utilizzata nello sketch.
const int colonne[8] = {
 9, // colonna 1
 12, // colonna 2
 7, // colonna 3
 13, // colonna 4
 2, // colonna 5
 6, // colonna 6
 A1, // colonna 7
 5 // colonna 8
};

// Le otto righe della matrice.
const int righe[8] = {
 A3, // riga 1
 A2, // riga 2
 3, // riga 3
 8, // riga 4
 4, // riga 5
 10, // riga 6
 11, // riga 7
 A0 // riga 8
};

void setup() {

 // Configura tutte le colonne come uscite.
 for (int i = 0; i < 8; i++) {
 pinMode(colonne[i], OUTPUT);
 }

 // Configura tutte le righe come uscite.
 for (int i = 0; i < 8; i++) {
 pinMode(righe[i], OUTPUT);
 }

 // Stato iniziale del progetto:
 // colonne a LOW e righe a LOW.
 // In questa configurazione nessuna riga viene
 // inizialmente portata al livello attivo HIGH.
 for (int i = 0; i < 8; i++) {
 digitalWrite(colonne[i], LOW);
 digitalWrite(righe[i], LOW);
 }
}

void loop() {

 // --------------------------------------------------------
 // ACCENSIONE PROGRESSIVA DELLE RIGHE
 // --------------------------------------------------------
 // Le colonne restano a LOW.
 // Portando una riga alla volta a HIGH,
 // si verifica visivamente il suo collegamento.
 for (int i = 0; i < 8; i++) {

 digitalWrite(righe[i], HIGH);

 // Lascia il risultato visibile per 100 ms
 delay(100);
 }

 // --------------------------------------------------------
 // SPEGNIMENTO PROGRESSIVO DELLE RIGHE
 // --------------------------------------------------------
 for (int i = 0; i < 8; i++) {

 digitalWrite(righe[i], LOW);

 delay(100);
 }
}

Cosa deve succedere

Lo sketch è volutamente semplice: serve come test del cablaggio. Le righe vengono portate progressivamente a HIGH e poi riportate a LOW.

Se il circuito è corretto: dovresti vedere l’accensione procedere ordinatamente attraverso la matrice. Se una riga non reagisce o si accendono LED inattesi, controlla la corrispondenza tra terminali della matrice e pin Arduino.

Perché questo test è utile

Con 16 collegamenti è molto facile scambiare una riga con una colonna. Prima di provare a disegnare lettere o simboli conviene quindi verificare la matrice con una sequenza elementare.

Una volta sicuri del cablaggio, nel progetto successivo potremo passare al vero controllo dei singoli LED e creare caratteri tramite mappe di bit.

Come si accende un singolo LED

Ogni punto della matrice si trova all’intersezione tra una riga e una colonna. Per accenderne uno solo bisogna quindi selezionare la riga corretta e contemporaneamente impostare la colonna con la polarità richiesta.

Esempio concettuale: LED alla riga 3, colonna 5 → abiliti la riga 3 e la colonna 5, mantenendo le altre linee nello stato che impedisce accensioni indesiderate.

Perché servono le resistenze

I LED devono avere una limitazione di corrente. Nel progetto vengono utilizzate 8 resistenze da 220 Ω. Non eliminare le resistenze pensando che la matrice possa essere collegata direttamente ai pin.

Limiti del collegamento diretto

Questo circuito è molto utile per capire il funzionamento della matrice, ma occupa praticamente tutti i pin disponibili di Arduino Uno. Per progetti più complessi si usano spesso driver come MAX7219, che riducono drasticamente il numero di collegamenti richiesti.

Quando conviene un MAX7219? Se vuoi visualizzare testi, animazioni o concatenare più matrici, un modulo con driver è generalmente molto più pratico. Il collegamento diretto resta invece eccellente come esercizio didattico.

Immagine del test

Test matrice LED 8x8 con Arduino

Scarica lo sketch

⬇️ Scarica arduino_matrice_led_sketch.ino

Debug rapido

  • controlla l’orientamento fisico della matrice;
  • non dare per scontata la piedinatura: verifica il modello utilizzato;
  • ricontrolla una per una le otto righe e le otto colonne;
  • verifica le connessioni verso A0–A3 oltre ai pin digitali;
  • se una riga non si accende, controlla sia quella riga sia le colonne comuni;
  • se si accendono punti inattesi, cerca collegamenti invertiti tra righe e colonne;
  • controlla che siano presenti le resistenze da 220 Ω previste dal circuito.

Varianti del progetto

  • testare anche le colonne una alla volta;
  • accendere un singolo LED alla volta;
  • creare una diagonale animata;
  • realizzare un effetto scansione;
  • visualizzare lettere e simboli;
  • usare un MAX7219 per liberare i pin di Arduino.

Cosa devi ricordare

  • Una matrice 8×8 contiene 64 LED organizzati in 8 righe e 8 colonne.
  • Il collegamento diretto richiede 16 linee di controllo.
  • Arduino Uno può usare A0–A3 anche come pin digitali.
  • Il test serve soprattutto a individuare errori di cablaggio.
  • Le resistenze limitano la corrente dei LED.
  • Nel prossimo progetto useremo la matrice per visualizzare lettere e simboli.

Domande frequenti

Perché vengono usati anche A0, A1, A2 e A3?

Su Arduino Uno i pin analogici possono essere usati anche come normali ingressi o uscite digitali. In questo progetto servono perché la matrice richiede 16 linee.

Perché una matrice da 64 LED usa solo 16 terminali?

Perché i LED condividono otto linee di riga e otto di colonna. Ogni LED si trova all’intersezione di una specifica riga e colonna.

Posso usare una matrice 8×8 diversa?

Sì, ma la piedinatura può cambiare. Devi verificare il datasheet o identificare righe e colonne prima di copiare il cablaggio.

È meglio collegarla direttamente o usare MAX7219?

Per imparare il principio della matrice il collegamento diretto è molto istruttivo. Per applicazioni pratiche, soprattutto con più matrici o animazioni, MAX7219 è molto più comodo.