Arduino Button Matrix 4×4: una guida completa

13 apr, 2024

By Pietro

Se stai cercando un modo per controllare più pulsanti con il tuo Arduino, una matrice di pulsanti potrebbe essere proprio ciò di cui hai bisogno. Una matrice di pulsanti ti consente di collegare più pulsanti a un singolo set di pin sul tuo Arduino, risparmiando pin preziosi per altri usi. Una delle configurazioni di matrici di pulsanti più comuni è la matrice 4×4, che ti consente di collegare fino a 16 pulsanti utilizzando solo 8 pin sul tuo Arduino.

Una griglia 4x4 di pulsanti Arduino disposti in una formazione a matrice

Per utilizzare una matrice di pulsanti 4×4 con Arduino, dovrai collegare la matrice ai pin digitali di Arduino e utilizzare una libreria per leggere la pressione dei pulsanti. Sono disponibili diverse librerie a questo scopo, inclusa la libreria Keypad, inclusa nell'IDE di Arduino. Una volta collegata la matrice e installata la libreria, è possibile utilizzare le funzioni della libreria per rilevare quale pulsante è stato premuto.

L'uso di una matrice di pulsanti 4×4 con Arduino apre un'ampia gamma di possibilità per controllare i tuoi progetti. Che tu stia costruendo un controller di gioco, uno strumento musicale o un dispositivo di input personalizzato, una matrice di pulsanti può aiutarti a salvare pin preziosi sul tuo Arduino e semplificare la progettazione del circuito. Con la libreria giusta e un po' di programmazione, puoi facilmente aggiungere un sistema di input versatile e potente al tuo Progetti Arduino.

Comprendere la matrice dei pulsanti 4×4

Una matrice di pulsanti 4x4 collegata a una scheda Arduino, con fili saldati a ciascun pulsante e collegati ai pin corrispondenti sulla scheda

Una matrice di pulsanti è una griglia di pulsanti disposti in righe e colonne. La matrice di pulsanti 4×4 è una configurazione comune che può essere utilizzata con un microcontrollore Arduino per vari progetti. Comprendere come funziona la matrice dei pulsanti è essenziale per progettare e implementare un sistema efficace.

Layout e progettazione della matrice

La matrice dei pulsanti 4×4 è composta da sedici pulsanti disposti in una griglia 4×4. La matrice ha quattro righe e quattro colonne. Ogni pulsante è collegato a una combinazione univoca di una riga e una colonna. Le righe e le colonne sono collegate ai pin di ingresso/uscita digitale del microcontrollore.

Migliori Codice postale del Regno Unito il layout e il design della matrice sono essenziali per garantire che ogni pulsante sia identificato in modo univoco. Le righe e le colonne sono disposte in modo che non ci siano due pulsanti che condividano la stessa combinazione di riga e colonna. Il layout può essere ottimizzato per ridurre al minimo il numero di pin utilizzati per collegare la matrice al microcontrollore.

Principi di funzionamento della matrice di pulsanti

Il funzionamento della matrice dei pulsanti si basa sul principio della scansione. Il microcontrollore esegue la scansione delle righe e delle colonne della matrice per rilevare quale pulsante viene premuto. Il processo di scansione prevede l'impostazione del pin di uscita digitale di ciascuna riga su ALTO e la lettura dei pin di ingresso digitale della colonna. Quando si preme un pulsante, la riga e la colonna corrispondenti vengono cortocircuitate e il microcontrollore rileva un segnale logico BASSO sul pin di ingresso digitale della colonna.

Il processo di scansione viene ripetuto per ogni riga e il microcontrollore rileva quale pulsante viene premuto in base alla combinazione di riga e colonna che produce un valore logico BASSO. Il microcontrollore può quindi eseguire il codice appropriato in base al pulsante premuto.

In conclusione, comprendere il layout e i principi di funzionamento della matrice di pulsanti 4×4 è essenziale per progettare e implementare un sistema efficace. Utilizzando il principio di scansione, il microcontrollore può rilevare quale pulsante viene premuto ed eseguire il codice appropriato.

Integrazione Arduino con matrice di pulsanti 4×4

Una scheda Arduino collegata a una matrice di pulsanti 4x4, con fili disposti ed etichettati in modo ordinato. I pulsanti sono uniformemente distanziati e illuminati

Componenti richiesti

Prima di iniziare a integrare la matrice di pulsanti 4×4 con Arduino, è necessario raccogliere i seguenti componenti:

  • Scheda Arduino (Uno, Nano, Mega, ecc.)
  • Matrice di pulsanti 4×4
  • Cavi jumper
  • breadboard

Guida alla connessione del circuito

