ESP32 C3 Super Mini - Clavier 3x4

Un clavier 3x4 offre 12 boutons à votre ESP32 C3 Super Mini mais n'utilise que 7 fils. C'est le moyen le moins cher de saisir des chiffres et des codes PIN dans un projet. Ce tutoriel sur le clavier avec l'ESP32 C3 Super Mini montre le câblage et le code en petites étapes simples.

Dans ce tutoriel, vous apprendrez :

ESP32 C3 Super Mini - Clavier 3x4

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

Un clavier 3x4 est un fin pavé à membrane avec 12 touches disposées en 4 lignes et 3 colonnes.

Caractéristiques Principales :

  • 12 touches : Les chiffres 0-9 plus les touches "*" et "#".
  • Seulement 7 broches : 4 broches de ligne et 3 broches de colonne.
  • Pas de broche d'alimentation : Le clavier n'a besoin ni de VCC ni de GND.
  • Balayage matriciel : La carte vérifie une ligne à la fois pour trouver la touche appuyée.
  • Très fin : La membrane plate se colle sur n'importe quelle surface plane.

Spécifications Techniques :

  • Disposition : 4 lignes x 3 colonnes.
  • Broches : 7 (R1, R2, R3, R4, C1, C2, C3).
  • Niveau logique : Fonctionne en 3,3V, il est donc sans danger pour l'ESP32 C3 Super Mini.
  • Courant : Presque nul. Les broches GPIO le pilotent directement.
  • Type de contact : Un simple interrupteur ouvert ou fermé sous chaque touche.

Comment Ça Fonctionne

Chaque touche est un petit interrupteur qui relie un fil de ligne à un fil de colonne.

  • Au repos : Aucune ligne n'est reliée à une colonne.
  • Touche appuyée : La ligne et la colonne de cette touche se touchent.
  • Balayage : L'ESP32 C3 Super Mini met une ligne à LOW, puis lit les 3 broches de colonne.
  • Résultat : La ligne qui était à LOW plus la colonne qui lit LOW vous indiquent la touche exacte.
  • Exemple : Appuyer sur "5" relie la ligne R2 à la colonne C2.

La bibliothèque du clavier fait tout ce balayage pour vous. Vous appelez seulement la fonction getKey().

Brochage

Le clavier 3x4 possède 7 broches réparties en deux groupes.

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

Schéma de Câblage

Connectez les 4 broches de ligne et les 3 broches de colonne à 7 broches GPIO libres de l'ESP32 C3 Super Mini.

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

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
  • Remarque : Utilisez exactement ces broches et cet ordre. Le code ci-dessous utilise les mêmes broches.
  • Remarque : Le clavier n'a ni broche VCC ni broche GND. Seuls 7 fils de signal sont nécessaires.
  • Remarque : N'utilisez pas GPIO8 (LED intégrée), GPIO9 (broche de démarrage), GPIO20 ou GPIO21 (UART du Moniteur Série).
  • Remarque : Enfoncez fermement chaque fil de liaison. Un fil mal branché fait cesser de fonctionner toute une ligne ou une colonne.

※ Note:

Un clavier 3x4 nécessite 7 broches, et l'ESP32 C3 Super Mini a très peu de broches libres. Ce câblage utilise presque toutes les broches libres de la carte. Après cela, il ne reste que GPIO0 et GPIO1, alors planifiez à l'avance si votre projet a aussi besoin d'un écran, d'un relais ou d'un capteur.

WARNING

L'ESP32 C3 Super Mini fonctionne uniquement en logique 3,3V. Ne connectez jamais une broche du clavier au 5V. Du 5V sur une broche GPIO peut endommager la carte.

Code ESP32 C3 Super Mini - Lire une Touche

Ce premier sketch affiche la touche appuyée sur le Moniteur Série.

Ce Que Fait Ce Code :

  • Définit GPIO2, GPIO3, GPIO4 et GPIO5 comme les 4 broches de ligne.
  • Définit GPIO6, GPIO7 et GPIO10 comme les 3 broches de colonne.
  • Balaye le clavier en arrière-plan avec la bibliothèque DIYables_Keypad.
  • Lit une touche par boucle avec la fonction getKey().
  • Affiche cette touche sur le Moniteur Série à 115200 bauds.
