Ce tutoriel fait partie de: Claviers numériques
Toutes les vidéos sur les claviers numériques sont répertoriées ici.
Utilisation d'un clavier matriciel 4x3 avec Arduino
Dans ce tutoriel, nous allons explorer comment utiliser un clavier 4x3 avec un Arduino pour lire les appuis sur les touches. Ce clavier peut être utilisé dans divers projets, comme la création d'une interface d'entrée simple pour un système de sécurité ou toute application nécessitant une saisie utilisateur. À la fin de ce guide, vous serez capable de lire les appuis sur les touches et de répondre à des touches spécifiques.

Assurez-vous de consulter la vidéo d'accompagnement pour une démonstration visuelle du câblage et de l'implémentation du code (dans la vidéo à 00:00).
Le matériel expliqué
Les principaux composants de ce projet comprennent le clavier 4x3 et la carte Arduino. Le clavier se compose d'une matrice de boutons disposés en 4 rangées et 3 colonnes. Lorsqu'un bouton est appuyé, il relie une rangée spécifique à une colonne spécifique, ce qui permet à l'Arduino d'identifier quel bouton a été appuyé.
La carte Arduino fait office de contrôleur central qui lit les entrées du clavier matriciel. Elle utilise la bibliothèque Keypad, qui simplifie la gestion du clavier matriciel et facilite la détection des appuis sur les touches.
Détails de la fiche technique
| Fabricant | Divers |
|---|---|
| Numéro de pièce | Clavier 4x3 |
| Tension logique | 5 V |
| Courant de fonctionnement | ≤ 20 mA |
| Durée de vie de la clé | ≥ 1,000,000 pressions |
| Paquet | Clavier matriciel |
- Connectez correctement les broches du clavier aux broches numériques de l'Arduino.
- Utilisez des résistances pull-up ou pull-down si nécessaire, selon votre configuration.
- Assurez-vous que la bibliothèque Keypad est incluse dans votre IDE Arduino.
- Gérez le rebond des appuis sur les touches par logiciel pour éviter des lectures multiples.
- Testez chaque touche pour confirmer le câblage et le bon fonctionnement.
Instructions de câblage

Pour câbler le clavier 4x3 à l'Arduino, vous relierez les broches de ligne et de colonne du clavier aux broches numériques de l'Arduino. Connectez les broches de ligne (généralement 4 broches) aux broches2,3,4, et5sur l'Arduino. Les broches des colonnes (généralement 3 broches) doivent être connectées aux broches6,7, et8.
Assurez-vous de connecter la broche de masse du clavier à la masse de l'Arduino et la broche d'alimentation à la sortie 5V. Cette configuration permettra à l'Arduino de lire l'état de chaque touche lorsqu'elle est pressée, en utilisant la bibliothèque Keypad pour gérer le balayage de la matrice.
Exemples de code et guide pas à pas
Le code suivant initialise le clavier matriciel et affiche la touche appuyée sur le moniteur série. Les valeurs des touches sont stockées dans un tableau de caractères.
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','#'}
};LekeysLe tableau définit la disposition du clavier, qui correspond à l'agencement physique des touches. Chaque caractère représente un bouton du clavier.

Ensuite, nous configurons le clavier dans lesetup()fonction :
void setup(){
Serial.begin(9600);
Serial.println("Robojax 4x3 keypad");
}Ce segment initialise la communication série à 9600 bauds, ce qui nous permet de voir les appuis sur les touches dans le moniteur série.
Enfin, la boucle vérifie les appuis sur les touches et réagit en conséquence :
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
if (key =='4'){
Serial.println("Key 4 is pressed");
}
}Ici, le programme vérifie si une touche est enfoncée en utilisantkeypad.getKey(). Si une touche est enfoncée, il affiche la valeur de la touche. De plus, si la touche '4' est enfoncée, un message spécifique est affiché.
Démonstration / À quoi s'attendre
Une fois la configuration terminée, l'appui sur n'importe quelle touche du clavier doit afficher le caractère correspondant dans le moniteur série. Si la touche '4' est enfoncée, un message spécial sera affiché indiquant l'activation de cette touche. Cette fonctionnalité vous permet de vous appuyer sur cette base pour créer des applications plus complexes.
Faites attention aux entrées flottantes qui peuvent entraîner un comportement erratique. Assurez-vous que toutes les connexions sont bien sécurisées et testez chaque touche pour confirmer son bon fonctionnement (dans la vidéo à 00:00).
Ce tutoriel fait partie de: Claviers numériques
- Code Arduino et vidéo pour un clavier à quatre touches
- Code Arduino et vidéo : clavier noir matriciel 4x4
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Comment utiliser un clavier matriciel souple 4x4 avec Arduino
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
- Shield clavier LCD 1602 : Code de base
/*
* 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");
}
}
Ce dont vous pourriez avoir besoin
-
Amazon
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Fichier Fritzing
-
Clavier matriciel à membrane 4x3
Membrane Matrix Keypad 4x3.fzpz0.01 MB
Autres fichiers
-
Bibliothèque de clavier LCD
robojax-1602_LCD_keypad.zip