Arduino UNO Q - Tastenfeld 4x4
Möchten Sie ein vollständiges 16-Tasten-Membrantastenfeld zu Ihrem Arduino UNO Q-Projekt hinzufügen? In diesem Tutorial erfahren Sie, wie Sie alle 16 Tasten auslesen und ein Passwort-Eingabesystem erstellen – mit Telegram-Benachrichtigungen.
In diesem Tutorial erfahren Sie:
- Was ein 4x4-Tastenfeld ist und wie es funktioniert
- Wie Sie das 4x4-Tastenfeld mit Arduino UNO Q verdrahten
- Wie Sie die MCU programmieren (C/C++-Arduino-Code), um Tastendrücke zu erkennen
- Wie Sie ein auf dem Tastenfeld eingegebenes Passwort überprüfen
- Wie Sie beide Seiten programmieren (Python auf Linux-Seite und C/C++ auf MCU-Seite), um das Tastenfeld über Bridge zu lesen
- Wie Sie Telegram-Benachrichtigungen senden, wenn auf Arduino UNO Q eine Taste gedrückt wird
- Wie Sie OpenClaw auf Arduino UNO Q mit dem 4x4-Tastenfeld verwenden

Hardware erforderlich
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das 4x4-Tastenfeld
Ein 4x4-Tastenfeld hat 16 Membrantasten, angeordnet in 4 Reihen und 4 Spalten – mit Ziffern 0–9, Buchstaben A–D und Symbolen * und #.
Pinbelegung
Ein 4x4-Tastenfeld hat 8 Pins, unterteilt in Reihen und Spalten:
- 4 Pins für Reihen: R1, R2, R3, R4
- 4 Pins für Spalten: C1, C2, C3, C4

Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| Tastenfeld-Pin | Arduino UNO Q MCU |
|---|---|
| R1 (Reihe 1) | D9 |
| R2 (Reihe 2) | D8 |
| R3 (Reihe 3) | D7 |
| R4 (Reihe 4) | D6 |
| C1 (Spalte 1) | D5 |
| C2 (Spalte 2) | D4 |
| C3 (Spalte 3) | D3 |
| C4 (Spalte 4) | D2 |
Arduino UNO Q Code
Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:
- Die STM32 MCU liest die Tastenfeld-Matrix direkt mit der DIYables_Keypad-Bibliothek
- Die Qualcomm MPU führt Debian Linux aus und verwaltet Wi-Fi, Python und Cloud-Konnektivität
- In diesem Abschnitt wird nur die MCU programmiert – die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
Schnelle Schritte
Erste Erfahrung mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten.
- Verbinden: Verdrahten Sie das 4x4-Tastenfeld wie im Verdrahtungsdiagramm oben gezeigt mit Arduino UNO Q MCU.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis Ihr Arduino UNO Q erkannt wird.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.

- Geben Sie der App einen Namen, beispielsweise: Keypad4x4
- Klicken Sie auf Erstellen, um zu bestätigen.

- Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein. Behalten Sie andere Dateien als Standard.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for DIYables_Keypad created by DIYables.io and click the Install button.
- Upload: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.

- Öffnen Sie den Seriellen Monitor und drücken Sie Tasten auf dem Tastenfeld. Sie werden jede gedrückte Taste sehen.
Tastenfeld und Passwort
Ein häufiger Einsatz eines 4x4-Tastenfeldes ist die Eingabe eines Passworts. Zwei spezielle Tasten werden verwendet:
- * – löscht die aktuelle Eingabe und startet von vorne
- # – bestätigt die Eingabe und überprüft das Passwort
Alle anderen Tasten bauen die Passwort-Zeichenkette nacheinander auf.
Die Logik:
- Beliebige Taste drücken → an den Eingabepuffer anhängen
- * drücken → Eingabepuffer löschen
- # drücken → Eingabe mit gespeichertem Passwort vergleichen, dann Puffer löschen
※ Notiz:
Ändern Sie die password-Variable vor dem Upload auf Ihr gewünschtes Passwort. Sie können jede Kombination aus Ziffern 0–9, Buchstaben A–D und * oder # im Passwort verwenden.
Bridge: Linux + MCU
Dieser Abschnitt zeigt, wie Sie beide Prozessoren des Arduino UNO Q programmieren, damit die Linux-Seite Tastenfeld-Drücke ferngesteuert lesen kann:
- Das 4x4-Tastenfeld ist mit der MCU (STM32) verbunden – die MCU prüft es über keypad.getKey() in loop()
- Die MPU kann Tastenfeld-Pins nicht direkt lesen – sie muss die zuletzt gedrückte Taste über Bridge.call() von der MCU anfordern
- Die MPU hat Wi-Fi – es läuft vollständiges Debian Linux, daher kann sie auf Tastatureingaben reagieren und Warnungen über das Internet senden
- Arduino_RouterBridge ermöglicht RPC-Kommunikation zwischen den beiden Prozessoren
- ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT vom Router – öffnen Sie diese nie in Benutzercode
Kurz gesagt: MCU prüft das Tastenfeld → MPU liest die zuletzt gedrückte Taste über Bridge → MPU kann auf Tastatureingaben von überall über das Internet reagieren.
Hinweis: Im Bridge-Sketch wird keypad.getKey() in der Arduino-loop() aufgerufen, um Tastatureingaben kontinuierlich zu erkennen – dies ist erforderlich und beeinträchtigt die Bridge-Kommunikation nicht.
MCU-Code (Bridge)
Python-Code (Bridge)
Schnelle Schritte
- Verbinden: Verdrahten Sie das 4x4-Tastenfeld wie im Verdrahtungsdiagramm gezeigt mit Arduino UNO Q.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie auf die Board-Erkennung.
- Erstellen Sie eine neue App: Klicken Sie auf Neue App erstellen, geben Sie der App den Namen Keypad4x4Bridge und klicken Sie auf Erstellen.
- Fügen Sie die MCU-Skizze ein: Kopieren Sie den MCU-Bridge-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
- Fügen Sie den Python-Code ein: Kopieren Sie den Python-Bridge-Code oben und fügen Sie ihn in die Python-Datei der App ein.
- Upload: Klicken Sie auf die Run-Schaltfläche in Arduino App Lab.

