Arduino Mega - Clavier 3x4

Bienvenue dans ce tutoriel complet sur le clavier 3x4 avec Arduino Mega ! Dans ce guide détaillé Arduino Mega clavier 3x4, vous découvrirez comment intégrer un clavier à membrane professionnel dans vos projets Arduino Mega pour la saisie sécurisée de mots de passe, l'entrée numérique, et la navigation dans les menus.

Le module clavier 3x4 est un choix populaire pour ajouter des capacités de saisie utilisateur aux systèmes embarqués. Avec 12 boutons tactiles disposés dans une matrice compacte de 3 colonnes par 4 rangées, ce clavier fournit une interface numérique familière similaire aux claviers téléphoniques et aux systèmes de sécurité. Tout au long de ce tutoriel Arduino Mega clavier, nous maîtriserons les techniques essentielles de programmation de clavier :

Ce projet Arduino Mega clavier 3x4 ouvre des possibilités passionnantes pour les systèmes de contrôle d'accès sécurisés, serrures numériques, calculatrices, interfaces pilotées par menu, systèmes de saisie style GAB, et toute application nécessitant une saisie utilisateur numérique ou symbolique. La conception compacte et la technologie fiable des commutateurs à membrane rendent les claviers 3x4 parfaits pour le prototypage et les produits finis !

Arduino Mega Clavier 3x4

Matériel Requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Clavier 3x4
1×Câbles de liaison
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
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

Le clavier 3x4 (également appelé clavier matriciel) est un dispositif d'entrée largement utilisé comportant 12 boutons poussoirs à membrane disposés dans un format de grille avec 3 colonnes et 4 rangées. Cette configuration crée une disposition de clavier numérique standard familière à quiconque a utilisé un téléphone, une calculatrice ou un distributeur automatique.

Chaque bouton du clavier est positionné à l'intersection d'une ligne de rangée et de colonne. La conception matricielle ingénieuse réduit le nombre de broches requises de 12 (une par bouton) à seulement 7 (4 rangées + 3 colonnes). Ce schéma de câblage efficace fonctionne grâce à un processus de balayage : l'Arduino définit systématiquement chaque colonne HIGH ou LOW tout en lisant l'état de chaque rangée. Lorsqu'un bouton est pressé, il crée une connexion électrique entre sa rangée et sa colonne spécifiques, permettant à l'Arduino de déterminer quelle touche a été activée.

La disposition typique du clavier 3x4 inclut :

  • Chiffres 1-9 disposés dans une grille 3x3 (comme un téléphone)
  • Rangée inférieure comportant les symboles *, 0, et #
  • Commutateurs à membrane durables fournissant un retour tactile et un fonctionnement de longue durée
  • Câble ruban flexible avec connecteur 7 broches pour une intégration facile

Cette configuration de clavier est idéale pour les applications nécessitant une saisie numérique, une entrée de commandes simples, ou l'authentification par mot de passe où les touches * et # servent de boutons de fonction spéciaux (typiquement "effacer" et "entrée" respectivement).

Brochage

Comprendre le brochage du clavier 3x4 est essentiel pour un câblage correct. Le clavier utilise une configuration matricielle avec sept broches organisées en deux groupes fonctionnels :

Broches de Rangées (4 broches) :

  • R1 (Rangée 1) : Se connecte aux touches 1, 2, 3
  • R2 (Rangée 2) : Se connecte aux touches 4, 5, 6
  • R3 (Rangée 3) : Se connecte aux touches 7, 8, 9
  • R4 (Rangée 4) : Se connecte aux touches *, 0, #

Broches de Colonnes (3 broches) :

  • C1 (Colonne 1) : Se connecte aux touches 1, 4, 7, *
  • C2 (Colonne 2) : Se connecte aux touches 2, 5, 8, 0
  • C3 (Colonne 3) : Se connecte aux touches 3, 6, 9, #
