La livraison gratuite de plus de 1000DH pour les particuliers
- Vous ne pouvez ajouter "Carte D’extension Prototype Shield Pour Uno Avec Mini Platine 170 Points" au panier car nous n’en avons plus en stock.
Clavier 4×4 matrice – keypad Arduino
24.00 د.م.
70 en stock
Tutoriel : Utilisation Clavier 4×4 matriciel à membrane – Keypad avec Arduino
Principe de fonctionnement
Le clavier comporte 16 touches, dont 10 numériques (0-9) et 6 touches marquées # * A B C D.
Il est matriciel : au lieu d’avoir 16 fils (1 par touche) et une masse, le multiplexage n’utilise que 8 sorties : 4 lignes et 4 colonnes.
Utilisations
- Téléphonie
- Clavier de digicode
- Clavier d’alarme
- Saisie de données numériques dans un programme Arduino (calibrage…)
- Choix de menu…
Le clavier peut se coller sur un support, il est étanche.
Câblage
Il y a 8 fils en sortie du clavier, 4 lignes et 4 colonnes.
Vu de face, de gauche à droite :
pin 1-4 les quatre lignes, pin 5-8 les quatre colonnes.
On le branche sur les 8 entrées digitales successives de la carte Arduino Uno de D9 à D2
pin1 –> D9
pin 2–> D8
pin 3–> D7
pin 4–> D6
pin 5–> D5
pin 6–> D4
pin 7–> D3
pin 8–> D2
Programmation
Télécharger et installer la Librairie Keypad
Ce programme créé un objet de type Keypad, puis lit les entrées clavier et affiche sur le serial monitor les entrées.
On peut avec cette librairie :
- lire la touche appuyée : char getKey()
- surveiller l’état du clavier : KeypadState getState()
- définir un délai d’appui pour valider la saisie : setHoldTime(unsigned int time)
- paramétrer une pause anti-rebond : setDebounceTime(unsigned int time)
- créer un événement si le clavier est utilisé : addEventListener(keypadEvent)
-
CODE
const byte ROWS = 4; //4 lignes//*************************************************
// Clavier à membranne 16 touches avec Arduino
// Micro-Electroniques Générales au Maroc
// Exemple d'utilsiation du clavier 4 x4 touches
//
//
//*************************************************
#include <Keypad.h>
const byte COLS = 4; //4 colonnes
char keys[ROWS][COLS] = {
{‘1′,’2′,’3′,’A’},
{‘4′,’5′,’6′,’B’},
{‘7′,’8′,’9′,’C’},
{‘*’,’0′,’#’,’D’}
};
//Brancher le clavier sur 2 3 4 5 (colonnes) et 6 7 8 9 (lignes)
byte rowPins[ROWS] = {9, 8, 7, 6}; //Lignes
byte colPins[COLS] = {5, 4, 3, 2}; //Colonnes
// Connections des touches
/*
S1 contact 4 8
S2 contact 3 8
S3 contact 2 8
S4 contact 1 8
S5 contact 4 7
S6 contact 3 7
S9 contact 4 6
S10 contact 3 6
S11 contact 2 6
S12 contact 1 6
S13 contact 4 5
S14 contact 3 5
S15 contact 2 5
S16 contact 1 5
*/
// Initialiser une instance de la classe keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600); //Serial monitor
Serial.println(« Test de clavier 16 touches »);
// Pour activer l’état HOLD
unsigned int time_hold = 4;
keypad.setHoldTime(time_hold);
//Anti rebond
unsigned int time_anti_rebond = 4; //4 ms
keypad.setDebounceTime(time_anti_rebond);
}
void loop(){
char key = keypad.getKey();
if (key != NO_KEY){
Serial.println(key); //Affiche la touche saisie
}
} //Fin de void loop
Références
- How to Connect and Read a Keypad with an Arduino (en anglais)
- Contrôle d’accès avec mot de passe (en anglais)
Pour toutes questions, remarques ou suggestions relatives à ce tutoriel, n’hésitez pas à nous contacter à notre page Facebook. (Même à 23h ou minuit si je ne dors pas je vous répondrai!)
Avis
Il n’y a pas encore d’avis.