ESP32 S3 - Clavier 1x4

Ce guide vous accompagne dans la connexion et la programmation d'un clavier 1x4 avec un ESP32 S3. Vous apprendrez comment chaque touche correspond à une broche GPIO et comment utiliser la bibliothèque ezButton pour gérer proprement l'anti-rebond sans perturber les autres parties de votre croquis.

Ce que vous allez construire :

  1. Un circuit de clavier 1x4 câblé à l'ESP32 S3 avec des fils de connexion.
  2. Un code qui détecte quelle touche est appuyée et affiche son étiquette dans le moniteur série.
  3. Un lecteur de clavier avec anti-rebond qui élimine les fausses lectures d'appuis multiples.
  4. Une base que vous pouvez étendre pour la saisie de mot de passe, la navigation dans un menu, ou le contrôle d'un appareil.

Matériel nécessaire

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Clavier 1x4
1×Fils de connexion
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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 contient quatre boutons à membrane disposés sur une seule rangée, ce qui en fait un dispositif de saisie compact pour les projets embarqués. Il est couramment utilisé pour permettre aux utilisateurs de saisir des données comme des mots de passe, de naviguer dans des menus simples, ou de déclencher des actions sur un appareil sans clavier complet.

Spécifications clés

Le clavier 1x4 se connecte via cinq broches et fonctionne à des niveaux logiques de 3,3 V, ce qui correspond parfaitement à la tension GPIO de l'ESP32 S3. Chaque touche agit comme un interrupteur momentané entre sa broche dédiée et la broche commune, donc aucune résistance de tirage (pull-up ou pull-down) externe n'est nécessaire lorsque les résistances de tirage internes du microcontrôleur sont utilisées.

Brochage

Le clavier 1x4 expose cinq broches dont l'ordre ne correspond pas aux étiquettes des touches imprimées sur la membrane.

  1. Broche 1 : liée à la touche 2
  2. Broche 2 : liée à la touche 1
  3. Broche 3 : liée à la touche 4
  4. Broche 4 : liée à la touche 3
  5. Broche 5 : connectée à toutes les touches, c'est la broche commune
Keypad 1x4 Pinout
image source: diyables.io

Schéma de câblage

Connectez chacune des quatre broches de touches du clavier à une broche GPIO dédiée de l'ESP32 S3, et câblez la broche commune (broche 5) à GND. Les résistances de tirage internes de l'ESP32 S3 maintiendront chaque GPIO à HIGH jusqu'à ce qu'une touche soit appuyée.

Notes de sécurité

Connectez toujours la broche commune du clavier à GND et activez les résistances de tirage internes dans le code afin que les broches GPIO ne soient jamais laissées flottantes. Évitez de faire passer les fils du clavier près de pistes à fort courant ou de bobines de relais, car le bruit électrique peut provoquer de fausses lectures de touches.

| Clavier 1x4 | ESP32 S3 |

|:---|:---|

| Broche 1 (touche 2) | GPIO5 |

| Broche 2 (touche 1) | GPIO4 |

| Broche 3 (touche 4) | GPIO7 |

| Broche 4 (touche 3) | GPIO6 |

| Broche 5 (commune) | GND |

ESP32 S3 Keypad 1x4 Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code ESP32 S3

