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: Eine weitere Möglichkeit ist, das LCD I2C-Display zu erstellen, indem Sie LCD 1602 Display und PCF8574 I2C Adapter Module kombinieren.
Ü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