Beschreibung
📦 Vollständige Modulbeschreibung für den 4×4-Matrizen-Tastaturmodul (4×4 Keypad)
Das 4×4-Matrizen-Tastaturmodul ist ein Eingabemodul, das 16 Tasten auf einer Matrix von 4 Zeilen und 4 Spalten (4×4) verteilt ist, was insgesamt 16 mögliche Tastenkombinationen ergibt: 0-9, A-D, *, #.
✅ Technische Spezifikationen:
- Anzahl der Tasten: 16 (4 Zeilen × 4 Spalten)
- Typisches Tastenlayout:
[ 1 ] [ 2 ] [ 3 ] [ A ] [ 4 ] [ 5 ] [ 6 ] [ B ] [ 7 ] [ 8 ] [ 9 ] [ C ] [ * ] [ 0 ] [ # ] [ D ] - Schnittstelle: 8 digitale Pins (4 für die Zeilen, 4 für die Spalten)
- Betriebsspannung: 3.3V – 5V
- Verbindungsart: Pin-Header mit 2,54 mm Abstand
- Kompatibilität: Arduino, ESP32, ESP8266, Raspberry Pi und mikrocontroller im Allgemeinen
- Material: Plastik und flexibles Leiterband
📚 Funktionsweise
Der Modul funktioniert durch die Scannung von Zeilen und Spalten. Durch das Drücken eines Tasters wird eine elektrische Verbindung zwischen einer Zeile und einer Spaltehergestellt. Arduino kann so bestimmen, welcher Taster gedrückt wurde, indem es den Zustand der Pins liest.
🔌 Verbindung mit Arduino
Der Modul hat 8 Pins:
[ R1, R2, R3, R4, C1, C2, C3, C4 ]
Beispielsweise für Arduino UNO:
| Tastatur 4×4 | Arduino UNO |
|---|---|
| R1 | D9 |
| R2 | D8 |
| R3 | D7 |
| R4 | D6 |
| C1 | D5 |
| C2 | D4 |
| C3 | D3 |
| C4 | D2 |
📦 Notwendige Bibliothek
Um die Tastatur einfach zu verwalten, wird die Verwendung der Bibliothek Keypad.hempfohlen, die eine automatische Tastenscan-Funktion bietet.
🔧 Installieren Sie die Keypad-Bibliothek:
- Öffnen Sie das Arduino IDE
- Gehe zu Sketch > Bibliothek einbinden > Bibliotheken verwalten
- Suchen Sie nach „Keypad“ von Mark Stanley und Alexander Brevig
- Klicken Sie auf Installieren
🧪 Beispielcode
#include <Keypad.h>
// Definizione righe e colonne
const byte ROWS = 4;
const byte COLS = 4;
// Mappa dei tasti sulla tastiera
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
// Pin di connessione tra tastiera e Arduino
byte rowPins[ROWS] = {9, 8, 7, 6}; // Righe → D9, D8, D7, D6
byte colPins[COLS] = {5, 4, 3, 2}; // Colonne → D5, D4, D3, D2
// Creazione oggetto Keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
Serial.println("Tastiera pronta");
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.print("Tasto premuto: ");
Serial.println(key);
}
}
🧭 Programmieranleitung
📌 Nützliche Bibliotheksfunktionen Keypad:
| Funktion | Beschreibung |
|---|---|
getKey() |
Gibt den gedrückten Tastenwert zurück oder NO_KEY wenn keiner gedrückt |
isPressed(char k) |
Gibt zurück true wenn der Taster k wird gedrückt |
waitForKey() |
Hält das Programm an, bis eine Taste gedrückt wird |
addEventListener(fn) |
Erlaubt es, eine Funktion zu registrieren, die beim Zustandswechsel ausgeführt wird |
setDebounceTime(ms) |
Setzt die Debounce-Zeit ein |
setHoldTime(ms) |
Setzt die Zeit ein, um einen gedrückten Knopf als „lang gedrückt“ zu betrachten |
🧩 Fortgeschrittene Beispiele
1. Sicherheitscode-Entschlüsselung
#define PASSWORD "1234"
String input = "";
void loop() {
char key = keypad.getKey();
if (key) {
input += key;
Serial.println(input);
if (input.length() == 4) {
if (input == PASSWORD) {
Serial.println("Accesso consentito");
} else {
Serial.println("Codice errato");
}
input = ""; // reset input
}
}
}
2. Tastensteuerung des Menüs mit A-D
void loop() {
char key = keypad.getKey();
if (key) {
switch (key) {
case 'A':
Serial.println("Opzione: Accensione");
break;
case 'B':
Serial.println("Opzione: Spegnimento");
break;
case 'C':
Serial.println("Opzione: Reset");
break;
case 'D':
Serial.println("Opzione: Info");
break;
default:
Serial.print("Tasto generico: ");
Serial.println(key);
}
}
}
🔍 Tipps
- Automatisches Debouncen: die Bibliothek handhabt das Knopf-Rumbeln bereits.
- Kontinuierlicher Zustand:
getKey()gibt nur einmal den gedrückten Knopf zurück; für längere Drücke verwendengetState()oisPressed(). - Pull-up/Pull-down: keine externen Widerstände erforderlich, die Tastatur fungiert als mechanisches Kontakt
- Mehrere Funktionen: Du kannst die Tastatur verwenden, um Menüs zu navigieren, Codes einzugeben oder Geräte zu steuern.
🧾 Schluss
Die 4×4-Tastatur ist ein einfaches, aber sehr nützliches Werkzeug für eingebettete Systeme wie Arduino. Dank der Bibliothek Keypad, wird die Tastatursteuerung sehr intuitiv, was die schnelle Entwicklung von Benutzeroberflächen für Projekte wie:
- Alarme
- Numerische Tastaturen
- Menüschnittstellen
- Elektronische Schlösser
- Fernsteuerungen
Tutorial: Wie man eine 4×4-Matrix-Tastatur verwendet
Die 4×4-Matrix-Tastatur ist ein nützlicher Komponente für interaktive und digitale Eingabeprojekte. Ideal für Anfänger, die einfache Benutzeroberflächen oder kleine Spiele erstellen möchten.
Was du brauchst
- Arduino Uno
- USB-A-MicroB-Kabel
- 4×4-Matrix-Tastatur
Schritte
- Verbinde die Eingangspins der Tastatur (R1-R4) an vier digitale Pins des Arduino.
- Verbinde die Ausgangspins (C1-C4) an vier weitere digitale Pins des Arduino.
- Konfiguriere die Pins als Eingänge und Ausgänge im Arduino-Code.
- Schreibe eine Schleife, die den Zustand der Tasten in jeder Position der Matrix liest.
- Verwende eine Zuordnungstabelle, um jedem Knopf eine spezifische Antwort zuzuordnen.
Beispielcode
// Esempio di codice
const int ROWS[4] = {2, 3, 4, 5};
const int COLS[4] = {6, 7, 8, 9};
void setup() {
pinMode(ROWS[i], INPUT);
pinMode(COLS[j], OUTPUT);
}
void loop() {
for (int i=0; i<4; i++) {
digitalWrite(COLS[i], HIGH); //Attiva la colonna
for (int j=0; j<4; j++) {
if(digitalRead(ROWS[j]) == LOW) {
Serial.println("Tasto premuto");
}
}
digitalWrite(COLS[i], LOW);
}
}
Mini-Projekt
Erstelle ein kleines Quiz-Spiel, bei dem jeder Knopf eine Antwort darstellt. Das Spiel zeigt eine Frage an und aktiviert die Knöpfe als Optionen.
Häufige Fehler
- Überprüfe keine Verbindungen der Pins
- Ignoriere die korrekte Zuordnung zwischen Knöpfen und Antworten
- Verwende kein Warten auf einen Zustand, um Fehlpositive zu vermeiden
Empfohlenes Zubehör
- LCD-Anzeige 16×2
- Piepser
- RGB-LED
- Drucktaster
Häufige Fragen
Wie kann ich mehrere Knöpfe gleichzeitig lesen?
Verwende eine Schleife, die jeden Knopf nacheinander überprüft.
Was ist der Unterschied zwischen ROW und COL?
ROW repräsentiert die Zeilen, COL die Spalten der Tastenmatrix.










Rezensionen
Es gibt noch keine Rezensionen.