Arduino UNO Q - Lichtsensor steuert LED
In dieser Anleitung lernen Sie, wie man:
- Die LED einschaltet, wenn der Lichtsensorwert unter einem Schwellenwert liegt (sehr hell)
- Die LED ausschaltet, wenn der Lichtsensorwert über einem Schwellenwert liegt

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.
Der LDR-Lichtsensor benötigt einen Widerstand für die Verdrahtung. Um das Setup zu vereinfachen, können Sie alternativ ein LDR-Lichtsensormodul verwenden.
Über LED und Lichtsensor
Informationen über LED und Lichtsensoren finden Sie in den folgenden Tutorials:
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
MCU-Code
Der Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (kümmert sich um die Hardware-Echtzeitkontrolle) und den Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur der STM32 MCU programmiert – die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammen arbeiten.
※ Notiz:
Der Arduino UNO Q STM32 MCU verfügt über einen 12-Bit-ADC (0–4095) mit einer 3,3-V-Referenz. Der Schwellenwert im Code wird im Vergleich zu 10-Bit-Arduino-Platinen (0–1023) entsprechend skaliert.
Schnelle Schritte
- Zum ersten Mal mit Arduino UNO Q? Befolgen Sie das Erste Schritte mit Arduino UNO Q-Tutorial, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Verbinden Sie die Komponenten: Verbinden Sie den Fotowiderstand und den 10-kΩ-Widerstand (Spannungsteiler) mit A0. Verbinden Sie die LED (mit 220-Ω-Widerstand) mit Pin 3.
- Verbinden Sie: Schließen Sie den Arduino UNO Q mit einem USB-C-Kabel an Ihren Computer an.
- Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren 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_LightSensorLED
- Klicken Sie auf Erstellen, um zu bestätigen.
- Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert werden.

- Suchen 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 Arduino_RouterBridge created by Arduino and click the Install button.
- Hochladen: Klicken Sie in Arduino App Lab auf die Schaltfläche Ausführen, um zum STM32 zu kompilieren und hochzuladen.

- Test: Leuchten Sie mit einer hellen Lichtquelle auf den Sensor – die LED leuchtet auf. Decken Sie den Sensor ab – die LED schaltet sich aus.
Linux + MCU Bridge-Programmierung
Der Arduino UNO Q hat zwei Prozessoren, die zusammen arbeiten: den MPU (Qualcomm, läuft Debian Linux) und den MCU (STM32, läuft Zephyr OS mit Ihrem Arduino-Sketch). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek – niemals über Raw-Serielle Ports.
- Der Lichtsensor und die LED sind beide mit dem MCU (STM32) verbunden – A0 liest den Sensor, Pin 3 steuert die LED.
- Der MPU kann dies nicht direkt steuern – er ruft Bridge.call("check_light") auf dem MCU auf, das den Sensor liest und die LED entsprechend setzt.
- Der MPU hat Wi-Fi – Da der MPU 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 niemals direkt
Kurz gesagt: Python ruft check → MCU liest Sensor → MCU setzt LED und druckt auf Monitor.
MCU-Sketch – Lichtsensor-LED-Steuerung mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) – Lichtkontrolle-Schleife aus Linux ausführen:
- Hinweis: Stellen Sie sicher, dass Bridge.begin() im MCU-Sketch aufgerufen wird und der Sketch hochgeladen wird, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
- ⚠️ Warnung: Öffnen Sie niemals 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 den MCU-Sketch hoch: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie den Bridge-MCU-Sketch in sketch/sketch.ino ein, installieren Sie die Arduino_RouterBridge-Bibliothek und klicken Sie auf Ausführen.
- Fügen Sie das Python-Skript hinzu: Fügen Sie den Python-Code oben auf der Registerkarte Python derselben App ein.
- Führen Sie die App aus: Klicken Sie auf Ausführen – Python ruft check_light alle 500 ms auf; der MCU liest den Sensor und steuert die LED.
- Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Konsole → Registerkarte MCU-Monitor, um Sensorwerte und LED-Status zu sehen.
App Lab Konsolenausgabe
Telegram-Integration
Überwachen Sie den Lichtsensor 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-Sketch: Behalten Sie den gleichen MCU-Sketch aus dem vorherigen Bridge-Abschnitt – keine Änderungen erforderlich. Stellen Sie sicher, dass er bereits hochgeladen und auf dem STM32 ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) – Telegram-Bot für Lichtsensor-LED-Überwachung:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
- Der Bot überprüft kontinuierlich den Lichtsensor und steuert die LED, während er auf Telegram-Befehle lauscht.
- Senden Sie /read, um zu bestätigen, dass der Status im MCU-Monitor protokolliert wurde.
Schnelle Schritte
- Laden Sie den MCU-Sketch hoch: Verwenden Sie den Bridge-MCU-Sketch aus dem vorherigen Abschnitt (laden Sie ihn zuerst hoch, wenn noch nicht geschehen).
- Fügen Sie das Telegram-Skript ein: Kopieren Sie den Python-Code oben auf die Registerkarte Python Ihrer App in Arduino App Lab.
- Stellen Sie Ihr Token ein: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr aktuelles Bot-Token.
- Führen Sie die App aus: Klicken Sie auf Ausführen – der Bot beginnt mit der Steuerung der LED und dem Lauschen auf Telegram-Nachrichten.
- Testen Sie es: Senden Sie /read – der Bot antwortet mit dem aktuellen Sensorwert und LED-Status.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie auf die Anweisung im Arduino UNO Q - OpenClaw-Tutorial verweisen.
Anwendungs-/Projektideen
- Automatische Schreibtischleuchte: Schalten Sie eine LED (oder LED-Streifen über Relais) ein, wenn das Umgebungslicht unter einen Schwellenwert fällt
- Anzeigerücklicht-Steuerung: Dimmen oder Erhellen einer Anzeige basierend auf den umgebenden Lichtverhältnissen
- Intelligente Aquariumbeleuchtung: Schalten Sie die Aquariumbeleuchtung automatisch bei Sonnenuntergang ein und bei Sonnenaufgang aus
- Dunkelheitsanzeiger: Verwenden Sie eine LED, um zu signalisieren, dass es dunkel genug für den Niedrigleistungsmodus ist
- Gewächshaus-Lichtzusatz: Fügen Sie zusätzliches LED-Wachstumslicht hinzu, wenn natürliches Licht unzureichend ist
Herausforderung für sich selbst
- Einfach: Passen Sie den Wert ANALOG_THRESHOLD an, so dass die LED eher bei Dämmerung als bei sehr hellem Licht leuchtet
- Mittel: Senden Sie eine Telegram-Benachrichtigung, wenn sich die LED ein- oder ausschaltet (Lichtwechsel-Ereignisbenachrichtigung)
- Fortgeschritten: Implementieren Sie ein Hysteresband (z. B. unter 150 einschalten, über 300 ausschalten), um schnelles Flimmern am Schwellenwert zu verhindern