Arduino Nano - Clavier

Ce tutoriel vous explique comment connecter un Arduino Nano à un clavier 3x4 et 4x4 et comment le programmer. Les tutoriels fournissent également la méthode et le code Arduino pour vérifier le mot de passe saisi sur le clavier par les utilisateurs.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Keypad 3x4 and 4x4 Kit
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du clavier

Clavier

Un clavier est composé de touches disposées en matrice. Chaque bouton individuel est appelé une touche. Les claviers existent dans différents styles. Deux des plus couramment utilisés pour les projets DIY sont le clavier 3x4 (12 touches) et le clavier 4x4 (16 touches).

Le schéma de brochage du clavier numérique

Les broches sont divisées en deux catégories : rangées et colonnes.

  • Un clavier 3x4 possède sept broches : quatre d'entre elles sont des broches de ligne, étiquetées R1, R2, R3 et R4. Les trois autres sont des broches de colonne, étiquetées C1, C2 et C3.
  • Un clavier 4x4 possède 8 broches : quatre d'entre elles sont des broches de ligne, étiquetées R1, R2, R3 et R4. Les quatre autres sont des broches de colonne, étiquetées C1, C2, C3 et C4.
Disposition des broches du clavier

Diagramme de câblage

Schéma de câblage du clavier Arduino Nano

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano

Code Arduino Nano pour clavier 3x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Code Arduino Nano pour clavier 4x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; Keypad keypad = Keypad(makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Étapes rapides

  • Cliquez sur l'icône Libraries dans la barre gauche de l'IDE Arduino.
  • Recherchez "keypad" et localisez la bibliothèque keypad créée par Mark Stanley et Alexander Brevig.
  • Ensuite, appuyez sur le bouton Install pour compléter l'installation de la bibliothèque keypad.
Bibliothèque de clavier pour Arduino Nano
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload de l'IDE Arduino pour compiler et téléverser le code vers l'Arduino Nano.
  • Ouvrez le moniteur série.
  • Appuyez sur quelques touches du clavier.
  • Vérifiez le résultat dans le moniteur série.
COM6
Send
3 6 9 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Clavier et mot de passe

Une utilisation courante du clavier est la saisie de mot de passe. Deux touches spéciales sont utilisées à cet effet :

  • Une touche pour initier ou recommencer la saisie du mot de passe, telle que la touche "*"
  • Une touche pour terminer la saisie du mot de passe, telle que la touche "#"

Le mot de passe sera une chaîne composée de toutes les touches, à l'exception de deux touches spéciales spécifiques.

Lorsqu'une touche est pressée :

  • Si la touche n'est pas "*" ou "#", ajoutez la touche à la chaîne de mot de passe saisie par l'utilisateur.
  • Si la touche est "#", comparez la chaîne saisie par l'utilisateur avec les mots de passe autorisés pour déterminer si le mot de passe saisi est correct, puis effacez la chaîne de mot de passe de l'utilisateur.
  • Si la touche est "*", effacez la chaîne de mot de passe saisie par l'utilisateur.

Clavier - Code de mot de passe

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-nano/arduino-nano-keypad */ #include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); const String password = "1234"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 33, change if needed } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // clear input password } else if (key == '#') { if (password == input_password) { Serial.println("password is correct"); // DO YOUR WORK HERE } else { Serial.println("password is incorrect, try again"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }

Étapes rapides

  • Exécutez le code ci-dessus.
  • Ouvrez le moniteur série.
  • Appuyez sur les touches "123456" suivies de la touche "#".
  • Appuyez sur les touches "1234" suivies de la touche "#".
  • Consultez le résultat sur le moniteur série.
COM6
Send
password is incorrect, try again password is correct
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!