Brochage Clavier 3x4

Comment Fonctionne le Balayage Matriciel : Chaque touche se situe à l'intersection d'une rangée et d'une colonne. Lorsque vous pressez une touche, elle connecte physiquement cette rangée à cette colonne. L'Arduino détecte quelle touche a été pressée en parcourant les colonnes (définissant chacune HIGH une à la fois) tout en surveillant toutes les rangées. Lorsqu'une touche est pressée, le signal HIGH de la colonne active apparaît sur la rangée correspondante, révélant la position de la touche dans la matrice. Ce balayage se produit si rapidement (des milliers de fois par seconde) qu'il paraît instantané pour les utilisateurs.

Note Importante : Les étiquettes des broches peuvent varier légèrement entre les fabricants. Certains claviers étiquettent les broches de gauche à droite, d'autres de droite à gauche. Vérifiez toujours le brochage spécifique de votre clavier en utilisant la fiche technique ou en testant avec un multimètre.

Schéma de Câblage

Examinons maintenant comment connecter correctement votre clavier 3x4 à l'Arduino Mega. Ce câblage utilise sept broches numériques pour interfacer avec la matrice de rangées et colonnes du clavier :

Schéma de Câblage Arduino Mega Clavier 3x4

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

Résumé des Connexions :

  • Clavier R1 (Rangée 1) → Broche Numérique Arduino Mega (configurée dans le code)
  • Clavier R2 (Rangée 2) → Broche Numérique Arduino Mega (configurée dans le code)
  • Clavier R3 (Rangée 3) → Broche Numérique Arduino Mega (configurée dans le code)
  • Clavier R4 (Rangée 4) → Broche Numérique Arduino Mega (configurée dans le code)
  • Clavier C1 (Colonne 1) → Broche Numérique Arduino Mega (configurée dans le code)
  • Clavier C2 (Colonne 2) → Broche Numérique Arduino Mega (configurée dans le code)
  • Clavier C3 (Colonne 3) → Broche Numérique Arduino Mega (configurée dans le code)

Aucune Alimentation Requise : Contrairement à de nombreux capteurs, le clavier n'a pas besoin de connexions VCC ou GND séparées—il fonctionne entièrement via les broches d'E/S numériques. L'Arduino Mega a beaucoup de broches numériques disponibles, vous pouvez donc choisir n'importe quelles assignations de broches pratiques et les définir dans votre code.

Code Arduino Mega

#include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; // four rows const int 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] = {14, 15, 16, 17}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {18, 19, 20}; //connect to the column pinouts of the keypad DIYables_Keypad keypad = DIYables_Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); void setup() { Serial.begin(9600); delay(1000); Serial.println("Keypad 3x4 example"); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Étapes Rapides

Suivez ces étapes détaillées attentivement pour faire fonctionner votre clavier :

Étape 1 - Connexion Physique : Connectez l'Arduino Mega au clavier 3x4 en utilisant le schéma de câblage montré ci-dessus. Assurez-vous que chacune des 7 broches du clavier se connecte à la bonne broche numérique Arduino.

Étape 2 - Connexion USB : Connectez la carte Arduino Mega à votre ordinateur en utilisant un câble USB. Attendez que votre système d'exploitation reconnaisse le périphérique.

Étape 3 - Lancer l'IDE Arduino : Ouvrez le logiciel IDE Arduino sur votre ordinateur. Si vous ne l'avez pas encore installé, téléchargez-le depuis le site officiel Arduino.

Étape 4 - Configuration de la Carte : Naviguez vers Outils > Carte et sélectionnez "Arduino Mega or Mega 2560". Puis allez dans Outils > Port et sélectionnez le port COM approprié.

Étape 5 - Ouvrir le Gestionnaire de Bibliothèques : Cliquez sur l'icône Bibliothèques (icône de livre) dans la barre latérale gauche de l'IDE Arduino pour accéder au Gestionnaire de Bibliothèques.

