Arduino Mega - Clavier 4x4

Bienvenue dans ce tutoriel complet Arduino Mega clavier 4x4 ! Dans ce guide détaillé Arduino Mega clavier 4x4, vous découvrirez comment intégrer un clavier matriciel professionnel à 16 boutons dans vos projets Arduino Mega pour une saisie utilisateur polyvalente, une saisie de mot de passe sécurisée, et des interfaces de contrôle avancées.

Le module clavier 4x4 est le choix ultime pour les projets nécessitant des capacités de saisie alphanumérique. Avec 16 boutons à membrane tactile disposés dans une matrice de 4 colonnes par 4 lignes, ce clavier fournit à la fois des chiffres numériques (0-9) et des touches de lettres (A-D) ou des symboles spéciaux, le rendant significativement plus polyvalent que la variante 3x4. Tout au long de ce tutoriel Arduino Mega clavier, nous maîtriserons des techniques d'intégration complètes de clavier :

Ce projet Arduino Mega clavier 4x4 déverrouille de puissantes possibilités pour le contrôle d'accès sécurisé avec mots de passe complexes, systèmes de saisie hexadécimale, interfaces pilotées par menu avec options multiples, applications calculatrice, terminaux de saisie de données, et tout projet nécessitant une saisie utilisateur complète au-delà des simples nombres. La configuration 4x4 est le standard professionnel pour les systèmes de sécurité commerciaux, les panneaux de contrôle industriels, et les interfaces utilisateur embarquées !

Arduino Mega Clavier 4x4

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Clavier 4x4
1×Fils 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 4x4

Le clavier 4x4 (également appelé clavier matriciel à 16 touches) est un dispositif de saisie de qualité professionnelle comportant 16 boutons-poussoirs à membrane disposés dans une configuration de grille 4x4 symétrique. Cette disposition étendue offre des options de saisie complètes incluant tous les chiffres numériques plus des touches de lettres ou des symboles spéciaux, en faisant le choix préféré pour les applications nécessitant une saisie alphanumérique.

Chaque bouton sur le clavier se situe à l'intersection d'une ligne de rangée et de colonne dans la matrice. La conception intelligente de matrice 4x4 réduit les broches requises de 16 (une par bouton) à seulement 8 (4 rangées + 4 colonnes)—une réduction de 50% qui économise de précieuses broches Arduino tout en maintenant une fonctionnalité complète. Cette architecture efficace fonctionne par balayage systématique : l'Arduino parcourt les colonnes, activant chacune séquentiellement tout en surveillant tous les états de rangées. Lorsqu'un bouton est pressé, il crée une connexion électrique entre sa rangée et sa colonne spécifiques, permettant au microcontrôleur d'identifier précisément quelle touche a été activée.

