Inhaltsverzeichnis:
- Schritt 1: Erste Schritte
- Schritt 2: Verwenden einer 12-stelligen Tastatur
- Schritt 3: Verwenden einer 16-stelligen Tastatur
- Schritt 4: Beispielprojekt – PIN-Zugangssystem
Video: Verwenden von numerischen Tastenfeldern mit Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Numerische Tastaturen können eine einfache Endbenutzer-Alternative für verschiedene Schnittstellen für Ihre Projekte darstellen. Oder wenn Sie viele Knöpfe benötigen, können sie Ihnen beim Aufbau viel Zeit sparen. Wir werden sie mit der Arduino-Bibliothek verbinden und dann mit einer nützlichen Beispielskizze abschließen.
Schritt 1: Erste Schritte
Egal woher Sie Ihre Tastaturen beziehen, stellen Sie sicher, dass Sie das Datenblatt erhalten – denn das erleichtert Ihnen die Verdrahtung. Zum Beispiel - das Bild in diesem Schritt.
Das Datenblatt ist wichtig, da es Ihnen sagt, welche Pins oder Anschlüsse auf der Tastatur für die Zeilen und Spalten sind. Wenn Sie das Datenblatt nicht haben, müssen Sie manuell bestimmen, welche Kontakte für die Zeilen und Spalten vorhanden sind.
Dies kann mit der Durchgangsfunktion eines Multimeters (dem Summer) erfolgen. Beginnen Sie damit, eine Sonde auf Pin 1, die andere Sonde auf Pin 2 zu setzen, und drücken Sie nacheinander die Tasten. Notieren Sie sich, wann ein Knopf den Stromkreis vervollständigt, und gehen Sie dann zum nächsten Pin. Bald werden Sie wissen, was was ist. Auf dem Beispiel-Tastatur sind beispielsweise die Pins 1 und 5 für die Taste „1“, 2 und 5 für „4“usw.
An dieser Stelle laden Sie bitte die Arduino-Bibliothek der Tastatur herunter und installieren Sie sie. Jetzt demonstrieren wir in einfachen Beispielen, wie Sie beide Tastaturen verwenden.
Schritt 2: Verwenden einer 12-stelligen Tastatur
Zur Anzeige verwenden wir das kleine schwarze Tastenfeld, ein Arduino Uno-kompatibel und ein LCD mit I2C-Schnittstelle. Wenn Sie kein LCD haben, können Sie den Text stattdessen immer an den seriellen Monitor senden.
Verdrahten Sie Ihr LCD und verbinden Sie dann die Tastatur wie folgt mit dem Arduino: Tastaturreihe 1 zu Arduino digital 5 Tastaturreihe 2 zu Arduino digital 4 Tastaturreihe 3 zu Arduino digital 3 Tastaturreihe 4 zu Arduino digital 2 Tastaturspalte 1 zu Arduino digital 8 Tastaturspalte 2 zu Arduino digital 7Keypad Spalte 3 bis Arduino digital 6 Wenn sich Ihre Tastatur von unserer unterscheidet, beachten Sie die Zeilen in der Skizze von:
// Definition des Tastaturtyps
Da müssen Sie die Zahlen in den Arrays rowPins[ROWS] und colPins[COLS] ändern. Sie geben die digitalen Pin-Nummern ein, die mit den Zeilen bzw. Spalten der Tastatur verbunden sind.
Darüber hinaus speichern die Array-Tasten die Werte, die auf dem LCD angezeigt werden, wenn eine bestimmte Taste gedrückt wird. Sie können sehen, dass wir es mit der verwendeten physischen Tastatur abgeglichen haben, Sie können es jedoch nach Belieben ändern. Geben Sie jedoch vorerst die folgende Skizze ein und laden Sie sie hoch, wenn Sie mit der Reihen-/Pinnummernzuordnung zufrieden sind:
/* Numerische Tastatur und I2C-LCD https://tronixstuff.com Verwendet Tastaturbibliothek für Arduino https://www.arduino.cc/playground/Code/Keypad von Mark Stanley, Alexander Brevig */
#include "Keypad.h"
#include "Wire.h" // für I2C-LCD #include "LiquidCrystal_I2C.h" // für I2C-Bus-LCD-Modul // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // setze die LCD-Adresse auf 0x27 für eine 16-stellige und 2-zeilige Anzeige
// Definition des Tastaturtyps
konstantes Byte ROWS = 4; // vier Zeilen const Byte COLS = 3; //dreispaltige Zeichentasten[ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
Byte rowPins[ROWS] = {
5, 4, 3, 2}; // mit den Zeilenbelegungen des Tastaturbytes verbinden colPins[COLS] = { 8, 7, 6}; // mit den Spaltenpinbelegungen der Tastatur verbinden
int-Zählung = 0;
Keypad-Tastatur = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Void-Setup ()
{ lcd.init(); // lcd initialisieren lcd.backlight (); // LCD-Hintergrundbeleuchtung einschalten}
Leere Schleife ()
{ Zeichentaste = Tastatur.getKey(); if (Schlüssel!= NO_KEY) { lcd.print (Schlüssel); zählen++; Wenn (Anzahl = = 17) { lcd.clear (); zählen = 0; } } }
Und die Ergebnisse der Skizze werden im Video gezeigt. Jetzt können Sie also sehen, wie die Tastendrücke in Daten für die Verwendung in einer Skizze übersetzt werden können. Wir wiederholen diese Demonstration nun mit der größeren Tastatur.
Schritt 3: Verwenden einer 16-stelligen Tastatur
Wir verwenden die größere 4×4-Tastatur, ein Arduino Uno-kompatibel und zur Abwechslung das I2C-LCD von Akafugu für Anzeigezwecke. Auch wenn Sie kein LCD haben, können Sie den Text stattdessen immer an den seriellen Monitor senden. Verdrahten Sie das LCD und verbinden Sie dann die Tastatur wie folgt mit dem Arduino:
- Tastaturreihe 1 (Pin 8) zu Arduino digital 5
- Tastaturreihe 2 (Pin 1) zu Arduino digital 4
- Tastaturreihe 3 (Pin 2) zu Arduino digital 3
- Tastaturreihe 4 (Pin 4) zu Arduino digital 2
- Tastaturspalte 1 (Pin 3) zu Arduino digital 9
- Tastaturspalte 2 (Pin 5) zu Arduino digital 8
- Tastaturspalte 3 (Pin 6) zu Arduino digital 7
- Tastaturspalte 4 (Pin 7) zu Arduino digital 6
Nun zur Skizze – beachten Sie, wie wir für den größeren Ziffernblock untergebracht haben: die zusätzliche Spalte im Array char keysden zusätzlichen Pin im Array colPinsund das Byte COLS = 4.
/* Numerische Tastatur und I2C-LCD https://tronixstuff.com Verwendet Tastaturbibliothek für Arduino https://www.arduino.cc/playground/Code/Keypad von Mark Stanley, Alexander Brevig */
#include "Keypad.h"
#include "Wire.h" // für I2C-LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
konstantes Byte ROWS = 4; //vier Reihen
konstantes Byte COLS = 4; // vierspaltige Zeichentasten[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; Byte rowPins[ROWS] = { 5, 4, 3, 2}; // mit den Zeilenbelegungen des Tastaturbytes verbinden colPins[COLS] = { 9, 8, 7, 6}; // mit den Spaltenpinbelegungen der Tastatur verbinden Int count = 0;
Keypad-Tastatur = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Void-Setup ()
{ Serial.begin (9600); lcd.begin(16, 2); lcd.print("Tastaturtest!"); Verzögerung (1000); lcd.clear(); }
Leere Schleife ()
{ Zeichentaste = Tastatur.getKey(); if (Schlüssel!= NO_KEY) { lcd.print (Schlüssel); Serial.print (Schlüssel); zählen++; Wenn (Anzahl = = 17) { lcd.clear (); zählen = 0; } } }
Und wieder seht ihr die Ergebnisse der Skizze oben im Video.
Nun zu einem Beispielprojekt, das wahrscheinlich die am häufigsten nachgefragte Verwendung des Ziffernblocks ist…
Schritt 4: Beispielprojekt – PIN-Zugangssystem
Die am häufigsten nachgefragte Verwendung für ein numerisches Tastenfeld scheint eine Anwendung im „PIN“-Stil zu sein, bei der das Arduino angewiesen wird, etwas zu tun, basierend auf einer korrekten Nummer, die in das Tastenfeld eingegeben wird. Die folgende Skizze verwendet die für die vorherige Skizze beschriebene Hardware und implementiert ein sechsstelliges PIN-Eingabesystem.
Die auszuführenden Aktionen können in die Funktionen correctPIN() und falsePIN() eingefügt werden. Und die PIN wird im Array char PIN[6] festgelegt. Mit etwas Mehraufwand können Sie auch Ihre eigene PIN-Änderungsfunktion erstellen.
// PIN-Schalter mit 16-stelligem Nummernblock // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
konstantes Byte ROWS = 4; //vier Reihen
konstantes Byte COLS = 4; // vierspaltige Zeichentasten[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; Byte rowPins[ROWS] = { 5, 4, 3, 2}; // mit den Zeilenbelegungen des Tastaturbytes verbinden colPins[COLS] = { 9, 8, 7, 6}; // mit den Spaltenpinbelegungen der Tastatur verbinden
Keypad-Tastatur = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Zeichen-PIN[6]={
'1', '2', 'A', 'D', '5', '6'}; // unsere geheime (!) Zahl char Versuch[6]={ '0', '0', '0', '0', '0', '0'}; // zum Vergleich verwendet int z=0;
Void-Setup ()
{ Serial.begin (9600); lcd.begin(16, 2); lcd.print("PIN-Sperre"); Verzögerung (1000); lcd.clear(); lcd.print("PIN eingeben…"); }
void correctPIN() // Tun Sie dies, wenn die richtige PIN eingegeben wurde
{ lcd.print("*PIN korrigieren*"); Verzögerung (1000); lcd.clear(); lcd.print("PIN eingeben…"); }
void falsePIN() // Tun Sie dies, wenn eine falsche PIN eingegeben wurde
{ lcd.print(" * Versuchen Sie es erneut *"); Verzögerung (1000); lcd.clear(); lcd.print("PIN eingeben…"); }
PrüfPIN() ungültig
{ int richtig = 0; int ich; für (i = 0; i < 6; i++) {
if (versuch==PIN)
{ richtig++; } } if (richtig = = 6) { korrektPIN (); aufrechtzuerhalten. Sonst { falsche PIN (); }
for (int zz=0; zz<6; zz++) { Versuch[zz]='0'; } }
void readKeypad()
{ Zeichentaste = Tastatur.getKey(); if (Schlüssel != NO_KEY) { Versuch[z]=Schlüssel; z++; Schalter (Schlüssel) { Fall '*': z=0; brechen; Fall '#': z=0; Verzögerung (100); // für zusätzliche Entprellung lcd.clear(); checkPIN(); brechen; } } }
Leere Schleife ()
{ readKeypad(); }
Das Projekt wird im Video demonstriert.
Jetzt haben Sie also die Möglichkeit, Tastaturen mit zwölf und sechzehn Tasten mit Ihren Arduino-Systemen zu verwenden. Ich bin sicher, Sie werden sich in naher Zukunft mit den Tastenfeldern etwas Nützliches und Interessantes einfallen lassen.
Dieser Beitrag wird Ihnen von pmdway.com zur Verfügung gestellt – alles für Macher und Elektronik-Enthusiasten, weltweit versandkostenfrei.
Empfohlen:
CDS mit SkiiiD verwenden: 9 Schritte
So verwenden Sie CDS mit SkiiiD: Ein Tutorial zum Entwickeln von CDS mit skiiiD
Max7219 8x8 Dot Matrix mit "skiiiD" verwenden: 9 Schritte
So verwenden Sie Max7219 8x8 Dot Matrix mit "skiiiD": Dies ist eine Videoanleitung von Max7219 8x8 Dot Matrix über "skiiiD". /Erste Schritte-W
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
SO VERWENDEN SIE EINEN VIBRATIONSSENSOR - VISUINO TUTORIAL MIT ARDUINO: 6 Schritte
SO VERWENDEN SIE EINEN VIBRATIONSSENSOR - VISUINO TUTORIAL MIT ARDUINO: In diesem Tutorial verwenden wir Vibrationssensor, LED, Summer, Widerstand, Arduino Uno und Visuino, um einen Piepton zu erzeugen, wenn Vibrationen erkannt werden. Sehen Sie sich ein Demonstrationsvideo an
Verwenden von Google Docs: 11 Schritte
Verwenden von Google Docs: Dies ist der Bildschirm, der angezeigt wird, wenn Sie Google Docs gefunden haben. Um zu diesem Bildschirm zu gelangen, geben Sie einfach Google Docs in die Google-Suchleiste ein und klicken Sie dann auf das erste Ergebnis. Danach klickst du auf die Schaltfläche in der Mitte des Bildschirms