/* * 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-3x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10 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); delay(1000); Serial.println("Keypad 3x4 example"); } 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 3x4 à 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.
  • 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
  • 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.
  • Copiez le code : Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  • Téléversez le code : Cliquez sur le bouton Téléverser dans l'Arduino IDE.
  • 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 : Regardez chaque touche apparaître sur le Moniteur Série.
  • Astuce Pro : Si la mauvaise touche est affichée, inversez les fils de ligne et les fils de colonne. Les nappes des claviers ne sont pas toujours dans le même ordre.
∞
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
Keypad 3x4 example 1 5 9 0 * #
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

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 !

Clavier et Mot de Passe

Un clavier est surtout utile lorsqu'il vérifie un mot de passe, comme une serrure de porte ou un pavé PIN.

  • Touche normale (0-9) : Ajoute la touche au mot de passe que l'utilisateur tape.
  • Touche "*" : Efface le mot de passe tapé et recommence.
  • Touche "#" : Compare le mot de passe tapé avec celui enregistré, puis l'efface.
  • Correspondance : Affiche ACCESS GRANTED, puis exécute votre propre action.
  • Pas de correspondance : Affiche ACCESS DENIED.

Code ESP32 C3 Super Mini - Mot de Passe avec Clavier

Ce deuxième sketch transforme le clavier en un simple pavé PIN.

Ce Que Fait Ce Code :

  • Enregistre un mot de passe dans le sketch. Celui par défaut est 7890.
  • Construit le mot de passe tapé touche par touche dans une String.
  • Efface le mot de passe tapé lorsque vous appuyez sur "*".
  • Vérifie le mot de passe tapé lorsque vous appuyez sur "#".
  • Affiche ACCESS GRANTED ou ACCESS DENIED sur le Moniteur Série.
/* * 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-3x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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}; // The ESP32 C3 SuperMini pin GPIO6, GPIO7, GPIO10 connect to the column pins DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // 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 votre ESP32 C3 Super Mini.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Essayez un mauvais code : Appuyez sur 1, 2, 3, 4, 5, 6 puis sur "#".
  • Essayez le bon code : Appuyez sur 7, 8, 9, 0 puis sur "#".
  • Vérifiez la sortie : Lisez le 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 la vérifier.
∞
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 5 6 # The password is incorrect, ACCESS DENIED! 7 8 9 0 # The password is correct, ACCESS GRANTED!
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

Idées d'Applications/de Projets

Un clavier 3x4 est la partie de saisie de nombreux petits projets de sécurité et de contrôle.

  • Serrure de Porte : Ouvrez un relais ou une serrure solénoïde lorsque le bon code PIN est tapé.
  • Coffre-Fort : Demandez une longue séquence de touches avant que le couvercle puisse s'ouvrir.
  • Clavier d'Alarme : Armez et désarmez une alarme avec un code court.
  • Journal d'Accès : Enregistrez chaque appui de touche avec un horodatage sur une carte SD.
  • Calculatrice Simple : Utilisez 0-9 avec "*" et "#" comme touches d'opération.
  • Saisie de Menu : Tapez un numéro de menu pour choisir un élément sur un écran LCD.

Défiez-vous

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

  • Facile : Remplacez le mot de passe enregistré par votre propre code à 6 chiffres et testez-le.
  • Facile : Faites clignoter une fois la LED intégrée sur GPIO8 à chaque appui de touche.
  • Moyen : Affichez chaque chiffre tapé sous forme d'étoile sur le Moniteur Série pour cacher le code PIN.
  • Moyen : Bloquez la saisie pendant 30 secondes après trois essais erronés.
  • Avancé : Enregistrez le mot de passe dans la mémoire flash pour qu'il survive à une coupure de courant, et ajoutez une séquence de touches pour le modifier.
  • Avancé : Pilotez un relais et une serrure solénoïde pour que le bon code PIN ouvre vraiment une porte.

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 !