La disposition standard du clavier 4x4 inclut typiquement :

  • Nombres 0-9 fournissant une capacité de saisie numérique complète
  • Lettres A, B, C, D (ou symboles comme *, #, et autres selon la variante) pour une fonctionnalité étendue
  • Commutateurs à membrane durables avec retour tactile pour un fonctionnement fiable
  • Câble ruban flexible avec connecteur 8 broches pour une intégration simple
  • Brochage standard compatible avec la plupart des bibliothèques de clavier

Cette configuration de clavier est idéale pour les applications avancées nécessitant des mots de passe alphanumériques, une saisie hexadécimale (0-9, A-F), une sélection de menu avec options multiples, des fonctions de calculatrice scientifique, ou tout système où les touches de lettres fournissent des commandes supplémentaires précieuses. Les touches A, B, C, D sont parfaites pour implémenter des boutons de fonction comme "Accepter", "Retour", "Annuler" et "Supprimer".

Brochage

Comprendre le brochage du clavier 4x4 est crucial pour un câblage et une fonctionnalité appropriés. Le clavier utilise une configuration matricielle avec huit broches organisées en deux groupes fonctionnels :

Broches de rangées (4 broches) :

  • R1 (Rangée 1) : Connecte aux touches 1, 2, 3, A
  • R2 (Rangée 2) : Connecte aux touches 4, 5, 6, B
  • R3 (Rangée 3) : Connecte aux touches 7, 8, 9, C
  • R4 (Rangée 4) : Connecte aux touches *, 0, #, D

Broches de colonnes (4 broches) :

  • C1 (Colonne 1) : Connecte aux touches 1, 4, 7, *
  • C2 (Colonne 2) : Connecte aux touches 2, 5, 8, 0
  • C3 (Colonne 3) : Connecte aux touches 3, 6, 9, #
  • C4 (Colonne 4) : Connecte aux touches A, B, C, D
Brochage Clavier 4x4

Comment fonctionne la matrice : La matrice 4x4 fonctionne sur le même principe que la 3x4, mais avec une colonne supplémentaire fournissant 4 touches supplémentaires. Chaque touche connecte une rangée spécifique à une colonne spécifique lorsqu'elle est pressée. L'Arduino scanne la matrice en définissant chaque colonne HIGH une à la fois (tandis que les autres sont LOW), puis lit tous les états de rangées. Lorsqu'une touche est pressée pendant le cycle de balayage actif d'une colonne, le signal HIGH de cette colonne apparaît sur la rangée correspondante, révélant la position exacte de la touche. Ce processus de balayage se produit des milliers de fois par seconde, rendant la détection des touches apparemment instantanée.

Note sur la disposition des touches : La disposition standard montrée utilise les nombres 0-9, les lettres A-D, et les symboles * et #. Cependant, certaines variantes de clavier 4x4 peuvent avoir des arrangements de symboles différents. Vérifiez toujours la disposition de votre clavier spécifique en testant ou en consultant sa documentation.

Schéma de câblage

Maintenant examinons comment connecter correctement votre clavier 4x4 à l'Arduino Mega. Cette configuration de câblage utilise huit broches numériques pour interfacer avec la matrice complète de rangées et colonnes du clavier :

Schéma de câblage Arduino Mega Clavier 4x4

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

Résumé des connexions :

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

Liberté de sélection des broches : La beauté de l'Arduino Mega est son abondance de broches d'E/S numériques. Vous pouvez connecter ces 8 broches de clavier à n'importe quelles broches numériques disponibles sur votre Mega, puis les configurer dans votre code. Assurez-vous simplement que les broches que vous choisissez n'entrent pas en conflit avec d'autres composants dans votre projet. Aucune connexion d'alimentation externe (VCC/GND) n'est requise—le clavier fonctionne entièrement à travers les broches d'E/S numériques.

Code Arduino Mega

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

Étapes rapides

Suivez ces étapes détaillées soigneusement pour rendre votre clavier 4x4 opérationnel :

Étape 1 - Connexion physique : Connectez le clavier 4x4 à l'Arduino Mega en suivant le schéma de câblage montré ci-dessus. Assurez-vous que toutes les 8 broches du clavier sont solidement connectées aux bonnes broches numériques Arduino.

Étape 2 - Connexion USB : Connectez la carte Arduino Mega à votre ordinateur à l'aide d'un câble USB. Attendez que votre système d'exploitation reconnaisse et installe tous les pilotes nécessaires.

É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 la dernière version 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é associé à votre Arduino.

Étape 5 - Ouvrir le gestionnaire de bibliothèques : Cliquez sur l'icône Bibliothèques (icône livre) dans la barre latérale gauche de l'IDE Arduino pour ouvrir le 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 de clavier créée par DIYables.io. Cette bibliothèque gère automatiquement tout le balayage matriciel complexe.

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

Bibliothèque clavier Arduino Mega

Étape 8 - Charger le code : Copiez le code d'exemple fourni ci-dessus et ouvrez-le dans la fenêtre d'édition de l'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 "Téléversement terminé" pour confirmer le succès.

Étape 10 - Ouvrir le moniteur série : Ouvrez le moniteur série (Outils > Moniteur série ou Ctrl+Shift+M) pour voir les saisies du clavier en temps réel.

Étape 11 - Tester toutes les touches : Appuyez sur diverses touches du clavier, incluant les nombres, lettres (A, B, C, D), et symboles (*, #) pour vérifier le fonctionnement complet.

Étape 12 - Voir les résultats : Vérifiez le moniteur série pour confirmer que chaque pression de touche est correctement détectée et affichée.

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

Conseil de pro : Si certaines touches ne répondent pas ou si vous obtenez des caractères inattendus, vérifiez que vos connexions de câblage correspondent aux définitions de broches dans votre code. Les problèmes les plus courants sont les connexions rangée/colonne inversées ou les inadéquations de définition de broches. Testez systématiquement : appuyez sur chaque touche dans l'ordre (1, 2, 3, A, 4, 5, 6, B...) pour identifier les erreurs de câblage par motif.

Clavier et mot de passe

La saisie de mot de passe est l'une des applications les plus communes et précieuses pour les claviers 4x4. Les touches de lettres supplémentaires (A, B, C, D) permettent des mots de passe alphanumériques plus complexes, améliorant significativement la sécurité comparé aux systèmes numériques seulement. Explorons comment implémenter un système de vérification de mot de passe robuste.

Désignation des touches de fonction spéciales

Lors de l'implémentation de saisie de mot de passe sur un clavier 4x4, nous assignons des touches spécifiques comme fonctions de contrôle tandis que les touches restantes forment les caractères du mot de passe. Une configuration typique utilise :

  • La touche "*" (astérisque) : Fonctionne comme bouton EFFACER ou RESET. Appuyer sur cette touche efface immédiatement le tampon de saisie de mot de passe actuel, permettant aux utilisateurs de recommencer à zéro s'ils font une erreur. Ceci est essentiel pour une bonne expérience utilisateur.
  • La touche "#" (dièse/pound) : Fonctionne comme bouton ENTRÉE ou SOUMETTRE. Appuyer sur cette touche signale "J'ai fini de saisir mon mot de passe, veuillez le vérifier." Ceci déclenche la logique de comparaison et validation du mot de passe.
  • Toutes les autres touches (0-9, A-D) : Ces caractères forment le contenu réel du mot de passe. Chaque pression ajoute ce caractère à la chaîne de mot de passe construite en mémoire. Avec 14 caractères disponibles (10 chiffres + 4 lettres), vous pouvez créer des mots de passe significativement plus complexes et sécurisés.

Flux de processus de saisie de mot de passe

Voici la logique détaillée pour gérer chaque pression de touche :

Lorsqu'une touche est pressée :

  1. Si la touche est un caractère de mot de passe valide (0-9, A-D) :
    • Ajouter ce caractère au tampon de mot de passe actuel
    • Optionnellement afficher des astérisques (*) sur un écran pour montrer le progrès de saisie sans révéler le mot de passe réel
    • Continuer à accepter la saisie jusqu'à ce que l'utilisateur appuie sur # ou *
  • Si la touche est "#" (SOUMETTRE/ENTRÉE) :
    • Récupérer le mot de passe correct stocké en mémoire
    • Effectuer une comparaison caractère par caractère entre le mot de passe saisi et le mot de passe correct
    • S'ils correspondent exactement (incluant la longueur), accorder l'accès : afficher "mot de passe correct" ou activer un relais/mécanisme de déverrouillage
    • S'ils 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 prochaine tentative
    • Optionnellement incrémenter un compteur de tentatives échouées pour verrouillage de sécurité
    • Si la touche est "*" (EFFACER/RESET) :
      • Effacer immédiatement tout le tampon de mot de passe
      • Réinitialiser tous compteurs de caractères ou variables d'état de saisie
      • Optionnellement fournir un retour (bip ou LED) confirmant l'action d'effacement
      • L'utilisateur peut maintenant commencer à saisir son mot de passe depuis le début

      Avantages des mots de passe alphanumériques

      Les touches de lettres du clavier 4x4 (A-D) offrent des avantages de sécurité significatifs :

      • Complexité accrue : Un mot de passe à 4 chiffres a 10 000 combinaisons possibles (10^4). Un mot de passe alphanumérique à 4 caractères (utilisant 0-9, A-D) a 38 416 combinaisons (14^4)
      • Plus difficile à deviner : Les mots de passe alphanumériques résistent aux motifs numériques communs comme "1234" ou dates de naissance
      • Applications professionnelles : Les systèmes de sécurité commerciaux utilisent communément des codes alphanumériques

      Meilleures pratiques de sécurité

      Pour les systèmes de mot de passe de qualité production, considérez implémenter :

      • Pas d'écho vers le moniteur série : N'imprimez pas les mots de passe réels dans le code publié
      • Limitation de tentatives : Verrouiller après 3-5 tentatives échouées, nécessitant un timeout ou reset maître
      • Effacement par timeout : Auto-effacer les mots de passe incomplets après 30-60 secondes d'inactivité
      • Hachage de mot de passe : Stocker des mots de passe hachés plutôt qu'en texte brut pour sécurité renforcée
      • Retour visuel/audio : Biper ou faire clignoter une LED à chaque pression de touche, ton différent pour accepter/rejeter
      • Support multi-utilisateur : Stocker plusieurs combinaisons mot de passe/utilisateur pour journalisation d'accès

      Code clavier - mot de passe

      Cet exemple démontre un système complet de vérification de mot de passe alphanumérique qui exploite les capacités complètes du clavier 4x4. Le code définit un mot de passe secret et valide la saisie utilisateur contre celui-ci.

      /* * 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-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; // four rows const int 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] = {9, 8, 7, 6}; // connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // 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 = "1234A"; // change your password here String input_password; void setup(){ Serial.begin(9600); Serial.println("Keypad 4x4 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 } } }

      Test du système de mot de passe alphanumérique

      É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 le retour de vérification de mot de passe en temps réel.

      Étape 3 - Tester un mot de passe incorrect : Tapez les touches "1234BC" sur le clavier (un mot de passe alphanumérique incorrect), puis appuyez sur la touche "#" pour soumettre. Ceci teste le rejet de mauvais mots de passe.

      Étape 4 - Tester le mot de passe correct : Tapez les touches "1234A" sur le clavier (le mot de passe correct tel que défini dans le code), puis appuyez sur la touche "#" pour soumettre. Ceci confirme l'authentification réussie.

      Étape 5 - Tester la fonction d'effacement : Tapez plusieurs caractères, appuyez sur "*" pour les effacer, puis saisissez le mot de passe correct et appuyez sur "#". Ceci vérifie que la fonctionnalité d'effacement/reset fonctionne correctement.

      Étape 6 - Tester diverses combinaisons : Essayez différentes combinaisons mélangeant nombres et lettres pour assurer que toutes les touches s'enregistrent correctement.

      Étape 7 - Voir les résultats : Surveillez le moniteur série pour 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 password is correct
      Autoscroll Show timestamp
      Clear output
      9600 baud  
      Newline  

      Comprendre la sortie : Dans cet exemple, le mot de passe correct est typiquement défini comme "1234A" (une combinaison alphanumérique—vérifiez dans le code réel). Lorsque vous tapez "1234BC" et appuyez sur #, le système détecte la différence et affiche "password is incorrect." Lorsque vous tapez exactement "1234A" et appuyez sur #, les chaînes correspondent parfaitement, et le système affiche "password is correct" et pourrait déclencher une action de déverrouillage.

      Applications du monde réel : Ce système de mot de passe alphanumérique est parfait pour :

      • Serrures de porte intelligentes avec sécurité renforcée utilisant des codes de lettres
      • Systèmes d'accès à coffre-fort/armoire avec PINs alphanumériques
      • Contrôles d'équipement industriel nécessitant l'authentification d'opérateur
      • Systèmes d'accès multi-niveaux où différents suffixes de lettres accordent différentes permissions
      • Panneaux de sécurité domestique avec codes alphanumériques spécifiques à l'utilisateur
      • Accès à équipement de laboratoire nécessitant des codes d'ID de technicien

    Vidéo

    Connaissances supplémentaires

    Prêt à développer encore plus vos compétences en programmation de clavier ? Explorez ces tutoriels avancés qui s'appuient sur ce que vous avez appris :

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

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