Arduino UNO Q - LCD-Tastaturschild

Benutzerein eingabe zu erfassen und Feedback anzuzeigen ist eine Kernfähigkeit in jedem Arduino-Projekt, und das LCD-Tastaturschild macht es mühelos auf Arduino UNO Q. Dieses All-in-One-Schild stapelt sich direkt auf Ihrem Arduino UNO Q und gibt Ihnen ein 16×2-LCD-Display und fünf Eingabetasten auf einer einzigen kompakten Platine – keine zusätzliche Verdrahtung erforderlich!

In diesem Tutorial erfahren Sie:

Arduino UNO Q - LCD-Tastaturschild

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino Uno Q
1×LCD-Tastaturschild
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das LCD-Tastaturschild

Das LCD-Tastaturschild ist ein Plug-and-Play-Arduino-Schild, das ein 16×2-Zeichen-LCD-Display mit fünf Eingabetasten auf einer einzigen Platine kombiniert.

  • Display: 16×2-LCD — zeigt 2 Reihen mit 16 Zeichen an, angetrieben durch die LiquidCrystal-Bibliothek
  • Tasten: 5 Eingabetasten (Rechts, Oben, Unten, Links, Auswahl) – alle verbunden mit einem einzigen analogen Pin (A0) mithilfe einer Widerstandsleiter
  • Reset: 1 dedizierte Reset-Taste zum Neustart des Arduino UNO Q
  • Kontrast: Eingebautes Potentiometer (Drehknopf) zur Anpassung des LCD-Kontrasts
  • Formfaktor: Standard-Arduino-Schild – stapelt sich direkt auf Arduino UNO Q-Stifte, keine zusätzliche Verdrahtung erforderlich
  • Warum es großartig für Anfänger ist: Einfach einstöpseln und los – kein Löten, keine Jumper-Kabel und Sie erhalten sofortiges visuelles Feedback

Pinbelegung

LCD-Tastaturschild-Pinbelegung

Das LCD-Tastaturschild verbindet sich mit Arduino UNO Q über seine Shield-Header. So wird jeder Pin zugeordnet:

Shield-Pin Funktion Arduino UNO Q-Pin
DB4 LCD-Daten 4
DB5 LCD-Daten 5
DB6 LCD-Daten 6
DB7 LCD-Daten 7
RS Registerauswahl 8
E Aktivieren 9
Analog A0 Tasten eingabe A0
  • Reset-Taste: Startet Arduino UNO Q neu, wenn gedrückt
  • Potentiometer (Drehknopf): Passt den LCD-Kontrast an – drehen Sie ihn, wenn der Bildschirm leer oder zu dunkel aussieht

※ Notiz:

