Benötigte Komponenten
- Arduino Board
- USB-Kabel
- 4x4 Keypad
- 8 Jumperkabel
Technische Daten vom 4x4 Keypad
- Maximaler Stromkreislauf: 35V DC, 30mA
- Betriebstemperatur: -20 ~ +40°C
- Anschlussart: 8 Pin
- Gasamtlänge: 160 mm
- Kabellänge (inkl. Anschlüsse): 88mm
- Klebefläche auf der Rückseite
- Abmessungen: 69x76mm, ca. 1mm hoch
Beschreibung
Tastenfelder oder Keypads eignen sich perfekt zur Dateneingabe oder Menü-Navigation in Projekten wie Sicherheitssysteme, Zugangskontrollen, Embedded Systems, Smart Home Steuerungen, Fernbedienungen und Robotern. Die Einsatzmöglichkeiten sind unbegrenzt, da die Tasten nicht unbedingt die aufgedruckten Zeichen ausgeben müssen, sondern mit Hilfe eines Arduinos oder Raspberry Pis frei programmiert werden können. Am beliebtesten sind Tastenfelder mit 4x3 oder 4x4 Tasten, die einer klassischen Telefontastatur ähneln.
Funktionsweise
Das numerische Tastenfeld besteht aus 16 Tasten, die in einer Matrix angeordnet sind, d. h. alle Tasten einer Spalte sind mit einem Eingang und alle Tasten einer Zeile mit einem anderen verbunden.
Wenn eine Taste gedrückt wird, wird der entsprechende Eingang der Zeile mit dem der Spalte verbunden, wodurch der Stromkreis geschlossen wird. Der Vorteil dieses Aufbaus ist, dass 16 Tasten mit nur 8 Eingängen des Mikrocontrollers angesteuert werden können.
Schaltplan
Anschlussplan
Keypad | Arduino |
R1 | Pin 9 |
R2 | Pin 8 |
R3 | Pin 7 |
R4 | Pin 6 |
C1 | Pin 5 |
C2 | Pin 4 |
C3 | Pin 3 |
C4 | Pin 2 |
Code für Arduino
Zur Verwendung von diesem Beispielcode wird die Keypad.h Bibliothek benötigt.
Mit diesem Beispiel können Sie eine Taste drücken und die gedrückte Taste im seriellen Monitor der Arduino IDE auslesen. Code als Download.
#include "Arduino.h"
#include "Keypad.h"
const byte ROWS = 4; // vier Reihen
const byte COLS = 4; // vier Spalten
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9,8,7,6}; // Pins fuer die Reihen
byte colPins[COLS] = {5,4,3,2}; // Pins fuer die Spalten
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY){
Serial.println(key);
}
}