Étape 6 - Rechercher la Bibliothèque : Dans la boîte de recherche en haut, tapez "DIYables_Keypad" et localisez la bibliothèque clavier créée par DIYables.io. Cette bibliothèque simplifie l'interfaçage du clavier et gère automatiquement tout le balayage matriciel.

Étape 7 - Installer la Bibliothèque : Cliquez sur le bouton Installer pour ajouter la bibliothèque DIYables_Keypad à votre IDE Arduino. Attendez que l'installation se termine.

Bibliothèque clavier Arduino Mega

Étape 8 - Charger le Code : Copiez l'exemple de code fourni ci-dessus et ouvrez-le dans l'éditeur IDE Arduino.

Étape 9 - Téléverser le Programme : Cliquez sur le bouton Téléverser (icône flèche droite) dans l'IDE Arduino pour compiler et transférer le code vers votre Arduino Mega. Attendez le message "Done uploading".

Étape 10 - Ouvrir le Moniteur Série : Ouvrez le Moniteur Série (Outils > Moniteur Série ou Ctrl+Shift+M) pour voir la sortie du clavier.

Étape 11 - Tester le Clavier : Pressez diverses touches du clavier pour tester la fonctionnalité.

Étape 12 - Voir les Résultats : Vérifiez le Moniteur Série pour voir quelles touches sont détectées.

COM6
Send
3 6 9 4 * # 1 2 5 8 0 7
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Conseil de pro : Si certaines touches ne répondent pas ou si plusieurs touches s'enregistrent pour une seule pression, vérifiez vos connexions de câblage. Le problème le plus courant est l'inversion des connexions rangée/colonne ou des câbles de liaison desserrés. Vérifiez également que vos définitions de broches dans le code correspondent à votre câblage physique.

Clavier et Mot de Passe

L'une des applications les plus populaires pour les claviers est les systèmes de saisie de mots de passe sécurisés. Pensez aux serrures de portes, coffres-forts, panneaux de sécurité, et systèmes de contrôle d'accès—ils reposent tous sur l'authentification par mot de passe basée sur clavier. Explorons comment implémenter un système de mot de passe robuste utilisant notre clavier 3x4.

Comprendre la Logique de Saisie de Mot de Passe

Lors de la conception d'un système de mot de passe par clavier, nous devons désigner des touches de fonction spéciales qui contrôlent le processus de saisie de mot de passe. Dans une disposition de clavier 3x4 standard, nous assignons typiquement :

  • La touche "*" (astérisque) : Fonctionne comme le bouton EFFACER ou RESET. Presser cette touche efface la saisie de mot de passe actuelle, permettant à l'utilisateur de recommencer s'il fait une erreur. Ceci est crucial pour un fonctionnement convivial.
  • La touche "#" (dièse/carré) : Fonctionne comme le bouton ENTRÉE ou SOUMETTRE. Presser cette touche dit au système "j'ai fini de taper, veuillez vérifier mon mot de passe." Cela déclenche la logique de comparaison de mot de passe.
  • Toutes les autres touches (0-9) : Elles forment les caractères réels du mot de passe. Chaque pression ajoute ce chiffre au tampon de mot de passe en cours de construction en mémoire.

Flux de Saisie de Mot de Passe

Voici comment fonctionne le processus de saisie de mot de passe étape par étape :