Kompatibilitätshinweis für Arduino UNO Q:

  • LCD-Display: Funktioniert perfekt – die LiquidCrystal-Bibliothek steuert alle 16×2-Display-Funktionen ohne Probleme.
  • Tasten – wichtig: Die Tasten sind alle über eine Widerstandsleiter mit einem einzigen analogen Pin (A0) verbunden. Das Schild wurde für eine 5V-ADC entwickelt, aber der STM32 auf Arduino UNO Q verwendet eine 3,3V-Referenz mit einem 12-Bit-ADC (0–4095). Verschiedene Schildhersteller verwenden unterschiedliche Widerstandswerte, daher variiert die ADC-Ablesung für jede Taste zwischen den Schilden. Sie müssen die Schwellwerte für Ihren spezifischen Schild kalibrieren (siehe Abschnitt zur Fehlerbehebung) – andernfalls können Tasten möglicherweise falsch erkannt werden (z. B. LINKS als UNTEN erkannt).
  • AUSWAHL-Taste: Hängt von Ihrer Schildvariante ab. Bei einigen Schilden erzeugt AUSWAHL eine Spannung über 3,3V, die auf 4095 begrenzt ist (dasselbe wie „keine Taste") – AUSWAHL kann nicht erkannt werden. Bei anderen Schilden erzeugt AUSWAHL eine Spannung unter 3,3V und kann erkannt werden. Kalibrieren Sie zuerst, um es herauszufinden.

Das LCD-Tastaturschild von DIYables, das in diesem Tutorial verwendet wird, funktioniert gut mit Arduino UNO Q für alle fünf Tasten, einschließlich AUSWAHL.

Schaltplan

Keine Verdrahtung erforderlich – stapeln Sie einfach das LCD-Tastaturschild direkt auf Ihrem Arduino UNO Q und die Stifte richten sich automatisch aus.

Arduino UNO Q LCD-Tastaturschild-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Hinweis: Stellen Sie sicher, dass das Schild fest nach unten gedrückt wird, damit alle Stifte einen soliden Kontakt herstellen.

MCU-Code (Direktes Arduino-Sketch)

Arduino UNO Q hat zwei Prozessoren – wie zwei Gehirne in einer Platine: die STM32-MCU (verwaltet Echtzeit-Hardware-Steuerung) und die Qualcomm-MPU (läuft Linux). In diesem Abschnitt programmieren wir nur die STM32-MCU unter Verwendung von Arduino C/C++ – die Linux-Seite bleibt untätig. In einem späteren Abschnitt werden wir beide Prozessoren programmieren und sie miteinander interagieren lassen.

Hier ist das Arduino-Sketch, das direkt auf der STM32-MCU läuft, um Tastendrücke zu erkennen und Ergebnisse auf dem LCD anzuzeigen.

  • Initialisiert das 16×2-LCD mit der LiquidCrystal-Bibliothek
  • Liest den Analog wert von A0, um zu erkennen, welche Taste gedrückt wird
  • Zeigt den Namen der gedrückten Taste auf dem LCD in Echtzeit an
  • Meldet Tastenereignisse über Monitor.println() an die App Lab-Konsole
/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-lcd-keypad-shield */ #include <LiquidCrystal.h>#include "Arduino_RouterBridge.h" LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { analogReadResolution(12); // STM32 on UNO Q: 12-bit ADC (0-4095) Monitor.begin(); lcd.begin(16, 2); lcd.print("Hello!"); delay(3000); } void loop() { int key = analogRead(A0); // Shield resistor ladder outputs up to 5V, but STM32 ADC reference is 3.3V (12-bit, 0-4095). // ADC values VARY between shield manufacturers — run the calibration sketch first! // Calibrated values: RIGHT~0, UP~590, DOWN~1500, LEFT~2390, SELECT~3733, NONE~4095 // Thresholds are midpoints between adjacent button values. lcd.clear(); if (key < 295) { lcd.print("RIGHT"); Monitor.println("Button: RIGHT"); } else if (key < 1045) { lcd.print("UP"); Monitor.println("Button: UP"); } else if (key < 1945) { lcd.print("DOWN"); Monitor.println("Button: DOWN"); } else if (key < 3062) { lcd.print("LEFT"); Monitor.println("Button: LEFT"); } else if (key < 3914) { lcd.print("SELECT"); Monitor.println("Button: SELECT"); } else { lcd.print("Press key!"); Monitor.println("Button: NONE"); } delay(200); }

Schnelle Schritte

  • Erste Schritte mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vor dem Fortfahren vorzubereiten.
  • Schild stapeln: Drücken Sie das LCD-Tastaturschild fest auf Ihren Arduino UNO Q – alle Stifte sollten ausgerichtet und vollständig sitzen.
  • Verbinden: Verbinden Sie Ihren Arduino UNO Q mit einem USB-C-Kabel mit Ihrem Computer.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis Ihr Arduino UNO Q erkannt wird – dies kann beim ersten Start mehrere Minuten dauern.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche App erstellen.
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, beispielsweise: DIYables_LCD_Keypad_Shield
  • Klicken Sie auf Erstellen, um zu bestätigen.
  • Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert werden.
Arduino App Lab App-Ordner und -Dateien auf Arduino UNO Q
  • Suchen Sie die Datei sketch/sketch.ino – hier werden Sie das MCU-Sketch einfügen.
  • Sketch einfügen: Kopieren Sie den MCU-Code oben und fügen Sie ihn in diese Sketch-Datei ein. Halten 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.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for LiquidCrystal created by Arduino, Adafruit and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    LiquidCrystal Arduino, Adafruit

    This library allows an Arduino/Genuino board to control LiquidCrystal displays (LCDs) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. The library works with in either 4 or 8 bit mode (i.e. using 4 or 8 data lines in addition to the rs, enable, and, optionally, the rw control lines).

    1.0.7
    Install
    More Info
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Hochladen: Klicken Sie in Arduino App Lab auf die Schaltfläche Ausführen, um den Code zu kompilieren und auf den STM32 hochzuladen.
    Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab auf Arduino UNO Q
    • Testen: Drücken Sie nacheinander jede Taste (Rechts, Oben, Unten, Links, Auswahl) und beobachten Sie die LCD-Aktualisierung.
    • Schwarzer Bildschirm? Drehen Sie den Kontrastknopf auf dem Schild, bis der Text deutlich sichtbar ist.
    • Profi-Tipp: Drücken Sie die Reset-Taste auf dem Schild, um Ihren Sketch neu zu starten, ohne das USB-C-Kabel abzuziehen.

    App Lab-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    [2026-04-28 10:01:10] Button: NONE [2026-04-28 10:01:13] Button: RIGHT [2026-04-28 10:01:16] Button: UP [2026-04-28 10:01:19] Button: DOWN [2026-04-28 10:01:22] Button: LEFT [2026-04-28 10:01:25] Button: SELECT

    Bonus: Sauberer Code

    Möchten Sie, dass Ihr Code professioneller aussieht? Hier ist eine erweiterte Version mit gut organisierten Funktionen:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-lcd-keypad-shield */ #include <LiquidCrystal.h> // Define constants for key representations const int KEY_RIGHT = 0; const int KEY_UP = 1; const int KEY_DOWN = 2; const int KEY_LEFT = 3; const int KEY_SELECT = 4; const int KEY_NONE = 5; LiquidCrystal lcd(8, 9, 4, 5, 6, 7); int getKey() { int analogValue = analogRead(A0); // Shield resistor ladder outputs up to 5V, but STM32 ADC reference is 3.3V (12-bit, 0-4095). // ADC values VARY between shield manufacturers — run the calibration sketch first! // Calibrated values: RIGHT~0, UP~590, DOWN~1500, LEFT~2390, SELECT~3733, NONE~4095 // Thresholds are midpoints between adjacent button values. if (analogValue < 295) return KEY_RIGHT; else if (analogValue < 1045) return KEY_UP; else if (analogValue < 1945) return KEY_DOWN; else if (analogValue < 3062) return KEY_LEFT; else if (analogValue < 3914) return KEY_SELECT; else return KEY_NONE; } void setup() { analogReadResolution(12); // STM32 on UNO Q: 12-bit ADC (0-4095) lcd.begin(16, 2); lcd.print("Hello!"); delay(3000); } void loop() { lcd.clear(); int key = getKey(); switch (key) { case KEY_RIGHT: lcd.print("RIGHT"); break; case KEY_UP: lcd.print("UP"); break; case KEY_DOWN: lcd.print("DOWN"); break; case KEY_LEFT: lcd.print("LEFT"); break; case KEY_SELECT: lcd.print("SELECT"); break; default: lcd.print("Press key!"); break; } delay(200); }

    Linux + MCU-Brücken-Programmierung

    Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, läuft Debian Linux) und die MCU (STM32, läuft Zephyr OS mit Ihrem Arduino-Sketch). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek – nie über Raw-Serial-Ports.

    • MPU (Linux-Seite): Führt Python aus, um den Tastenzustand abzufragen und Text an das LCD zu senden
    • MCU (STM32-Seite): Verwaltet das Lesen von Tasten in Echtzeit und LCD-Updates
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide()-Funktionen auf der MCU-Seite auf
    • ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino-Router verwendet – öffnen Sie sie nie direkt

    MCU-Sketch – macht Tastenlesen und LCD-Schreiben auf der Linux-Seite verfügbar:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-lcd-keypad-shield */ #include "Arduino_RouterBridge.h" #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { analogReadResolution(12); // STM32 on UNO Q: use 12-bit ADC (0-4095) lcd.begin(16, 2); lcd.print("Bridge ready..."); Bridge.begin(); Monitor.begin(); Bridge.provide("read_button", read_button); Bridge.provide("set_lcd_line1", set_lcd_line1); Bridge.provide("set_lcd_line2", set_lcd_line2); Monitor.println("MCU Bridge ready."); } void loop() {} int read_button() { int val = analogRead(A0); // Shield outputs up to 5V; STM32 ADC reference is 3.3V (12-bit, 0-4095). // ADC values VARY between shield manufacturers — run the calibration sketch first! // Calibrated values: RIGHT~0, UP~590, DOWN~1500, LEFT~2390, SELECT~3733, NONE~4095 // Thresholds are midpoints between adjacent button values. if (val < 295) return 1; // RIGHT if (val < 1045) return 2; // UP if (val < 1945) return 3; // DOWN if (val < 3062) return 4; // LEFT if (val < 3914) return 5; // SELECT return 0; // NONE — no button pressed } void set_lcd_line1(String text) { lcd.setCursor(0, 0); lcd.print(" "); // clear line lcd.setCursor(0, 0); lcd.print(text); } void set_lcd_line2(String text) { lcd.setCursor(0, 1); lcd.print(" "); // clear line lcd.setCursor(0, 1); lcd.print(text); }

    Python-Skript (Arduino App Lab) – Tastenzustand abfragen und LCD von Linux aktualisieren:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-lcd-keypad-shield */ from arduino.app_utils import * import time BUTTON_NAMES = {0: "NONE", 1: "RIGHT", 2: "UP", 3: "DOWN", 4: "LEFT", 5: "SELECT"} def loop(): btn = Bridge.call("read_button") name = BUTTON_NAMES.get(btn, "UNKNOWN") Bridge.call("set_lcd_line1", "Button pressed:") Bridge.call("set_lcd_line2", name) print(f"Button: {name}") time.sleep(0.5) App.run(user_loop=loop)
    • Hinweis: Stellen Sie sicher, dass Bridge.begin() im MCU-Sketch aufgerufen wird und der Sketch hochgeladen ist, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
    • ⚠️ Warnung: Öffnen Sie nie direkt /dev/ttyHS1 (auf Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code – diese sind vom Arduino-Router reserviert und ihr Zugriff führt zum Unterbrechen der Brücke.

    Schnelle Schritte

    • MCU-Sketch hochladen: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie das MCU-Sketch oben in die Sketch-Registerkarte ein und klicken Sie auf Ausführen.
    • Python-Skript hinzufügen: Fügen Sie den Python-Code oben in die Python-Registerkarte derselben App ein.
    • App ausführen: Klicken Sie auf Ausführen – die Linux-Seite beginnt, den Tastenzustand alle 0,5 Sekunden abzufragen.
    • Drücken Sie Tasten: Drücken Sie eine der fünf Tasten und beobachten Sie, wie sich sowohl das LCD als auch die App Lab-Konsole in Echtzeit aktualisieren.
    • Profi-Tipp: Erhöhen Sie den Wert time.sleep(), um die Abfragehäufigkeit zu verringern und die CPU-Auslastung auf der Linux-Seite zu senken.

    App Lab-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    MCU Bridge ready.
    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-28 10:05:01] Button: NONE [2026-04-28 10:05:02] Button: NONE [2026-04-28 10:05:02] Button: UP [2026-04-28 10:05:03] Button: UP [2026-04-28 10:05:04] Button: LEFT [2026-04-28 10:05:04] Button: NONE

    Telegram-Integration

    Sie können Ihren Arduino UNO Q LCD-Tastaturschild remote über Telegram steuern – zeigen Sie eine beliebige Nachricht auf dem LCD-Bildschirm an oder überprüfen Sie, welche Taste gedrückt wird, von überall aus.

    Wenn Sie noch keinen Telegram-Bot haben, siehe So erstellen Sie einen Telegram-Bot, um Ihr Bot-Token vor dem Fortfahren zu erhalten.

    Dieser Abschnitt behandelt:

    • Ausführen eines Python-Skripts auf der Linux-Seite des Arduino UNO Q, um auf Telegram-Nachrichten zu lauschen
    • Weiterleiten von Befehlen von Telegram zur MCU-Seite, um das LCD zu aktualisieren oder den Tastenzustand zu lesen
    • Senden des MCU-Ergebnisses als Telegram-Antwort zurück

    MCU-Sketch: Behalten Sie das gleiche MCU-Sketch aus dem vorherigen Bridge-Abschnitt – keine Änderungen erforderlich. Stellen Sie sicher, dass es bereits hochgeladen ist und auf dem STM32 läuft, bevor Sie fortfahren.

    Python-Skript (Arduino App Lab) – Telegram-Bot für LCD-Tastaturschild:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-lcd-keypad-shield */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" BUTTON_NAMES = {0: "NONE", 1: "RIGHT", 2: "UP", 3: "DOWN", 4: "LEFT", 5: "SELECT"} last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text.startswith("/lcd "): content = text[5:] line1 = content[:16] line2 = content[16:32] if len(content) > 16 else "" Bridge.call("set_lcd_line1", line1) Bridge.call("set_lcd_line2", line2) send_message(chat_id, f"LCD updated: {content}") elif text == "/button": btn = Bridge.call("read_button") name = BUTTON_NAMES.get(btn, "UNKNOWN") send_message(chat_id, f"Button pressed: {name}") else: send_message(chat_id, "Commands:\n/lcd <text> — display text on LCD\n/button — read current button state") time.sleep(1) App.run(user_loop=loop)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das von @BotFather auf Telegram erhalten wurde.
    • Senden Sie /lcd Hello UNO Q!, um eine Nachricht auf dem LCD-Bildschirm anzuzeigen.
    • Senden Sie /button, um zu überprüfen, welche Taste auf dem Schild gerade gedrückt wird.

    Schnelle Schritte

    • Erstellen Sie einen Telegram-Bot: Schreiben Sie @BotFather auf Telegram, senden Sie /newbot, befolgen Sie die Anweisungen und kopieren Sie Ihr Bot-Token.
    • MCU-Sketch hochladen: Verwenden Sie das Bridge MCU-Sketch aus dem vorherigen Abschnitt (laden Sie es zuerst hoch, falls noch nicht geschehen).
    • Telegram-Skript einfügen: Kopieren Sie den Python-Code oben in die Python-Registerkarte Ihrer App in Arduino App Lab.
    • Legen Sie Ihr Token fest: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
    • App ausführen: Klicken Sie auf Ausführen – der Bot beginnt sofort, auf Telegram-Nachrichten zu lauschen.
    • Testen Sie es: Senden Sie /lcd Hello! an Ihren Bot und sehen Sie, wie der Text auf dem LCD angezeigt wird.
    • Profi-Tipp: Verwenden Sie /button, um remote zu überprüfen, welche Schildtaste ein Benutzer drückt – ideal für Remote-Debugging oder Game-Controller.

    App Lab-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-28 10:10:01] Telegram: /lcd Hello UNO Q! [2026-04-28 10:10:01] LCD updated: Hello UNO Q! [2026-04-28 10:10:18] Telegram: /button [2026-04-28 10:10:18] Button pressed: SELECT [2026-04-28 10:10:35] Telegram: /lcd Arduino is fun [2026-04-28 10:10:35] LCD updated: Arduino is fun
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /lcd Hello UNO Q!
    10:15 AM ✓✓
    LCD updated: Hello UNO Q!
    10:16 AM
    /button
    10:17 AM ✓✓
    Button pressed: SELECT
    10:18 AM
    /lcd Arduino is fun
    10:19 AM ✓✓
    LCD updated: Arduino is fun
    10:20 AM

    OpenClaw-Integration

    Sie können das OpenClaw an diesem Tutorial anpassen, indem Sie auf die Anweisung zum Tutorial Arduino Uno Q - OpenClaw verweisen

    Ideen für Anwendungen/Projekte

    Hier sind einige unterhaltsame Projektideen, die Sie mit dem LCD-Tastaturschild und Arduino UNO Q erstellen können:

    • Menügesteuertes System: Verwenden Sie die Tasten Oben/Unten, um Menüelemente zu durchlaufen, die auf dem LCD angezeigt werden
    • Digitales Anzeigetafel: Verfolgung von Punkten für ein Spiel mit zwei Spielern unter Verwendung der Select-Taste zum Zurücksetzen
    • PIN-Code-Eingabe: Geben Sie einen Code mit den Tasten ein und zeigen Sie maskiertes Feedback auf dem LCD an
    • Telegram-gesteuerte Anzeige: Ermöglichen Sie jedem, Ihren Arduino UNO Q eine Nachricht zu senden, um die angezeigten Inhalte remote zu aktualisieren
    • Dashboard für Remote-Sensoren: Anzeige von Temperatur- oder Feuchtigkeitswerten von Sensoren auf dem LCD, lesbar und aktualisierbar über Telegram
    • Einfache Stoppuhr: Starten/Stop mit Select, Zurücksetzen mit Links und Anzeige der verstrichenen Zeit auf der 16×2-Anzeige

    Benötigen Sie mehr LCD-Tricks? Schauen Sie sich das Tutorial Arduino LiquidCrystal LCD an, um mehr Ideen zu erhalten.

    Fordern Sie sich selbst heraus

    Versuchen Sie diese Herausforderungen mit Ihrem LCD-Tastaturschild und Arduino UNO Q, um Ihre Fähigkeiten zu verbessern:

    • Einfach: Lassen Sie das LCD eine Willkommensnachricht auf Zeile 1 anzeigen und aktualisieren Sie Zeile 2 mit dem Namen jeder Taste, wenn sie gedrückt wird
    • Mittel: Erstellen Sie eine Stoppuhr – verwenden Sie Select zum Starten/Stoppen und Links zum Zurücksetzen, wobei die verstrichene Zeit alle Sekunden auf dem LCD aktualisiert wird
    • Fortgeschritten: Erstellen Sie ein Telegram-gesteuerte Menü mit mehreren Ebenen, bei dem Benutzer die LCD-Menüs remote navigieren können, indem sie Oben/Unten/Select-Befehle über den Telegram-Bot senden

    Fehlerbehebung

    Tasten werden falsch erkannt (falscher Tastenname angezeigt):

    Die Button-ADC-Werte unterscheiden sich je nach Schildhersteller. Der Code ist für Arduino UNO Q vorkalibriert, aber wenn Ihr Schild unterschiedliche Widerstände verwendet, müssen Sie neu kalibrieren. Laden Sie das Kalibrierungs-Sketch unten hoch, halten Sie nacheinander jede Taste fest und notieren Sie den auf dem LCD und der App Lab-Konsole angezeigten ADC-Wert:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-lcd-keypad-shield */ #include <LiquidCrystal.h>#include "Arduino_RouterBridge.h" // LCD Keypad Shield — ADC Calibration Sketch // Upload this sketch, then hold each button one at a time. // Note the ADC value shown on the LCD and in the App Lab console. // Use those values to set the correct thresholds in your main sketch. LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { analogReadResolution(12); // STM32 on UNO Q: 12-bit ADC (0-4095) lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Hold each button"); Monitor.begin(); Monitor.println("Hold each button and note the ADC value:"); Monitor.println(" NONE (no key): should be near 4095"); Monitor.println(" RIGHT, UP, DOWN, LEFT, SELECT: record each value"); } void loop() { int val = analogRead(A0); lcd.setCursor(0, 1); lcd.print("A0: "); lcd.print(val); lcd.print(" "); // clear leftover digits Monitor.println(val); delay(300); }

    Schreiben Sie Ihre Ergebnisse auf:

    Taste Ihr ADC-Wert
    RIGHT ?
    UP ?
    DOWN ?
    LEFT ?
    SELECT ?
    NONE ?

    Stellen Sie dann jeden Schwellwert in Ihrem Sketch auf den Mittelpunkt zwischen zwei benachbarten Tastenwerten ein. Wenn beispielsweise UP = 590 und DOWN = 1500, liegt der Schwellwert zwischen ihnen bei (590 + 1500) / 2 = 1045.

    SELECT-Taste funktioniert nicht:

    Einige Schilde verwenden eine Widerstandsleiter mit höherer Impedanz, die die SELECT-Spannung über 3,3V drückt – die ADC-Grenze des STM32. In diesem Fall wird SELECT auf 4095 begrenzt (dasselbe wie keine Taste gedrückt) und kann nicht erkannt werden. Verwenden Sie das Kalibrierungs-Sketch zum Überprüfen: Wenn SELECT und NONE beide 4095 lesen, kann SELECT auf Ihrem Schild nicht verwendet werden.

    Schwarzer oder fehlerhafter LCD-Bildschirm:

    Drehen Sie den Kontrastknopf (Potentiometer) auf dem Schild, bis der Text deutlich sichtbar ist.

    ※ UNSERE NACHRICHTEN

    • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!