Arduino Nano - Clavier 1x4

Dans ce tutoriel, nous apprendrons à utiliser un clavier 1x4 avec un Arduino Nano. Nous aborderons :

Arduino Nano Clavier 1x4

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Keypad 1x4
1×Jumper Wires
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano
1×(Recommended) Breakout Expansion Board for Arduino Nano
1×(Recommended) Power Splitter 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 1x4

Un clavier 1x4 comporte quatre boutons alignés en une rangée. Il est souvent utilisé pour entrer des mots de passe, naviguer dans les menus ou contrôler des appareils.

Brochage

Le clavier 1x4 a cinq broches. Ces broches ne sont pas disposées dans le même ordre que les touches du clavier.

  • Broche 1 : se connecte à la touche 2
  • Broche 2 : se connecte à la touche 1
  • Broche 3 : se connecte à la touche 4
  • Broche 4 : se connecte à la touche 3
  • Broche 5 : est une broche commune connectée à toutes les touches
Clavier 1x4 Brochage
image source: diyables.io

Diagramme de câblage

Arduino Nano Schéma de câblage Clavier 1x4

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano

Chaque touche du clavier 1x4 fonctionne comme un bouton. Cela nous permet d'utiliser la fonction digitalRead() pour vérifier si une touche est enfoncée. Cependant, les touches peuvent parfois rebondir, ce qui signifie qu'une seule pression apparaît comme plusieurs pressions. Pour résoudre ce problème, nous devons désamorcer chaque touche. Désamorcer quatre touches à la fois peut être difficile sans arrêter l'exécution d'autres codes. Heureusement, la bibliothèque ezButton facilite cette tâche.

#include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 5 // The Arduino Nano pin connected to the key 1 #define PIN_KEY_2 4 // The Arduino Nano pin connected to the key 2 #define PIN_KEY_3 7 // The Arduino Nano pin connected to the key 3 #define PIN_KEY_4 6 // The Arduino Nano pin connected to the key 4 ezButton keypad_1x4[] = { ezButton(PIN_KEY_1), ezButton(PIN_KEY_2), ezButton(PIN_KEY_3), ezButton(PIN_KEY_4) }; void setup() { Serial.begin(9600); for (byte i = 0; i < KEY_NUM; i++) { keypad_1x4[i].setDebounceTime(100); // set debounce time to 100 milliseconds } } void loop() { int key = getKeyPressed(); if (key) { Serial.print("The key "); Serial.print(key); Serial.println(" is pressed"); } } int getKeyPressed() { for (byte i = 0; i < KEY_NUM; i++) keypad_1x4[i].loop(); // MUST call the loop() function first for (byte i = 0; i < KEY_NUM; i++) { // get key state after debounce int key_state = keypad_1x4[i].getState(); // the state after debounce if (keypad_1x4[i].isPressed()) return (i + 1); } return 0; }

Étapes rapides

  • Connectez l'Arduino Nano au clavier 1x4.
  • Connectez l'Arduino Nano à l'ordinateur à l'aide d'un câble USB.
  • Ouvrez l'Arduino IDE et choisissez la carte et le port corrects.
  • Cliquez sur l'icône Libraries à gauche de l'Arduino IDE.
  • Tapez ezButton dans la boîte de recherche et localisez la bibliothèque de boutons sur Arduino NanoGetStarted.com.
  • Appuyez sur le bouton Install pour ajouter la bibliothèque ezButton.
Bibliothèque de boutons Arduino Nano
  • Copiez le code et ouvrez-le dans l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino Nano
  • Ouvrez le Moniteur Série
  • Appuyez sur chaque touche du clavier 1x4 individuellement
  • Vérifiez les résultats dans le Moniteur Série
COM6
Send
1 2 3 4
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ 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!