Piloter un module clavier 4x4 avec une carte Arduino UNO
Dans ce tutoriel, nous expliquons le fonctionnement d'un module clavier 4x4 avec une carte compatible Arduino UNO.
Les claviers numériques ou « keypads » sont parfaits pour la saisie de données ou la navigation dans les menus dans le cadre de projets tels que les systèmes de sécurité, les contrôles d'accès, les systèmes embarqués, les systèmes domotiques, les télécommandes et les robots. Les possibilités d'utilisation sont illimitées, car les touches ne doivent pas nécessairement afficher les caractères imprimés, mais peuvent être librement programmées à l'aide d'un Arduino ou d'un Raspberry Pi. Les claviers à 4x3 ou 4x4 touches, qui ressemblent à un clavier de téléphone classique, sont les plus populaires.
Composant nécessaire
- Carte compatible Arduino UNO R3
- Module clavier 4x4
- Buzzer
- Résistance 220 Ohm
- 11 câbles jumper
- Plaque d'essai
Fonctionnement
Le clavier numérique est composé de 16 boutons disposés en matrice, c'est-à-dire que toutes les touches d'une colonne sont connectées à une entrée et toutes les touches d'une ligne à une autre.
Lorsqu'une touche est enfoncée, l'entrée correspondante de la ligne est connectée à celle de la colonne, fermant ainsi le circuit électrique. L'avantage de cette configuration est que 16 touches peuvent être contrôlées avec seulement 8 entrées du microcontrôleur.
Schéma électronique
| Clavier | |
| C1 | Pin 9 |
| C2 | Pin 8 |
| C3 | Pin 7 |
| C4 | Pin 6 |
| L1 | Pin 5 |
| L2 | Pin 4 |
| L3 | Pin 3 |
| L4 | Pin 2 |
Schéma de connexion
Code pour Arduino
Pour utiliser ce code exemple, la bibliothèque Keypad.h est nécessaire.
Avec cet exemple, vous pouvez appuyer sur une touche et lire la touche pressée dans le moniteur série de l'IDE Arduino. La touche 1 allume la LED et la touche 2 active le buzzer.
Afficher / masquer le code
#include <Keypad.h>
int led = 10;
int buzzer = 11;
const byte ROWS = 4; // Définit quatre lignes
const byte COLS = 4; // Définit quatre colonnes
char keys[ROWS][COLS] = {
{'4','8','C','G'},
{'3','7','B','F'},
{'2','6','A','E'},
{'1','5','9','D'}
};
byte rowPins[ROWS] = {9,8,7,6}; // Broches pour les lignes
byte colPins[COLS] = {5,4,3,2}; // Broches pour les colonnes
// Initialiser la bibliothèque Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
// Insérer ici la détection des touches et la logique de contrôle
}