Matrice di pulsanti

 

 

Se hai pochi pin disponibili e molti pulsanti, puoi usare una matrice di pulsanti (4x4, 5x5, ecc.) per ridurre il numero di pin necessari.

📌 Come leggere più pulsanti con una Matrice (Keypad 4x4)

Se hai molti pulsanti ma pochi pin disponibili, puoi organizzarli in una matrice per ridurre il numero di pin necessari.

🔹 Vantaggi della Matrice di Pulsanti

✅ Riduce il numero di pin: con 16 pulsanti servono solo 8 pin!
✅ Funziona con qualsiasi microcontrollore
✅ Facile da gestire con la libreria Keypad.h

 

🔌 Come Funziona la Matrice di Pulsanti

Immagina una tastiera 4x4 con 4 righe e 4 colonne:

 

  • Quando premi un pulsante, colleghi una riga con una colonna.
  • Arduino scansiona le righe e legge le colonne per capire quale pulsante è stato premuto.

📜 Esempio di Codice per Matrice 4x4 con Arduino

Se hai 16 pulsanti, puoi collegarli come una tastiera 4x4 e usare la libreria Keypad.h per leggerli facilmente.

 

🔹 Collegamenti Arduino

Pin Arduino Collegamento
D2 → D5 Righe (R1-R4)
D6 → D9 Colonne (C1-C4)

 

XXX:

#include <Keypad.h>

// Definizione della Matrice 4x4
const byte RIGHE = 4;  // Numero di righe
const byte COLONNE = 4; // Numero di colonne
char tasti[RIGHE][COLONNE] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

// Definizione dei pin per le righe e le colonne
byte pinRighe[RIGHE] = {2, 3, 4, 5};    
byte pinColonne[COLONNE] = {6, 7, 8, 9}; 

// Creazione dell'oggetto Keypad
Keypad tastiera = Keypad(makeKeymap(tasti), pinRighe, pinColonne, RIGHE, COLONNE);

void setup() {
  Serial.begin(9600);
}

void loop() {
  char tasto = tastiera.getKey();  // Legge il tasto premuto
  if (tasto) {  // Se un tasto è stato premuto
    Serial.print("Tasto premuto: ");
    Serial.println(tasto);
  }
}

 

🔍 Varianti e Alternative

 

Puoi usare una matrice più grande (5x5, 6x6, ecc.) usando lo stesso metodo.
Se hai meno pulsanti, puoi usare una matrice più piccola (3x3, 2x4, ecc.).
Vuoi meno cavi? Puoi usare un MCP23017 (I2C) per ridurre i pin di Arduino.

💡 Conclusione

 

🔹 Se hai pochi pulsanti, usa il pull-up interno con pin separati.
🔹 Se hai molti pulsanti, usa una matrice di pulsanti (Keypad) per ridurre i pin.

 

Il numero totale di pulsanti che puoi collegare è dato dalla formula:

Npulsanti=righe×colonneN_{\text{pulsanti}} = \text{righe} \times \text{colonne}

Ecco una tabella con alcuni esempi pratici:

 

Righe Colonne Totale Pulsanti Pin Necessari

2

2

4

4

3

3

9

6

4

4

16

8

5

5

25

10

6

6

36

12

7

7

49

14

8

8

64

16

Notare che il totale dei pulsanti si ottiene moltiplicando le righe per le colonne, mentre il numero dei pin necessari si ottiene sommando le righe alle colonne.

 

Come puoi vedere, aumentando il numero di righe e colonne, il numero totale di pulsanti cresce in modo quadratico, mentre i pin necessari aumentano solo linearmente.

 

 

CopiQui