Lorsqu'une touche est pressée :

  1. Si la touche est un chiffre (0-9) : Ajouter ce caractère à la chaîne de mot de passe actuelle en cours de saisie. Cela construit le mot de passe un caractère à la fois pendant que l'utilisateur tape.
  2. Si la touche est "#" (ENTRÉE) :
    • Comparer la chaîne de mot de passe saisie contre le mot de passe correct prédéfini stocké dans le programme
    • Si elles correspondent exactement, accorder l'accès (afficher "mot de passe correct" ou déclencher un relais/serrure de porte)
    • Si elles ne correspondent pas, refuser l'accès (afficher "mot de passe incorrect, réessayez")
    • Effacer le tampon de mot de passe saisi pour préparer la tentative suivante
  • Si la touche est "*" (EFFACER) :
    • Immédiatement effacer le tampon de mot de passe actuel
    • Réinitialiser le processus de saisie pour que l'utilisateur puisse recommencer à taper
    • Ceci est utile quand l'utilisateur réalise qu'il a fait une erreur en cours de saisie

    Considérations de Sécurité

    Pour une sécurité renforcée, considérez ces meilleures pratiques :

    • N'affichez pas les caractères réels du mot de passe sur le Moniteur Série dans le code de production
    • Implémentez un mécanisme de verrouillage après plusieurs tentatives échouées
    • Utilisez des délais d'attente pour auto-effacer les mots de passe si la saisie prend trop de temps
    • Stockez les mots de passe dans l'EEPROM ou utilisez le hachage pour une meilleure sécurité

    Code Clavier - Mot de Passe

    Cet exemple démontre un système complet de vérification de mot de passe. Le code définit un mot de passe secret et compare la saisie utilisateur contre celui-ci, fournissant un retour sur l'octroi ou le refus d'accès.

    /* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-keypad-3x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; //four rows const int 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] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3}; //connect to the column pinouts of the keypad DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "1234"; // change your password here String input_password; void setup(){ Serial.begin(9600); Serial.println("Keypad 3x4 password"); 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 } } }

    Tester le Système de Mot de Passe

    Étape 1 - Téléverser le Code : Téléversez le code de vérification de mot de passe montré ci-dessus vers votre Arduino Mega.

    Étape 2 - Ouvrir le Moniteur Série : Ouvrez le Moniteur Série pour voir les résultats de vérification de mot de passe.

    Étape 3 - Tester un Mot de Passe Incorrect : Tapez les touches "123456" sur le clavier (un mot de passe incorrect), puis pressez la touche "#" pour soumettre.

    Étape 4 - Tester le Mot de Passe Correct : Tapez les touches "1234" sur le clavier (le mot de passe correct défini dans le code), puis pressez la touche "#" pour soumettre.

    Étape 5 - Tester la Fonction Effacer : Tapez quelques chiffres, pressez "*" pour effacer, puis tapez un mot de passe et pressez "#" pour vérifier que la fonction d'effacement fonctionne.

    Étape 6 - Voir les Résultats : Vérifiez le Moniteur Série pour voir les messages de vérification de mot de passe.

    COM6
    Send
    password is incorrect, try again password is correct password is incorrect, try again password is correct password is incorrect, try again
    Autoscroll Show timestamp
    Clear output
    9600 baud  
    Newline  

    Comprendre le Code : Dans cet exemple, le mot de passe correct est typiquement défini comme "1234" (vérifiez le code pour le mot de passe exact). Quand vous tapez "123456" et pressez #, le système détecte que "123456" ≠ "1234" et affiche "password is incorrect." Quand vous tapez "1234" et pressez #, les chaînes correspondent exactement, et le système affiche "password is correct."

    Idées d'Application : Ce système de vérification de mot de passe peut être adapté pour :

    • Serrures électroniques de portes avec contrôle par relais
    • Systèmes d'accès pour coffres-forts ou armoires
    • Contrôles d'activation/désactivation de dispositifs
    • Systèmes multi-utilisateurs avec différents niveaux de mot de passe
    • Panneaux de sécurité basés sur PIN pour la domotique

    Connaissances Supplémentaires

    Prêt à faire passer vos projets de clavier au niveau supérieur ? Explorez ces tutoriels avancés qui s'appuient sur les fondamentaux que vous avez appris :

    Ces ressources fournissent des exemples de code complets et des explications détaillées pour vous aider à créer des applications basées sur clavier plus sophistiquées !

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