Cerca codice

Utilizzo di un tastierino 4x3 con Arduino

Utilizzo di un tastierino 4x3 con Arduino

In questo tutorial esploreremo come utilizzare un tastierino 4x3 con un Arduino per leggere le pressioni dei tasti. Questo tastierino può essere impiegato in vari progetti, ad esempio per creare una semplice interfaccia di input per un sistema di sicurezza o qualsiasi applicazione che richieda l'immissione da parte dell'utente. Alla fine di questa guida sarai in grado di rilevare le pressioni dei tasti e rispondere a tasti specifici.

Assicurati di controllare il video allegato per una dimostrazione visiva del cablaggio e dell'implementazione del codice (nel video a 00:00).

L'hardware spiegato

I componenti principali per questo progetto includono il tastierino 4x3 e la scheda Arduino. Il tastierino è composto da una matrice di pulsanti disposti in 4 righe e 3 colonne. Quando viene premuto un pulsante, collega una riga specifica a una colonna specifica, permettendo all'Arduino di identificare quale pulsante è stato premuto.

La scheda Arduino funge da controllore centrale che legge gli ingressi del tastierino. Utilizza la libreria Keypad, che semplifica la gestione del tastierino a matrice e rende più semplice rilevare la pressione dei tasti.

Dettagli della scheda tecnica

ProduttoreDiversi
Numero di parteTastierino 4x3
tensione logica5 V
Corrente di esercizio≤ 20 mA
Periodo di validità della chiave≥ 1,000,000 pressioni
PacchettoTastiera matriciale

  • Collega correttamente i pin del tastierino ai pin digitali dell'Arduino.
  • Usa resistori pull-up o pull-down se necessario, a seconda della tua configurazione.
  • Assicurati che la libreria Keypad sia inclusa nel tuo IDE di Arduino.
  • Gestisci il rimbalzo delle pressioni dei tasti nel software per evitare letture multiple.
  • Verifica ogni tasto per confermare il corretto cablaggio e il funzionamento.

Istruzioni di cablaggio

Arduino_wiring_4x3_keypad

Per cablare il tastierino 4x3 all'Arduino, collegherai i pin delle righe e delle colonne del tastierino ai pin digitali dell'Arduino. Collega i pin delle righe (tipicamente 4 pin) ai pin2,3,4, e5sull'Arduino. I pin delle colonne (tipicamente 3 pin) dovrebbero essere collegati ai pin6,7, e8.

Assicurati di collegare il pin di massa del keypad alla massa dell'Arduino e il pin di alimentazione all'uscita 5V. Questa configurazione consentirà all'Arduino di leggere lo stato di ogni tasto quando viene premuto, utilizzando la libreria Keypad per gestire la scansione della matrice.

Esempi di codice e guida passo-passo

Il codice seguente inizializza il tastierino e stampa il tasto premuto sul monitor seriale. I valori dei tasti sono memorizzati in un array di caratteri.

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

IlkeysL'array definisce il layout del tastierino, che corrisponde alla disposizione fisica dei tasti. Ogni carattere rappresenta un pulsante sul tastierino.

Successivamente, configuriamo il tastierino nelsetup()funzione:

void setup(){
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}

Questo segmento inizializza la comunicazione seriale a 9600 baud, permettendoci di visualizzare i tasti premuti nel monitor seriale.

Infine, il ciclo controlla la pressione dei tasti e risponde di conseguenza:

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Key 4 is pressed");
  } 
}

Qui il programma verifica se è premuto un tasto qualsiasi usandokeypad.getKey(). Se viene premuto un tasto, stampa il valore del tasto. Inoltre, se viene premuto il tasto '4', viene visualizzato un messaggio specifico.

Dimostrazione / Cosa aspettarsi

Quando la configurazione è completa, premendo un qualsiasi tasto sul tastierino il carattere corrispondente dovrebbe essere visualizzato nel monitor seriale. Se viene premuto il tasto '4', verrà stampato un messaggio speciale che indica l'attivazione di quel tasto. Questa funzionalità ti permette di sviluppare applicazioni più complesse partendo da questa base.

Fai attenzione agli ingressi fluttuanti che possono portare a comportamenti erratici. Assicurati che tutte le connessioni siano sicure e testa ogni tasto per confermarne il corretto funzionamento (nel video a 00:00).

Immagini

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
Lingua: C++
/*
 * Library taken from: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x3 keypad.
 * Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
 * 
 * Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
 * Date: July 11, 2018 at 19:56 in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 * Watch video instructions for this code: 
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad

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

void setup(){
  // Robojax 4x3 keypad test
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}
  
void loop(){
  // Robojax 4x3 keypad test
  char key = keypad.getKey();
    // Just print the pressed key
   if (key){
    Serial.println(key);
  } 
   // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // If key matches what you are looking for
    Serial.println("Key 4 is pressed");
  } 

}

Cose di cui potresti avere bisogno

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

File Fritzing

Altri file