Chaque touche du clavier 1x4 se comporte comme un bouton momentané, donc l'ESP32 S3 la lit avec digitalRead(). Cependant, les touches physiques présentent un rebond de contact qui peut faire enregistrer un seul appui comme plusieurs événements, donc l'anti-rebond est essentiel. Le code suivant utilise la bibliothèque ezButton pour gérer automatiquement l'anti-rebond des quatre touches, rendant le croquis propre et facile à étendre.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-keypad-1x4 */ #include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 4 // The ESP32-S3 pin GPIO4 connected to the key 1 #define PIN_KEY_2 5 // The ESP32-S3 pin GPIO5 connected to the key 2 #define PIN_KEY_3 6 // The ESP32-S3 pin GPIO6 connected to the key 3 #define PIN_KEY_4 7 // The ESP32-S3 pin GPIO7 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

  1. Nouveau sur l'ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez le clavier à l'ESP32 S3 comme indiqué sur le schéma de câblage ci-dessus.
  3. Connectez la carte ESP32 S3 à votre PC via un câble USB Type-C.
  4. Ouvrez l'Arduino IDE sur votre PC.
  5. Sélectionnez la bonne carte ESP32 S3 (par exemple ESP32S3 Dev Module) et le bon port COM.
  6. Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  7. Recherchez "ezButton", puis trouvez la bibliothèque de bouton de ArduinoGetStarted.com.
  8. Cliquez sur le bouton Install pour installer la bibliothèque ezButton.
  • Search for ezButton created by ArduinoGetStarted.com and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
ezButton by ArduinoGetStarted.com
Button library supports debounce, pressed/released events and the press counting. It is easy to use with multiple buttons. The library can be used for push-button, momentary switches, toggle switch, magnetic contact switch (door sensor)... It is designed for not only beginners but also experienced users. More info
1.0.6
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  2. Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code vers l'ESP32 S3.
How to upload ESP32 S3 code on Arduino IDE
  1. Ouvrez le moniteur série sur l'Arduino IDE.
  2. Appuyez sur chaque touche du clavier 1x4 et vérifiez la sortie dans le moniteur série.

Astuce : Si une touche enregistre plusieurs appuis pour un seul appui, augmentez l'intervalle d'anti-rebond dans les réglages d'ezButton pour filtrer le rebond mécanique propre à la membrane de votre clavier.

Sortie du moniteur série

Ouvrez le moniteur série à 9600 bauds pour observer quelles touches l'ESP32 S3 détecte lorsque vous les appuyez. Les relevés suivants montrent une session typique avec horodatage :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-03-10 09:14:01] 1 [2026-03-10 09:14:03] 2 [2026-03-10 09:14:05] 3 [2026-03-10 09:14:07] 4
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Applications

Le clavier 1x4 offre à l'ESP32 S3 une interface de saisie simple mais polyvalente adaptée à un large éventail de projets embarqués. Voici quelques applications courantes :

  1. Saisie de mot de passe : Utilisez quatre touches pour saisir un code PIN numérique qui déverrouille une serrure de porte ou un coffre contrôlé par relais.
  2. Navigation dans un menu : Attribuez aux touches les actions haut, bas, sélectionner, et retour pour naviguer dans le menu d'un écran OLED.
  3. Sélecteur de mode d'appareil : Basculez entre des modes de fonctionnement comme manuel, automatique, minuterie, et arrêt avec un seul appui de touche.
  4. Contrôle d'alarme : Armez et désarmez un système d'alarme à capteur de mouvement en appuyant sur une combinaison de touches désignée.
  5. Compteur de score : Incrémentez ou décrémentez un compteur de score affiché sur un écran LCD pendant un jeu de société.

Vidéo

Regardez la vidéo pas à pas pour ce projet ESP32 S3 ci-dessous.

Défis

Expérimenter au-delà du simple lecteur de clavier est la meilleure façon d'approfondir votre compréhension de la gestion des entrées sur l'ESP32 S3. Essayez ces défis pour gagner en confiance avec des techniques plus avancées :

  1. Débutant : Modifiez le code afin que chaque touche bascule une LED différente connectée à une broche GPIO de l'ESP32 S3.
  2. Intermédiaire : Implémentez un système de code PIN à 4 chiffres qui déverrouille un relais quand la séquence correcte est saisie et affiche "Access Granted" ou "Access Denied" dans le moniteur série.
  3. Avancé : Combinez le clavier 1x4 avec un écran OLED pour construire un menu entièrement navigable qui permet à l'utilisateur de sélectionner et d'ajuster les réglages de l'appareil sans ordinateur.

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !