Table des matières:

Utilisation des pavés numériques avec Arduino : 4 étapes
Utilisation des pavés numériques avec Arduino : 4 étapes

Vidéo: Utilisation des pavés numériques avec Arduino : 4 étapes

Vidéo: Utilisation des pavés numériques avec Arduino : 4 étapes
Vidéo: Utilisation du Clavier matriciel 4×4 avec Arduino 2024, Novembre
Anonim
Utilisation des pavés numériques avec Arduino
Utilisation des pavés numériques avec Arduino

Les pavés numériques peuvent fournir une alternative simple à l'utilisateur final pour diverses interfaces pour vos projets. Ou si vous avez besoin de beaucoup de boutons, ils peuvent vous faire gagner beaucoup de temps en ce qui concerne la construction. Nous allons les connecter en utilisant la bibliothèque Arduino, puis terminer avec un exemple de croquis utile.

Étape 1: Mise en route

Commencer
Commencer

Peu importe où vous obtenez vos claviers, assurez-vous que vous pouvez obtenir la fiche technique - car cela facilitera la vie lors de leur câblage. Par exemple - l'image dans cette étape.

La fiche technique est importante car elle vous indiquera quelles broches ou quels connecteurs sur le clavier sont destinés aux lignes et aux colonnes. Si vous n'avez pas la feuille de données, vous devrez déterminer manuellement quels contacts sont pour les lignes et les colonnes.

Cela peut être fait en utilisant la fonction de continuité d'un multimètre (le buzzer). Commencez par placer une sonde sur la broche 1, l'autre sonde sur la broche 2, et appuyez une à une sur les touches. Notez quand un bouton termine le circuit, puis passez à la broche suivante. Bientôt, vous saurez qui est quoi. Par exemple, sur l'exemple du clavier, les broches 1 et 5 sont pour le bouton "1", 2 et 5 pour "4", etc…

À ce stade, veuillez télécharger et installer la bibliothèque du clavier Arduino. Nous allons maintenant montrer comment utiliser les deux claviers dans des exemples simples.

Étape 2: Utilisation d'un clavier à 12 chiffres

Nous utiliserons le petit clavier noir, un compatible Arduino Uno et un écran LCD avec une interface I2C à des fins d'affichage. Si vous n'avez pas d'écran LCD, vous pouvez toujours envoyer le texte au moniteur série à la place.

Câblez votre écran LCD, puis connectez le clavier à l'Arduino de la manière suivante: Rangée de clavier 1 à Arduino numérique 5Rangée de clavier 2 à Arduino numérique 4Rangée de clavier 3 à Arduino numérique 3Rangée de clavier 4 à Arduino numérique 2colonne 1 de clavier à Arduino numérique 8colonne 2 de clavier à Arduino digital 7Keypad colonne 3 à Arduino digital 6 Si votre clavier est différent du nôtre, notez les lignes du croquis à partir de:

// définition du type de clavier

Comme vous devez changer les nombres dans les tableaux rowPins[ROWS] et colPins[COLS]. Vous entrez les numéros de broche numériques connectés respectivement aux lignes et aux colonnes du clavier.

De plus, les touches du tableau stockent les valeurs affichées sur l'écran LCD lorsqu'un bouton particulier est enfoncé. Vous pouvez voir que nous l'avons associé au clavier physique utilisé, mais vous pouvez le modifier selon vos besoins. Mais pour l'instant, entrez et téléchargez le croquis suivant une fois que vous êtes satisfait des attributions de numéros de ligne/pin:

/* Pavé numérique et LCD I2C https://tronixstuff.com Utilise la bibliothèque de claviers pour Arduino https://www.arduino.cc/playground/Code/Keypad par Mark Stanley, Alexander Brevig */

#include "Clavier.h"

#include "Wire.h" // pour LCD I2C #include "LiquidCrystal_I2C.h" // pour module LCD bus I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // met l'adresse LCD à 0x27 pour un affichage de 16 caractères et 2 lignes

// définition du type de clavier

octet const ROWS = 4; //quatre lignes const byte COLS = 3; //trois colonnes char keys[ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

octet rowPins[LIGNES] = {

5, 4, 3, 2}; // connexion aux broches de ligne de l'octet du clavier colPins[COLS] = { 8, 7, 6}; // se connecte au brochage des colonnes du clavier

nombre entier=0;

Pavé numérique = Pavé numérique (makeKeymap (touches), rowPins, colPins, ROWS, COLS);

void setup()

