Arduino UNO Q - Ultraschallsensor steuert LED

In diesem Tutorial erfahren Sie, wie Sie einen Ultraschallsensor zur Steuerung einer LED basierend auf der Objektentfernung verwenden:

Arduino UNO Q Ultraschallsensor LED

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino UNO Q
1×Ultraschallsensor
1×LED Kit
1×LED (red)
1×LED Module
1×220 Ohm Widerstand
1×Steckplatine
1×Jumper-Drähte
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.

Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.

Über LED und Ultraschallsensor

Erfahren Sie mehr über LED und Ultraschallsensoren in den folgenden Tutorials:

Schaltschema

Arduino UNO Q Ultraschallsensor LED Schaltschema

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

MCU-Code

Das Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (verwaltet Echtzeit-Hardware-Steuerung) und den Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur der STM32 MCU programmiert — die Linux-Seite bleibt inaktiv. In einem späteren Abschnitt wird gezeigt, wie beide Prozessoren zusammen arbeiten.

/* * 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-ultrasonic-sensor-led */ #define TRIG_PIN 8 // The Arduino UNO Q pin connected to the ultrasonic sensor's TRIG pin #define ECHO_PIN 7 // The Arduino UNO Q pin connected to the ultrasonic sensor's ECHO pin #define LED_PIN 3 // The Arduino UNO Q pin connected to the LED's pin #define DISTANCE_THRESHOLD 50 // centimeters float duration_us, distance_cm; void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(LED_PIN, OUTPUT); } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; if (distance_cm < DISTANCE_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED delay(500); }