Una volta che hai tutti i componenti, puoi iniziare a collegare la matrice di pulsanti 4×4 con la scheda Arduino. Ecco una guida passo passo:

  1. Collega un lato della matrice dei pulsanti ai pin digitali di Arduino (D2-D5) e l'altro lato a terra (GND) utilizzando i cavi jumper.
  2. Collega l'altro lato della matrice dei pulsanti ai pin digitali di Arduino (D6-D9) utilizzando i ponticelli.
  3. Collegare l'alimentazione (5V) alla matrice di pulsanti.
  4. Collega la scheda Arduino al computer utilizzando un cavo USB.
  5. Apri l'IDE di Arduino e crea un nuovo schizzo.
  6. Copia e incolla il seguente codice nello sketch:
#include <Keypad.h>

const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; // Connect to the row pinouts of the keypad
byte colPins[COLS] = {6, 7, 8, 9}; // Connect to the column pinouts of the keypad

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

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

void loop() {
  char key = keypad.getKey();
  if (key) {
    Serial.println(key);
  }
}
  1. Carica lo schizzo sulla scheda Arduino.
  2. Apri il monitor seriale nell'IDE di Arduino per vedere l'output.

Questo è tutto! Hai integrato con successo la matrice di pulsanti 4×4 con Arduino. Ora puoi utilizzare la tastiera per inserire dati e controllare i tuoi progetti Arduino.

Programmazione di Arduino per Button Matrix

Configurazione dell'IDE Arduino

Prima di poter iniziare a programmare il tuo Arduino per una matrice di pulsanti, devi configurare l'IDE Arduino. Codice postale del Regno Unito Arduino IDE è una piattaforma software che ti consente di scrivere e caricare codice sulla tua scheda Arduino. Puoi scaricare Arduino IDE da sito ufficiale di Arduino.

Dopo aver scaricato e installato l'IDE Arduino, è necessario selezionare la scheda e la porta corrette. Per fare questo, vai a Tools menu e selezionare Board e poi scegli la tua scheda Arduino. Successivamente, vai a Tools menu di nuovo e selezionare Port e poi scegli la porta a cui è collegata la tua scheda Arduino.

Scrivere il codice

Per programmare il tuo Arduino per una matrice di pulsanti, devi scrivere un codice che scansioni la matrice e rilevi quando viene premuto un pulsante. Puoi usare il Keypad libreria per semplificare questo processo. IL Keypad La libreria consente di definire la dimensione e il layout della matrice dei pulsanti e fornisce funzioni per la scansione della matrice e il rilevamento della pressione dei pulsanti.

Ecco uno snippet di codice di esempio che esegue la scansione di una matrice di pulsanti 4×4:

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

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

void loop(){
  char key = keypad.getKey();
  if (key != NO_KEY){
    Serial.println(key);
  }
}

In questo esempio, definiamo una matrice di pulsanti 4×4 e specifichiamo le connessioni dei pin per le righe e le colonne della matrice. Creiamo quindi un Keypad oggetto e passare il layout della matrice e le connessioni dei pin. Infine, utilizziamo il getKey() funzione per scansionare la matrice e rilevare la pressione dei pulsanti.

Tecniche di antirimbalzo

Un problema comune con le matrici di pulsanti è che possono produrre più pressioni di pulsanti quando un pulsante viene premuto o rilasciato. Questo è noto come “rimbalzo” e può essere causato dalle proprietà fisiche del pulsante o dalle proprietà elettriche della matrice.

Per evitare il rimbalzo, puoi utilizzare una tecnica chiamata “debouncing”. Il antirimbalzo comporta l'aggiunta di un ritardo tra la pressione dei pulsanti per consentire la stabilizzazione dei segnali elettrici. Puoi usare il Bounce2 libreria per semplificare questo processo. IL Bounce2 la libreria fornisce funzioni per eliminare la pressione e il rilascio dei pulsanti.

Ecco uno snippet di codice di esempio che utilizza il file Bounce2 libreria per antirimbalzare la pressione dei pulsanti:

#include <Keypad.h>
#include <Bounce2.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

Bounce debouncer = Bounce();

void setup(){
  Serial.begin(9600);
  debouncer.attach(0, INPUT_PULLUP);
  debouncer.interval(25);
}

void loop(){
  char key = keypad.getKey();
  if (key != NO_KEY){
    debouncer.update();
    if (debouncer.fell()){
      Serial.println(key);
    }
  }
}

In questo esempio, usiamo il Bounce2 libreria per antirimbalzare la pressione dei pulsanti. Creiamo un Bounce oggetto e collegarlo al pin a cui è collegato il pulsante. Usiamo quindi il fell() funzione per rilevare quando il pulsante viene premuto e rimbalzare il segnale utilizzando interval() funzione.

Contatti

Scrivici e saremo felici di consigliarti.

    Ho letto e compreso il politica sulla riservatezza

    Hai qualche domanda o desideri parlare direttamente con un rappresentante?