- Drücken Sie Tasten auf dem Tastenfeld und beobachten Sie die Python-Konsole.
App Lab Konsolenausgabe
Telegram
Erhalten Sie Telegram-Benachrichtigungen, wenn auf dem 4x4-Tastenfeld eine Taste gedrückt wird – nützlich für Fernzugriffssysteme, Ereignisauslöser oder PIN-Code-Warnungen.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt.
Python-Code (Telegram)
Schnelle Schritte
- Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren tatsächlichen Bot-Token von BotFather.
- Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
- Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie die gleiche MCU-Skizze).
- Klicken Sie auf die Run-Schaltfläche. Drücken Sie Tasten auf dem Tastenfeld – Ihr Telegram-Chat erhält automatisch Warnungen.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino Uno Q - OpenClaw Tutorial
Projektideen
Sie können viele kreative Projekte mit dem 4x4-Tastenfeld und Arduino UNO Q erstellen:
- Ferngesteuertes PIN-Code-Schloss: Der Benutzer gibt eine PIN auf dem Tastenfeld ein; die MCU überprüft diese und steuert ein Relais oder Elektroschloss, während die MPU bei Erfolg oder Misserfolg eine Telegram-Warnung sendet
- Funktionstasten-Controller: Verwenden Sie die Tasten A–D als Funktionstasten-Schnellzugriffe – jede löst eine andere IoT-Aktion aus (z.B. A = Lichter an, B = Lichter aus, C = Lüfter an, D = Alarm)
- Taschenrechner-Schnittstelle: Erstellen Sie einen einfachen Taschenrechner, bei dem der Benutzer zwei Zahlen und einen Operator über das Tastenfeld eingibt und das Ergebnis im Seriellen Monitor oder auf einem LCD angezeigt wird
- Telegram-gesteuerte Tastenfeld-Protokollierung: Alle Tastatureingaben werden automatisch an eine Telegram-Gruppe weitergeleitet, um den Fernzugriff auf einen physischen Ort zu überwachen
- Multi-Benutzer-Zugriffssystem: Weisen Sie verschiedenen Benutzern unterschiedliche PINs zu – die MPU protokolliert jeden erfolgreichen Login mit einem Benutzernamen und Zeitstempel über Telegram
Herausforderungen
Bereit, noch weiter mit dem 4x4-Tastenfeld auf Arduino UNO Q zu gehen? Versuchen Sie diese Herausforderungen:
- Leicht: Ändern Sie die MCU-Skizze so, dass eine LED eingeschaltet wird, wenn Taste A gedrückt wird, und ausgeschaltet wird, wenn Taste B gedrückt wird.
- Mittel: Implementieren Sie ein vollständiges Passwort-System in Python: Sammeln Sie Tastatureingaben, die über Bridge empfangen werden, überprüfen Sie die Eingabe, wenn # ankommt, und senden Sie eine Telegram-Nachricht mit „Zugriff gewährt" oder „Zugriff verweigert".
- Fortgeschritten: Erstellen Sie ein Multi-Benutzer-Tastenfeld-Zugriffssystem – speichern Sie zwei verschiedene PINs in Python; wenn eine der beiden PINs korrekt auf dem Tastenfeld eingegeben wird, aktiviert die MCU ein Relais und die MPU protokolliert das Ereignis mit einem Zeitstempel und sendet eine Telegram-Benachrichtigung, die angibt, welche PIN verwendet wurde.