Schnelle Schritte

  • Erstes Mal mit Arduino UNO Q? Folgen Sie dem Erste Schritte mit Arduino UNO Q-Tutorial, um Ihre Entwicklungsumgebung vor dem Fortfahren vorzubereiten.
  • Verbinden Sie die Komponenten: Verbinden Sie TRIG → Pin 8, ECHO → Pin 7, LED (mit 220 Ω Widerstand) → Pin 3.
  • Verbinden: Stecken Sie das Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer.
  • Ö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 Create New App (Neue App erstellen).
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z. B.: DIYables_UltrasonicLED
  • Klicken Sie auf Create (Erstellen), um dies 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 fügen Sie die MCU-Skizze ein.
  • Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in die Skizzendatei ein. Behalten Sie andere Dateien als Standard bei.
    • 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 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
    • Upload: Klicken Sie auf die Schaltfläche Run in Arduino App Lab, um den Code zu kompilieren und auf den STM32 hochzuladen.
    Klicken Sie auf die Schaltfläche Run in Arduino App Lab auf Arduino UNO Q
    • Test: Führen Sie Ihre Hand zum Sensor — die LED schaltet sich ein, wenn Sie sich dem Sensor bis 50 cm nähern.

    ※ Notiz:

    Dieser Code dient zu Lernzwecken. Der Ultraschallsensor ist empfindlich gegenüber Rauschen. Für die Produktionsnutzung wenden Sie den Rauschfilter aus dem Ultraschallsensor-Tutorial an.

    Linux + MCU Bridge-Programmierung

    Das Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: den MPU (Qualcomm, führt Debian Linux aus) und den MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren über RPC über die Bibliothek Arduino_RouterBridge — niemals über Raw-Serielle Anschlüsse.

    • Der Ultraschallsensor und die LED sind mit dem MCU (STM32) verbunden — TRIG an Pin 8, ECHO an Pin 7, LED an Pin 3.
    • Der MPU kann diese nicht direkt steuern — er ruft Bridge.call("check_distance") auf dem MCU auf, das die Entfernung misst und die LED entsprechend einstellt.
    • Der MPU hat Wi-Fi — da der MPU ein vollständiges Debian Linux mit Wi-Fi ausführt, kann er Telegram ausführen und die Überprüfung automatisch durchschleifen.
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe() auf der MCU-Seite auf (da digitalWrite() eine Hardware-API ist)
    • ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet — öffnen Sie sie nie direkt

    Kurz gesagt: Python ruft Überprüfung auf → MCU misst Entfernung → MCU stellt LED ein und druckt zum Monitor.

    MCU-Skizze — Ultraschallsensor-LED-Steuerung mit Bridge und Monitor-Ausgabe:

    /* * 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-ultrasonic-sensor-led */ #include "Arduino_RouterBridge.h" #define TRIG_PIN 8 #define ECHO_PIN 7 #define LED_PIN 3 #define DISTANCE_THRESHOLD 50 void check_distance() { digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); float duration_us = pulseIn(ECHO_PIN, HIGH); float distance_cm = 0.017 * duration_us; bool led_on = distance_cm < DISTANCE_THRESHOLD; digitalWrite(LED_PIN, led_on ? HIGH : LOW); Monitor.print("Distance: "); Monitor.print(distance_cm); Monitor.print(" cm -> LED: "); Monitor.println(led_on ? "ON" : "OFF"); } void setup() { Bridge.begin(); Monitor.begin(); pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); Bridge.provide_safe("check_distance", check_distance); Monitor.println("Ultrasonic Sensor LED Bridge ready"); } void loop() {}

    Python-Skript (Arduino App Lab) — Entfernungsprüfung-Schleife von Linux ausführen:

    /* * 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-ultrasonic-sensor-led */ from arduino.app_utils import * import time def loop(): Bridge.call("check_distance") time.sleep(0.5) App.run(user_loop=loop)
    • Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen wird, 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 darauf 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 Bibliothek 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 ruft check_distance alle 500 ms auf; der MCU misst die Entfernung und steuert die LED.
    • Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Console → MCU Monitor-Unterregisterkarte, um die Entfernung und den LED-Status zu sehen.

    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
    Ultrasonic Sensor LED Bridge ready Distance: 65.2 cm -> LED: OFF Distance: 32.1 cm -> LED: ON Distance: 14.3 cm -> LED: ON Distance: 78.9 cm -> LED: OFF

    Telegram-Integration

    Überwachen Sie den Ultraschallsensor und den LED-Status remote über Telegram.

    Wenn Sie noch keinen Telegram-Bot haben, lesen Sie So erstellen Sie einen Telegram-Bot, 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 hochgeladen und auf dem STM32 ausgeführt wird, bevor Sie fortfahren.

    Python-Skript (Arduino App Lab) — Telegram-Bot für Ultraschallsensor-LED-Überwachung:

    /* * 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-ultrasonic-sensor-led */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" 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 Bridge.call("check_distance") # continuously control LED based on distance 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 == "/read": status = Bridge.call("check_distance") send_message(chat_id, status) else: send_message(chat_id, "Commands:\n/read — check distance and LED state") time.sleep(0.5) App.run(user_loop=loop)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
    • Der Bot überprüft kontinuierlich die Entfernung und steuert die LED, während er auf Telegram-Befehle hört.
    • Senden Sie /read, um eine Bestätigung anzufordern, dass der Status im MCU Monitor protokolliert wurde.

    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 in Arduino App Lab.
    • Stellen Sie Ihr Token ein: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr echtes Bot-Token.
    • Führen Sie die App aus: Klicken Sie auf Run — der Bot beginnt, die LED zu steuern und auf Telegram-Nachrichten zu hören.
    • Testen Sie es: Senden Sie /read — der Bot antwortet mit der aktuellen Entfernung und dem LED-Status.

    App Lab-Python-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /read [2026-04-29 12:00:01] Distance: 29.4 cm -> LED: ON
    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
    /read
    10:15 AM ✓✓
    Distance: 29.4 cm -> LED: ON
    10:16 AM

    OpenClaw-Integration

    Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie sich auf die Anleitung im Arduino UNO Q - OpenClaw-Tutorial beziehen.

    Anwendungs-/Projektideen

    • Näherungswarnung-Licht: Lassen Sie eine LED aufblinken, wenn sich ein Objekt nähert (kombinieren Sie mit Entfernungsschwellwerten)
    • Automatisches Nachtlicht: Schalten Sie eine LED ein, wenn jemand einen Sensor in der Nacht nähert
    • Hindernisanzeige: Verwenden Sie die LED, um anzuzeigen, dass sich ein Roboter zu nah an einer Wand befindet
    • Sicherheitsmitteilung für Kinder: Befestigen Sie an einer Schublade oder einem Schrank — LED leuchtet, wenn jemand hineingreift
    • Helligkeit-Auslöser: Aktivieren Sie eine Hintergrundbeleuchtung, wenn ein Benutzer in der Nähe erkannt wird

    Herausforderung für Sie

    • Einfach: Ändern Sie den DISTANCE_THRESHOLD von 50 cm auf 20 cm und beobachten Sie den Unterschied
    • Mittel: Fügen Sie mehrere Schwellwerte hinzu — blinken Sie langsam bei 50 cm, blinken Sie schnell bei 30 cm, bleiben Sie bei 15 cm an
    • Fortgeschrittene: Senden Sie den tatsächlichen Entfernungswert (in cm) direkt als Nachricht zurück an den Telegram-Benutzer

    ※ 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!