{ lcd.init(); // initialise l'écran lcd lcd.backlight(); // activer le rétroéclairage LCD }

boucle vide()

{ touche char = clavier.getKey(); if (clé != NO_KEY) { lcd.print(clé); compte++; if (count==17) { lcd.clear(); compte=0; } } }

Et les résultats du croquis sont montrés dans la vidéo. Alors maintenant, vous pouvez voir comment les pressions sur les boutons peuvent être traduites en données à utiliser dans un croquis. Nous allons maintenant répéter cette démonstration avec le plus grand clavier.

Étape 3: Utilisation d'un clavier à 16 chiffres

Nous utiliserons le plus grand clavier 4 × 4, un compatible Arduino Uno et pour changer l'écran LCD I2C d'Akafugu à des fins d'affichage. Encore une fois, si vous n'avez pas d'écran LCD, vous pouvez toujours envoyer le texte au moniteur série à la place. Câblez l'écran LCD, puis connectez le clavier à l'Arduino de la manière suivante:

  • Clavier rangée 1 (broche huit) vers Arduino numérique 5
  • Clavier rangée 2 (broche 1) vers Arduino digital 4
  • Clavier rangée 3 (broche 2) vers Arduino numérique 3
  • Clavier rangée 4 (broche 4) vers Arduino digital 2
  • Colonne de clavier 1 (broche 3) vers Arduino numérique 9
  • Colonne de clavier 2 (broche 5) vers Arduino digital 8
  • Colonne de clavier 3 (broche 6) vers Arduino digital 7
  • Colonne de clavier 4 (broche 7) vers Arduino digital 6

Maintenant pour le croquis - notez comment nous avons adapté pour le plus grand pavé numérique: la colonne supplémentaire dans le tableau char keysla broche supplémentaire dans le tableau colPinset l'octet COLS = 4.

/* Pavé numérique et LCD I2C https://tronixstuff.com Utilise la bibliothèque de claviers pour Arduino https://www.arduino.cc/playground/Code/Keypad par Mark Stanley, Alexander Brevig */

#include "Clavier.h"

#include "Wire.h" // pour LCD I2C #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

octet const ROWS = 4; //quatre lignes

octet const COLS = 4; //quatre colonnes char keys[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; octet rowPins[ROWS] = { 5, 4, 3, 2}; // se connecte aux broches de ligne de l'octet du clavier colPins[COLS] = { 9, 8, 7, 6}; // se connecte aux brochages des colonnes du clavier int count=0;

Pavé numérique = Pavé numérique (makeKeymap (touches), rowPins, colPins, ROWS, COLS);

void setup()

{ Serial.begin(9600); lcd.begin (16, 2); lcd.print("Test du clavier !"); retard(1000); lcd.clear(); }

boucle vide()

{ touche char = clavier.getKey(); if (clé != NO_KEY) { lcd.print(clé); Serial.print(clé); compte++; if (count==17) { lcd.clear(); compte=0; } } }

Et encore une fois, vous pouvez voir les résultats du croquis ci-dessus dans la vidéo.

Maintenant, pour un exemple de projet, celui qui est probablement l'utilisation la plus demandée du pavé numérique…

Étape 4: Exemple de projet – Système d'accès PIN

L'utilisation la plus demandée pour un clavier numérique semble être une application de style "PIN", où l'Arduino est chargé de faire quelque chose en fonction d'un numéro correct entré dans le clavier. Le croquis suivant utilise le matériel décrit pour le croquis précédent et met en œuvre un système de saisie de code PIN à six chiffres.

Les actions à effectuer peuvent être insérées dans les fonctions correctPIN() et incorrectPIN(). Et le PIN est défini dans le tableau char PIN[6]. Avec un peu de travail supplémentaire, vous pouvez également créer votre propre fonction de changement de code PIN.

// Commutateur PIN avec pavé numérique à 16 chiffres// https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

octet const ROWS = 4; //quatre lignes

octet const COLS = 4; //quatre colonnes char keys[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; octet rowPins[ROWS] = { 5, 4, 3, 2}; // se connecte aux broches de ligne de l'octet du clavier colPins[COLS] = { 9, 8, 7, 6}; // se connecter aux brochages des colonnes du clavier

Pavé numérique = Pavé numérique (makeKeymap (touches), rowPins, colPins, ROWS, COLS);

NIP de caractère[6]={

'1', '2', 'A', 'D', '5', '6'}; // notre numéro secret (!) char tentative[6]={ '0', '0', '0', '0', '0', '0'}; // utilisé pour la comparaison int z=0;

void setup()

{ Serial.begin(9600); lcd.begin (16, 2); lcd.print("Verrouillage PIN "); retard(1000); lcd.clear(); lcd.print(" Entrer le code PIN…"); }

void correctPIN() // le faire si le code PIN correct est entré

{ lcd.print("* Code PIN correct *"); retard(1000); lcd.clear(); lcd.print(" Entrer le code PIN…"); }

void incorrectPIN() // le faire si un code PIN incorrect est entré

{ lcd.print(" * Essayez à nouveau *"); retard(1000); lcd.clear(); lcd.print(" Entrer le code PIN…"); }

annuler le code PIN()

{ entier correct=0; int je; pour (i = 0; i < 6; i++) {

si (tentative==PIN)

{ corriger++; } } if (correct==6) { correctPIN(); } else { PIN incorrect(); }

for (int zz=0; zz<6; zz++) { tentative[zz]='0'; } }

void readKeypad()

{ touche char = clavier.getKey(); if (clé != NO_KEY) { tentative[z]=clé; z++; switch(key) { case '*': z=0; Pause; cas '#': z=0; retard (100); // pour un anti-rebond supplémentaire lcd.clear(); checkPIN(); Pause; } } }

boucle vide()

{ readKeypad(); }

Le projet est démontré dans la vidéo.

Vous avez donc maintenant la possibilité d'utiliser des claviers à douze et seize boutons avec vos systèmes Arduino. Je suis sûr que vous proposerez quelque chose d'utile et d'intéressant en utilisant les claviers dans un proche avenir.

Cet article vous est présenté par pmdway.com - tout pour les fabricants et les passionnés d'électronique, avec une livraison gratuite dans le monde entier.

Conseillé: