Keypad
Dans ce tutoriel, je vais vous montrer comment
configurer un clavier sur l'Arduino. Je vais d'abord expliquer comment
l'Arduino détecte les touches, puis je vais vous montrer comment trouver le
brochage de n'importe quel clavier. Comme un exemple simple, je vais vous
montrer comment afficher les touches sur le moniteur série et un écran LCD.
Je vais utiliser un
clavier à membrane matricielle
4X4 dans cet article, mais il y a aussi des diagrammes de code et de câblage
pour les claviers matriciels 3X4.
Les calviers sont un excellent moyen de permettre aux
utilisateurs d’intéragir avec vos projet.vous pouvez les utiliser pour naviguer
dans les menu, entrer des mots de passe et contrôler des jeux et des robots.
Matériels requis
·
Carte
Arduino
·
Keypad
·
LCD
·
fils
de raccordement
Comment
fonctionne les claviers
Les boutons d'un clavier sont disposés
en rangées et en colonnes. Un clavier 3X4 a 4 lignes et 3 colonnes, et un
clavier 4X4 a 4 lignes et 4 colonnes:
Sous chaque clé se trouve un
interrupteur à membrane. Chaque commutateur d'une rangée est connecté aux
autres commutateurs de la rangée par une trace conductrice sous le tampon.
Chaque commutateur dans une colonne est connecté de la même manière - un côté
du commutateur est connecté à tous les autres commutateurs dans cette colonne
par une trace conductrice. Chaque rangée et chaque colonne est portée à une
seule broche, pour un total de 8 broches sur un clavier 4X4:
Appuyer sur un bouton ferme le
commutateur entre une trace de colonne et une trace de ligne, permettant au
courant de circuler entre une broche de colonne et une broche de rangée.
Le schéma d'un clavier 4X4 montre
comment les lignes et les colonnes sont connectées:
L'Arduino détecte quel bouton est
enfoncé en détectant la broche de ligne et de colonne connectée au bouton.
Cela se passe en quatre étapes:
1. Tout d'abord, lorsque vous n'appuyez
sur aucun bouton, toutes les broches de la colonne sont maintenues ÉLEVÉES et
toutes les broches de la rangée sont maintenues LOW:
2. Lorsqu'un bouton est enfoncé, la
goupille de la colonne est tirée vers le bas car le courant de la colonne HAUTE
s'écoule vers la broche de la ligne BAS:
3. L'Arduino sait maintenant dans quelle
colonne se trouve le bouton, donc maintenant il doit juste trouver la rangée
dans laquelle se trouve le bouton. Il le fait en commutant chacune des broches
de la ligne HIGH, et en même temps en lisant toute la colonne broches pour
détecter quelle broche de colonne retourne à HAUT:
4. Lorsque la broche de la colonne
redevient haute, l'Arduino a trouvé la broche de ligne qui est connectée au
bouton:
À partir du diagramme ci-dessus, vous
pouvez voir que la combinaison de la ligne 2 et de la colonne 2 ne peut que
signifier que le bouton numéro 5 a été enfoncé.
Schématique
La disposition des broches pour la
plupart des claviers à membrane ressemblera à ceci:
Suivez les schémas ci-dessous pour
connecter le clavier à un Arduino Uno, selon que vous avez un clavier 3X4 ou
4X4:
On connecte maintenant l’afficheur pour
visualiser le bouton appuyé comme suit :
Code
/ *
DIY Electronics par Bessem BELGHITH
DIY Electronics par Bessem BELGHITH
Imprimer bouton enfoncé d’un
KEYPAD sur un LCD
* /
* /
#include <LiquidCrystal.h>;
#include <Keypad.h>;
const byte ROWS = 4; //
4 lignes
const byte COLS = 3; //3
colonnes
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {10, 9, 8, 7}; //connecter au pins des lignes du keypad
byte colPins[COLS] = {13, 12, 11}; //connecter au pins des colonnes du
keypad
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
Keypad keypad = Keypad( makeKeymap(keys),
rowPins, colPins, ROWS, COLS );
void setup() {
lcd.begin(16,
2);
lcd.print("KEYPAD
TEST ");
}
void loop() {
char key = keypad.getKey();
if (key) {
lcd.setCursor(0, 1);
lcd.print(key);
}
}
Aucun commentaire:
Enregistrer un commentaire