Arduino - Clavier
Le clavier est largement utilisé dans de nombreux appareils tels que les serrures de porte, les distributeurs automatiques, les calculatrices...
Dans ce tutoriel, nous apprendrons :
- Comment utiliser un clavier 3x4 et un clavier 4x4 avec Arduino.
- Comment lire une valeur à partir d'un clavier 3x4 et d'un clavier 4x4 avec Arduino.
- Comment vérifier le mot de passe saisi à partir du clavier.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du clavier
Le clavier est un ensemble de boutons disposés en rangées et en colonnes (appelé matrice). Chaque bouton est appelé une touche.
Le clavier présente différents types. Deux types populaires pour les projets de bricolage sont le clavier 3x4 (12 touches) et le clavier 4x4 (16 touches).
Brochage
Les broches du clavier sont divisées en deux groupes : rangée et colonne.
Le clavier 3x4 possède 7 broches : 4 broches de rangée (R1, R2, R3, R4) et 3 broches de colonne (C1, C2, C3).
Le clavier 4x4 a 8 broches : 4 broches de rangée (R1, R2, R3, R4) et 4 broches de colonne (C1, C2, C3, C4).
Comment ça marche
Le processus de détection de l'appui sur une touche est appelé balayage du clavier.
Il est appelé « balayage » car il vérifie une touche après l'autre.
Les broches en rangée sont connectées aux broches de sortie de l'Arduino.
Les broches de colonne sont connectées aux broches d'entrée de l'Arduino (INPUT_PULLUP, dans cet état, la valeur de la broche d'entrée est HIGH si la touche n'est pas pressée).
Pour chaque ligne :
- Met tous les broches de ligne à ÉLEVÉ.
- Met seulement la broche de ligne courante à BAS.
- Lit l'état de chaque colonne.
- Si une broche de colonne est ÉLEVÉE ⇒ la touche à (ligne, colonne) n'est pas pressée.
- Si une broche de colonne est BASSE ⇒ la touche à (ligne, colonne) est pressée.
- Répète le processus ci-dessus pour les broches de ligne suivantes.
※ NOTE THAT:
La méthode ci-dessus est l'une des méthodes pour scanner un clavier. Nous pouvons inverser tous les HIGH en LOW et tous les LOW en HIGH pour scanner le clavier.
Pourquoi le clavier est-il agencé et connecté sous forme de matrice ? Cela rend le processus de balayage compliqué. Pourquoi ne pas utiliser chaque touche comme un bouton indépendant, alors que l'état de la touche pourrait simplement être déterminé en lisant l'état d'un bouton ?
Comme nous le savons, un bouton indépendant nécessite une broche d'Arduino et la masse. Prenons l'exemple d'un clavier 4x4. Si nous considérons chaque touche comme un bouton indépendant, cela nécessite 16 broches Arduino pour 16 touches plus la broche de masse. Si nous organisons les touches connectées sous forme de matrice, nous n'avons besoin que de 8 broches d'Arduino, ainsi nous pouvons économiser des broches d'Arduino. En bref, la réponse est : pour économiser les broches d'Arduino.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Comment programmer un clavier numérique
Grâce à la bibliothèque Keypad, utiliser un clavier avec Arduino est un jeu d'enfant, que vous compreniez ou non le fonctionnement du clavier.
Code Arduino
Clavier 3x4
Clavier 4x4
Étapes rapides
- Naviguez vers l'icône Libraries sur la barre gauche de l'Arduino IDE.
- Recherchez "keypad", puis trouvez la bibliothèque keypad de Mark Stanley, Alexander Brevig.
- Cliquez sur le bouton Install pour installer la bibliothèque keypad.
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino
- Ouvrez le moniteur série
- Appuyez sur quelques touches du clavier
- Voir le résultat dans le moniteur série
Clavier et mot de passe
Une application populaire du clavier est la saisie de mot de passe. Dans cette application, nous spécifions deux touches spéciales :
- Une touche pour commencer/relancer la saisie du mot de passe. Par exemple, la touche "*"
- Une touche pour terminer la saisie du mot de passe. Par exemple, la touche "#"
Le mot de passe sera une chaîne contenant les touches restantes, à l'exception de deux touches spéciales sélectionnées.
Lorsqu'une touche est pressée.
- Si la touche n'est ni "*" ni "#", ajoutez la touche à la chaîne de mot de passe saisie par l'utilisateur.
- Si la touche est "#", comparez la chaîne de mot de passe saisie par l'utilisateur avec le mot de passe pour déterminer si le mot de passe saisi est correct ou non, puis effacez la chaîne de mot de passe saisie par l'utilisateur.
- Si la touche est "*", effacez la chaîne de mot de passe saisie par l'utilisateur.
Clavier - Code de mot de passe
- Exécutez le code ci-dessus
- Ouvrez le moniteur série
- Appuyez sur les touches "123456" puis sur "#"
- Appuyez sur les touches "1234" puis sur "#"
- Consultez le résultat sur le moniteur série
Vidéo
Connaissances supplémentaires
Mettez-vous au défi
- Afficher la touche pressée du clavier sur l'écran LCD. Indice : Consultez Arduino - LCD
- Réaliser une serrure de porte avec protection par mot de passe en utilisant le clavier.