Suchcode

Verwendung eines 4x3-Tastenfelds mit Arduino

Verwendung eines 4x3-Tastenfelds mit Arduino

In diesem Tutorial zeigen wir, wie man ein 4x3-Tastenfeld mit einem Arduino verwendet, um Tastendrücke auszulesen. Dieses Tastenfeld kann in verschiedenen Projekten eingesetzt werden, etwa zum Erstellen einer einfachen Benutzerschnittstelle für ein Sicherheitssystem oder für jede Anwendung, die Benutzereingaben erfordert. Am Ende dieses Leitfadens werden Sie in der Lage sein, Tastendrücke auszulesen und auf bestimmte Tasten zu reagieren.

Stellen Sie sicher, dass Sie das begleitende Video zur visuellen Demonstration der Verkabelung und der Code-Implementierung ansehen (im Video bei 00:00).

Hardware erklärt

Die Hauptkomponenten für dieses Projekt sind das 4x3-Tastenfeld und das Arduino-Board. Das Tastenfeld besteht aus einer Matrix von Tasten, angeordnet in 4 Reihen und 3 Spalten. Wenn eine Taste gedrückt wird, verbindet sie eine bestimmte Reihe mit einer bestimmten Spalte, wodurch das Arduino erkennen kann, welche Taste gedrückt wurde.

Das Arduino-Board fungiert als zentrale Steuereinheit, die die Eingaben des Tastenfelds liest. Es verwendet die Keypad-Bibliothek, die die Verwaltung der Tastenmatrix vereinfacht und das Erkennen von Tastendrücken erleichtert.

Datenblattdetails

HerstellerVerschiedenes
Teilenummer4x3-Tastenfeld
Logikspannung5 V
Betriebsstrom≤ 20 mA
Lebensdauer des Schlüssels≥ 1.000.000 Pressen
PaketMatrix-Tastenfeld

  • Verbinden Sie die Pins des Keypads korrekt mit den digitalen Pins des Arduino.
  • Verwenden Sie bei Bedarf Pull-up- oder Pull-down-Widerstände, je nach Ihrer Konfiguration.
  • Stellen Sie sicher, dass die Keypad-Bibliothek in Ihrer Arduino-IDE enthalten ist.
  • Entprellen Sie die Tastenanschläge in der Software, um mehrfaches Auslesen zu vermeiden.
  • Testen Sie jede Taste, um die korrekte Verdrahtung und Funktionalität zu bestätigen.

Verdrahtungsanleitung

Arduino_wiring_4x3_keypad

Um das 4x3-Tastenfeld an den Arduino anzuschließen, verbinden Sie die Reihen- und Spaltenpins des Tastenfelds mit den digitalen Pins des Arduino. Verbinden Sie die Reihenpins (typischerweise 4 Pins) mit Pins2,3,4, und5am Arduino. Die Spalten-Pins (typischerweise 3 Pins) sollten an Pins angeschlossen werden6,7, und8.

Stellen Sie sicher, dass Sie den GND-Pin des Keypads mit dem GND des Arduino verbinden und den Versorgungspin mit dem 5V-Ausgang. Diese Konfiguration ermöglicht es dem Arduino, den Zustand jeder Taste beim Drücken zu lesen, wobei die Keypad-Bibliothek das Matrix-Scanning übernimmt.

Code-Beispiele und Schritt-für-Schritt-Anleitung

Der folgende Code initialisiert das Keypad und gibt die gedrückte Taste auf dem seriellen Monitor aus. Die Tastenwerte werden in einem Zeichenarray gespeichert.

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

ThekeysDas Array definiert das Layout des Tastenfelds, das der physischen Anordnung der Tasten entspricht. Jedes Zeichen stellt eine Taste des Tastenfelds dar.

Als Nächstes richten wir das Tastenfeld in dersetup()Funktion:

void setup(){
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}

Dieses Segment initialisiert die serielle Kommunikation mit einer Baudrate von 9600, sodass wir die Tastenanschläge im seriellen Monitor sehen können.

Schließlich prüft die Schleife auf Tastendrücke und reagiert entsprechend:

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Key 4 is pressed");
  } 
}

Hier überprüft das Programm, ob eine beliebige Taste gedrückt ist, mithilfe vonkeypad.getKey(). Wenn eine Taste gedrückt wird, wird deren Wert ausgegeben. Zusätzlich wird, wenn die Taste '4' gedrückt wird, eine bestimmte Nachricht angezeigt.

Demonstration / Was Sie erwartet

Wenn die Einrichtung abgeschlossen ist, sollte das Drücken einer beliebigen Taste auf dem Tastenfeld das entsprechende Zeichen auf dem seriellen Monitor ausgeben. Wenn die Taste '4' gedrückt wird, wird eine spezielle Meldung ausgegeben, die die Aktivierung dieser Taste anzeigt. Diese Funktionalität ermöglicht es Ihnen, auf dieser Grundlage komplexere Anwendungen aufzubauen.

Achten Sie auf schwebende Eingänge, die zu unberechenbarem Verhalten führen können. Stellen Sie sicher, dass alle Verbindungen fest sitzen, und testen Sie jede Taste, um die ordnungsgemäße Funktion zu bestätigen (im Video bei 00:00).

Bilder

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
Sprache: C++
/*
 * Library taken from: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x3 keypad.
 * Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
 * 
 * Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
 * Date: July 11, 2018 at 19:56 in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 * Watch video instructions for this code: 
 * 
 */
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  // Robojax 4x3 keypad test
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}
  
void loop(){
  // Robojax 4x3 keypad test
  char key = keypad.getKey();
    // Just print the pressed key
   if (key){
    Serial.println(key);
  } 
   // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // If key matches what you are looking for
    Serial.println("Key 4 is pressed");
  } 

}

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Fritzing-Datei

Andere Dateien