ESP32 C3 Super Mini - Clavier 4x4

Un clavier 4x4 offre 16 boutons à votre ESP32 C3 Super Mini sur un seul pavé fin. C'est le moyen le plus simple de permettre à un utilisateur de taper un nombre ou un code PIN. Ce tutoriel sur le clavier 4x4 avec l'ESP32 C3 Super Mini vous montre le câblage, le code et une vérification de mot de passe fonctionnelle.

Dans ce tutoriel, vous apprendrez :

ESP32 C3 Super Mini - Clavier 4x4

Matériel Requis

1×ESP32 C3 Super Mini
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 4x4
1×Fils de connexion

Ou vous pouvez acheter les kits suivants:

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 4x4

Un clavier 4x4 est un pavé de saisie à membrane avec 16 boutons disposés en 4 lignes et 4 colonnes.

Caractéristiques Principales :

  • 16 touches : 0-9, A, B, C, D, étoile et dièse.
  • Seulement 8 fils : 4 broches de ligne et 4 broches de colonne.
  • Pas de broche d'alimentation : Le clavier ne prend ni VCC ni GND.
  • Fin et plat : Un dos autocollant vous permet de le coller sur un boîtier.
  • Compatible 3,3V : Il fonctionne directement avec les niveaux logiques de l'ESP32 C3 Super Mini.

Spécifications Techniques :

  • Disposition : 4 lignes x 4 colonnes.
  • Broches : 8 broches (R1, R2, R3, R4, C1, C2, C3, C4).
  • Type de contact : Simple interrupteur momentané sous chaque touche.
  • Tension de fonctionnement : Définie par la carte. 3,3V sur l'ESP32 C3 Super Mini.
  • Consommation de courant : Presque nulle, il n'a donc pas besoin d'alimentation supplémentaire.

Comment Fonctionne le Balayage des Touches

Le clavier n'a pas de puce à l'intérieur, l'ESP32 C3 Super Mini trouve donc la touche par balayage.

  • Un interrupteur par touche : Chaque touche relie un fil de ligne à un fil de colonne.
  • Ligne par ligne : La carte met une ligne à LOW à la fois.
  • Lecture des colonnes : Elle lit ensuite les 4 broches de colonne.
  • Correspondance : Une colonne à LOW indique à la carte quelle touche est enfoncée.
  • Rapide : Le balayage complet prend moins d'une milliseconde, il semble donc instantané.
  • La bibliothèque s'en charge : La bibliothèque DIYables_Keypad effectue ce balayage pour vous.

Brochage

