Arduino UNO Q - Ultraschallsensor mit LCD-Anzeige
In diesem Tutorial erfahren Sie, wie Sie ein Arduino UNO Q mit einem HC-SR04-Ultraschallsensor zum Messen von Entfernungen verwenden und das Ergebnis auf einem LCD I2C-Display anzeigen.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Die meisten LCD I2C-Displays auf dem Markt sind 5V-Displays. Sie funktionieren möglicherweise mit diesem Board, aber das ist nicht sicher und kann das Board beschädigen. Wir empfehlen dringend, das oben empfohlene 3.3V LCD I2C-Display zu verwenden.
Über Ultraschallsensor und LCD
Erfahren Sie mehr über den Ultraschallsensor und LCD I2C in den folgenden Tutorials:
Schaltschema

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
MCU-Code
Das Arduino UNO Q hat zwei Prozessoren: die STM32 MCU (verwaltet Echtzeitsteuerung der Hardware) und die Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur die STM32 MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
※ Notiz:
Die I2C-Adresse für das LCD kann je nach Hersteller unterschiedlich sein. In diesem Beispiel verwenden wir 0x27 (Standard für DIYables LCD-Module).
Schnelle Schritte
- Erstes Mal mit Arduino UNO Q? Folgen Sie dem Tutorial Erste Schritte mit Arduino UNO Q, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Verdrahten Sie die Komponenten: Verbinden Sie TRIG → Pin 4, ECHO → Pin 3. Verbinden Sie das LCD I2C mit dem I2C-Bus (SDA/SCL).
- Verbinden Sie: Stecken Sie das Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer ein.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihr Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.

- Geben Sie der App einen Namen, zum Beispiel: DIYables_UltrasonicLCD
- Klicken Sie auf Erstellen, um zu bestätigen.
- Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert werden.

- Finden Sie die Datei sketch/sketch.ino — hier fügen Sie die MCU-Skizze ein.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for DIYables LCD I2C created by DIYables.io and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Hochladen: Klicken Sie auf die Run-Schaltfläche im Arduino App Lab, um zu kompilieren und auf die STM32 hochzuladen.

- Test: Halten Sie Ihre Hand vor den Sensor — die Entfernung sollte sich alle 500 ms auf dem LCD aktualisieren.
※ Notiz:
- Wenn nichts auf dem LCD angezeigt wird, überprüfen Sie: Troubleshooting LCD I2C
- Dieser Code ist zum Lernen. Für die Produktion wenden Sie den Rauschfilter aus dem Ultraschallsensor-Tutorial an.
Linux + MCU Bridge-Programmierung
Das Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, läuft Debian Linux) und die MCU (STM32, läuft Zephyr OS mit Ihrer Arduino-Skizze). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek — niemals über rohe serielle Anschlüsse.
- Der Ultraschallsensor und das LCD sind beide an die MCU (STM32) angeschlossen — Sensor an den Pins 2/3, LCD über I2C.
- Die MPU kann diese nicht direkt steuern — sie ruft Bridge.call("read_distance") auf der MCU auf, die die Entfernung misst, auf dem LCD anzeigt und an den Monitor ausgibt.
- Die MPU hat Wi-Fi — weil die MPU vollständiges Debian Linux mit Wi-Fi läuft, kann sie Telegram-Befehle empfangen und Messungen remote auslösen.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe() auf der MCU-Seite auf (da digitalWrite() und LCD-Schreibvorgänge Hardware-APIs sind)
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet — öffnen Sie sie nie direkt
Kurz gesagt: MPU fordert Messung an → MCU misst Entfernung → MCU zeigt auf LCD an und gibt an Monitor aus.
MCU-Skizze — Ultraschallsensor LCD-Anzeige mit Bridge:
Python-Skript (Arduino App Lab) — Distanzablesung von Linux alle Sekunde anfordern:
- Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze 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 der Zugriff auf sie unterbricht die Bridge.
Schnelle Schritte
- Laden Sie die MCU-Skizze hoch: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie die Bridge-MCU-Skizze in sketch/sketch.ino ein, installieren Sie die Bibliotheken DIYables_LCD_I2C und Arduino_RouterBridge, und klicken Sie auf Run.
- Fügen Sie das Python-Skript hinzu: Fügen Sie den Python-Code oben in die Python-Registerkarte derselben App ein.
- Führen Sie die App aus: Klicken Sie auf Run — Python fordert alle Sekunde eine Messung an; MCU aktualisiert das LCD und den Monitor.
- Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Konsole → MCU Monitor Unterregisterkarte, um die Entfernungswerte zu sehen.
App Lab Konsolenausgabe
Telegram-Integration
Lesen Sie die Entfernung und zeigen Sie sie über Telegram remote auf dem LCD an.
Wenn Sie noch keinen Telegram-Bot haben, lesen Sie Wie man einen Telegram-Bot erstellt, um Ihr Bot-Token zu erhalten, bevor Sie fortfahren.
MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt — keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits auf die STM32 hochgeladen und läuft, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot für Ultraschall-LCD-Anzeige:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN mit dem Token, den Sie von @BotFather auf Telegram erhalten haben.
- Senden Sie /read, um eine Distanzmessung auszulösen — das Ergebnis erscheint auf dem LCD und im Monitor.
Schnelle Schritte
- Laden Sie die MCU-Skizze hoch: Verwenden Sie die Bridge-MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls noch nicht geschehen).
- Fügen Sie das Telegram-Skript ein: Kopieren Sie den Python-Code oben in die Python-Registerkarte Ihrer App im Arduino App Lab.
- Legen Sie Ihr Token fest: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihren tatsächlichen Bot-Token.
- Führen Sie die App aus: Klicken Sie auf Run — der Bot beginnt, auf Telegram-Nachrichten zu warten.
- Testen Sie es: Senden Sie /read — der Bot antwortet mit der gemessenen Entfernung, die auch auf dem LCD angezeigt wird.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie die Anleitung im Arduino Uno Q - OpenClaw-Tutorial befolgen
Anwendungs-/Projektideen
- Parkplatzassistent-Anzeige: Zeigen Sie "Sicher", "Langsam", "Stopp" auf LCD an, wenn sich ein Fahrzeug einer Wand nähert
- Wasserstands-Anzeige: Montieren Sie den Sensor über einem Tank — zeigen Sie den aktuellen Pegel auf dem LCD an
- Besucher-Entfernungsprotokoll: Zeigen Sie den nächsten Annäherungsabstand auf einem LCD in einem Museumsausstellung an
- Intelligentes Messwerkzeug: Verwenden Sie Sensor + LCD als tragbares Messwerkzeug für Entfernungen
- Objekt-Näherungsanzeige: Zeigen Sie die Annäherungsentfernung in Echtzeit für ein Roboterprojekt an
Herausfordern Sie Sich Selbst
- Einfach: Fügen Sie eine zweite Zeile auf dem LCD hinzu — zeigen Sie "Nah!" wenn Entfernung < 20 cm, "Weit" andernfalls
- Mittel: Zeigen Sie die Entfernung sowohl in Zentimetern als auch in Zoll auf den beiden LCD-Zeilen an
- Fortgeschritten: Senden Sie den tatsächlichen Entfernungswert (in cm) direkt als Nachricht an den Telegram-Benutzer zurück