Le clavier 4x4 possède 8 broches réparties en deux groupes.

  • Broche R1 : Ligne 1, la rangée de touches du haut (1, 2, 3, A).
  • Broche R2 : Ligne 2, la deuxième rangée de touches (4, 5, 6, B).
  • Broche R3 : Ligne 3, la troisième rangée de touches (7, 8, 9, C).
  • Broche R4 : Ligne 4, la rangée de touches du bas (*, 0, #, D).
  • Broche C1 : Colonne 1, la colonne de gauche (1, 4, 7, *).
  • Broche C2 : Colonne 2, la deuxième colonne (2, 5, 8, 0).
  • Broche C3 : Colonne 3, la troisième colonne (3, 6, 9, #).
  • Broche C4 : Colonne 4, la colonne de droite (A, B, C, D).
Brochage du Clavier 4x4

WARNING

Un clavier 4x4 nécessite 8 broches GPIO, soit presque toutes les broches libres de l'ESP32 C3 Super Mini. Après l'avoir câblé, il ne vous reste presque plus de broche pour un écran, un relais ou un capteur.

Si vous avez besoin de broches pour d'autres composants, utilisez plutôt l'une de ces options :

  • Un clavier I2C, qui n'a besoin que de SDA GPIO10 et SCL GPIO8.
  • Un expandeur d'E/S PCF8574 entre le clavier et la carte, également sur SDA GPIO10 et SCL GPIO8.

Les deux options pilotent les mêmes 16 touches avec seulement 2 fils.

Schéma de Câblage

Connectez les 4 broches de ligne et les 4 broches de colonne du clavier à 8 broches GPIO libres de l'ESP32 C3 Super Mini.

Schéma de Câblage ESP32 C3 Super Mini Clavier 4x4

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

Broche du Clavier Broche de l'ESP32 C3 Super Mini
R1 GPIO2
R2 GPIO3
R3 GPIO4
R4 GPIO5
C1 GPIO6
C2 GPIO7
C3 GPIO10
C4 GPIO1
  • Remarque : Le clavier n'a ni fil VCC ni fil GND. Les 8 broches vont toutes à des broches GPIO.
  • Remarque : N'utilisez jamais GPIO8 (LED intégrée et broche de démarrage), GPIO9 (broche de démarrage), GPIO20 ou GPIO21 (UART du Moniteur Série).
  • Remarque : Le clavier est compatible 3,3V. Ne connectez aucune broche au 5V.
  • Remarque : Enfoncez complètement chaque fil de liaison dans la breadboard. Un fil mal branché est la première cause des appuis de touche manqués.
  • Remarque : Tenez le clavier avec les touches vers le haut et comptez les fils de la nappe à partir de la gauche. Le premier est R1 et le dernier est C4.

Code ESP32 C3 Super Mini - Clavier 4x4

Ce premier sketch affiche simplement chaque touche que vous appuyez.

Ce Que Fait Ce Code :

  • Crée une carte des 16 touches dans un tableau 4x4.
  • Indique à la bibliothèque quelles broches GPIO correspondent aux lignes et aux colonnes.
  • Balaye le clavier encore et encore dans la boucle.
  • Affiche la touche appuyée sur le Moniteur Série à 115200 bauds.
  • N'affiche rien lorsqu'aucune touche n'est enfoncée.
/* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-keypad-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {2, 3, 4, 5}; // The ESP32 C3 SuperMini pin GPIO2, GPIO3, GPIO4, GPIO5 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 7, 10, 1}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10, GPIO1 connect to the column pins DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(115200); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Étapes Rapides

  • Nouveau sur l'ESP32 C3 Super Mini ? Suivez d'abord notre tutoriel ESP32 C3 Super Mini - Premiers pas pour configurer votre environnement de développement.
  • Câblez les composants : Suivez le schéma de câblage ci-dessus pour connecter le clavier 4x4 à l'ESP32 C3 Super Mini.
  • Connectez la carte : Branchez l'ESP32 C3 Super Mini à votre PC avec un câble USB Type-C.
  • Ouvrez l'IDE : Lancez le logiciel Arduino IDE.
  • Sélectionnez la carte : Assurez-vous que ESP32 C3 Super Mini est sélectionnée dans Outils > Type de carte.
  • Sélectionnez le port : Choisissez le port COM de votre carte dans Outils > Port.
  • Ouvrez le Gestionnaire de Bibliothèques : Cliquez sur l'icône Bibliothèques dans la barre de gauche de l'Arduino IDE.
  • Recherchez la bibliothèque : Tapez "DIYables_Keypad" dans la zone de recherche.
  • Installez la bibliothèque : Trouvez la bibliothèque keypad de DIYables.io, puis cliquez sur Installer.
  • Search for DIYables_Keypad created by DIYables.io and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Library Manager
Type:
All
Topic:
All
DIYables_Keypad by DIYables.io
The library is designed for Arduino, ESP32, ESP8266... to use with keypad such as 3x4, 4x4 keypad. It also works with Arduino Uno R4 WiFi/Minima More info
1.0.1
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32C3 Dev Module on COM15
1
  • Copiez le code : Copiez le code du clavier ci-dessus et collez-le dans l'Arduino IDE.
  • Téléversez le code : Cliquez sur le bouton Téléverser pour envoyer le sketch vers l'ESP32 C3 Super Mini.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Testez-le : Appuyez sur quelques touches du clavier, une à la fois.
  • Vérifiez la sortie : Chaque touche que vous appuyez s'affiche sur sa propre ligne.
  • Astuce Pro : Si la mauvaise touche est affichée, inversez les broches de ligne et les broches de colonne dans le code. Les nappes des claviers ne sont pas câblées de la même façon par tous les fabricants.

Sortie du Moniteur Série

Appuyez sur les touches 1, 4, A et # l'une après l'autre.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
1 4 A #
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Clavier et Mot de Passe

Le clavier devient un pavé PIN lorsque vous utilisez deux touches comme touches de contrôle.

  • Touche étoile : La touche * efface ce que vous avez tapé pour que vous puissiez recommencer.
  • Touche dièse : La touche # termine la saisie et la compare au mot de passe enregistré.
  • Toute autre touche : Est ajoutée à la fin du mot de passe tapé.
  • Résultat : Le sketch affiche ACCESS GRANTED ou ACCESS DENIED, puis efface la saisie.
  • Votre code : Placez votre propre action, comme l'ouverture d'une serrure, là où le code indique DO YOUR WORK HERE.

Code ESP32 C3 Super Mini - Mot de Passe avec Clavier

Ce deuxième sketch transforme le clavier de l'ESP32 C3 Super Mini en vérificateur de mot de passe.

Ce Que Fait Ce Code :

  • Garde un mot de passe dans le sketch, défini à 7890A par défaut.
  • Collecte chaque touche appuyée dans une chaîne de saisie.
  • Efface la saisie lorsque vous appuyez sur la touche *.
  • Compare la saisie avec le mot de passe lorsque vous appuyez sur la touche #.
  • Affiche si le mot de passe est correct, puis efface la saisie.
/* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-keypad-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {2, 3, 4, 5}; // The ESP32 C3 SuperMini pin GPIO2, GPIO3, GPIO4, GPIO5 connect to the row pins byte pin_column[COLUMN_NUM] = {6, 7, 10, 1}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10, GPIO1 connect to the column pins DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890A"; // change your password here String input_password; void setup() { Serial.begin(115200); 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("The password is correct, ACCESS GRANTED!"); // DO YOUR WORK HERE } else { Serial.println("The password is incorrect, ACCESS DENIED!"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }

Étapes Rapides (Exemple de Mot de Passe)

  • Téléversez le code : Envoyez le sketch du mot de passe vers l'ESP32 C3 Super Mini.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Tapez un mauvais code : Appuyez sur 1234BC puis sur #.
  • Tapez le bon code : Appuyez sur 7890A puis sur #.
  • Vérifiez la sortie : Lisez les lignes de résultat sur le Moniteur Série.
  • Astuce Pro : Appuyez sur * à tout moment si vous faites une erreur de saisie. Cela efface la saisie sans message de mauvais mot de passe.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
1 2 3 4 B C # The password is incorrect, ACCESS DENIED! 7 8 9 0 A # The password is correct, ACCESS GRANTED!
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ Note:

Le mot de passe est stocké en texte clair dans le sketch. C'est suffisant pour apprendre. Pour une vraie serrure, stockez-le dans la mémoire flash NVS afin de pouvoir le modifier sans nouveau téléversement.

Explication du Code Ligne par Ligne

Le code ESP32 C3 Super Mini ci-dessus contient une explication ligne par ligne. Veuillez lire les commentaires dans le code !

Idées d'Applications/de Projets

Un clavier est la partie de saisie de presque tous les petits projets de sécurité ou de menu.

  • Serrure de Porte : Ouvrez une ESP32 C3 Super Mini - Serrure Solénoïde lorsque le code PIN est correct.
  • Coffre-Fort : Demandez une séquence de touches plus longue avant qu'un boîtier puisse être ouvert.
  • Clavier d'Alarme : Armez et désarmez une alarme avec un code.
  • Journal d'Accès : Enregistrez chaque appui de touche avec un horodatage sur une carte SD.
  • Calculatrice Simple : Utilisez 0-9 pour les nombres et A-D pour plus, moins, multiplier et diviser.
  • Contrôle de Menu : Choisissez un élément de menu sur un écran LCD en tapant son numéro.

Défiez-vous

Essayez ces petits projets pour vous exercer avec le clavier 4x4 et l'ESP32 C3 Super Mini.

  • Facile : Remplacez le mot de passe par votre propre nombre à 6 chiffres et testez-le.
  • Facile : Faites clignoter une fois la LED intégrée sur GPIO8 à chaque appui de touche.
  • Moyen : Affichez chaque touche sur un écran LCD I2C au lieu du Moniteur Série, en utilisant SDA GPIO10 et SCL GPIO8.
  • Moyen : Bloquez le clavier pendant 30 secondes après 3 essais erronés.
  • Avancé : Enregistrez le mot de passe dans la mémoire flash NVS pour qu'il survive à une coupure de courant, et ajoutez une séquence de touches pour le modifier.
  • Avancé : Remplacez le câblage direct par un expandeur d'E/S PCF8574 pour que le clavier n'ait besoin que de 2 broches.

Références du Langage

Commentaires

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