Arduino UNO Q - Lichtsensor
Dieses Tutorial zeigt dir, wie du einen LDR-Lichtsensor mit Arduino UNO Q verwendest. Im Detail wirst du lernen:
- Wie ein LDR-Lichtsensor funktioniert
- Wie man einen Lichtsensor mit Arduino UNO Q verbindet
- Wie man ein Programm schreibt, um den Wert vom Lichtsensor zu lesen

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Der LDR-Lichtsensor ist sehr erschwinglich, erfordert aber einen Widerstand zur Verdrahtung, was den Aufbau komplexer machen kann. Um die Verdrahtung zu vereinfachen, können Sie ein LDR-Lichtsensormodul als Alternative verwenden.
Über Lichtsensor
Dieses Tutorial verwendet einen Lichtsensor, der als Photowiderstand bekannt ist, auch Light-Dependent Resistor (LDR) oder Photozelle genannt. Er wird verwendet, um herauszufinden und zu messen, wie hell das umgebende Licht ist.
Pinbelegung
Ein Photowiderstand hat zwei Pins. Da es sich um eine Art Widerstand handelt, müssen wir diese Pins nicht separat identifizieren. Sie sind gleich.

Wie es funktioniert
Ein Photowiderstand ist eine spezielle Art von Widerstand, der seinen Widerstand basierend auf der Menge des Lichts ändert, das er erkennt. Wenn viel Licht vorhanden ist, wird der Widerstand sehr niedrig. Wenn wenig oder kein Licht vorhanden ist, wird der Widerstand sehr hoch. Durch Messung des Widerstands des Photowiderstands können wir bestimmen, wie hell oder dunkel das umgebende Licht ist.

WARNING
Der Lichtsensorwert zeigt eine ungefähre Vorstellung davon, wie hell das Licht ist, gibt aber nicht die genaue Menge an Licht an. Verwenden Sie ihn nur in Situationen, in denen Sie keine sehr genauen Messungen benötigen.
Arduino UNO Q - Lichtsensor
Der Arduino UNO Q STM32 MCU hat einen 12-Bit ADC mit einer 3,3V-Referenz. Analoge Eingangspins A0–A5 konvertieren Spannung (0 V bis 3,3 V) in Werte zwischen 0 und 4095.
Durch Verbinden eines Pins des Photowiderstands mit einem analogen Eingabepin des Arduino UNO Q können wir den analogen Wert mithilfe der analogRead()-Funktion lesen, um relative Lichtstufen zu bestimmen.
※ Notiz:
Der Arduino UNO Q verwendet einen 12-Bit ADC (0–4095) mit einer 3,3V-Referenz — anders als Arduino UNO R4, das einen 14-Bit ADC verwendet, oder traditionelle Uno-Boards, die 10-Bit (0–1023) verwenden. Skalieren Sie Ihre Schwellwerte immer entsprechend.
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 (verwaltet die Hardwaresteuerung in Echtzeit) 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 zusammenarbeiten.
Der folgende Code liest alle 500 ms den ADC-Wert der Photozelle:
※ Notiz:
Der Arduino UNO Q MCU verwendet einen 12-Bit ADC (Werte 0–4095). Lichtstufen-Schwellwerte werden entsprechend skaliert: Dunkel < 40, Dunkelheit < 800, Licht < 2000, Hell < 3200, Sehr hell ≥ 3200.
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 den Photowiderstand und 10 kΩ Widerstand in einem Spannungsteiler mit Pin A0, wie in der Abbildung gezeigt.
- Verbinden: 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, z. B.: DIYables_LightSensor
- 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 sketch/sketch.ino-Datei — 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.
- Upload: Klicken Sie auf die Ausführungsschaltfläche in Arduino App Lab, um zum STM32 zu kompilieren und hochzuladen.

- Test: Leuchten Sie Licht auf den Sensor oder bedecken Sie ihn mit Ihrer Hand, verwenden Sie dann den unten stehenden Bridge-Bereich, um die Werte über Monitor zu lesen.
Linux + MCU Bridge-Programmierung
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: den MPU (Qualcomm, läuft Debian Linux) und den MCU (STM32, läuft Zephyr OS mit Ihrer Arduino-Skizze). Sie kommunizieren mithilfe von RPC über die Arduino_RouterBridge-Bibliothek — nie über rohe serielle Anschlüsse.
- Der Lichtsensor ist mit dem MCU (STM32) verbunden — der Photowiderstand-Spannungsteiler versorgt analogen Pin A0 auf dem STM32.
- Der MPU kann A0 nicht direkt lesen — er muss eine Funktion auf dem MCU über Bridge.call() aufrufen, um die Sensorlesung anzufordern.
- Der MPU hat Wi-Fi — da der MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann er Telegram-Befehle empfangen und Sensorablesungen remote senden.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide()-Funktionen auf der MCU-Seite auf (analoge Lesung ist sicher — kein Hardware-GPIO-Schreibzugriff erforderlich)
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden von Arduino Router verwendet — öffnen Sie sie niemals direkt
Kurz gesagt: MPU fordert Lesung an → MCU liest ADC → MCU gibt Ergebnis an Monitor aus.
MCU-Skizze — Lichtsensorlesung mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) — fordert alle Sekunde Lesungen von Linux an:
- 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 /dev/ttyHS1 (auf Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code nie direkt — diese sind vom Arduino Router reserviert und der Zugriff auf sie bricht die Bridge.
Schnelle Schritte
- MCU-Skizze hochladen: Ö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 Arduino_RouterBridge-Bibliothek 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 — Python fordert alle Sekunde eine Lichtsensorlesung an.
- Licht einschalten / Sensor abdecken: Sehen Sie die Werte im MCU Monitor ändern.
- Konsole überprüfen: Öffnen Sie die Konsole-Registerkarte → Unterregisterkarte MCU Monitor, um die analogen Lesungen zu sehen.
App Lab Konsolenausgabe
Telegram-Integration
Lesen Sie den Lichtsensor von überall aus 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 auf dem STM32 hochgeladen und ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot für Lichtsensorlesung:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das von @BotFather auf Telegram bezogen wurde.
- Senden Sie /read, um die aktuelle Lichtsensorlesung anzufordern.
- Die Lesung erscheint im MCU Monitor (Konsole → Registerkarte MCU Monitor).
Schnelle Schritte
- MCU-Skizze hochladen: Verwenden Sie die Bridge MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie 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.
- Token festlegen: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
- App ausführen: Klicken Sie auf Ausführen — der Bot beginnt, auf Telegram-Nachrichten zu hören.
- Testen Sie es: Senden Sie /read — der Bot antwortet mit dem ADC-Wert des Sensors und der Lichtstufe.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können OpenClaw an dieses Tutorial anpassen, indem Sie die Anleitung im Arduino Uno Q - OpenClaw Tutorial lesen
Anwendungs-/Projektideen
- Automatisches Nachtlicht: Lichtstufe auf der MPU lesen und LED-Streifen über Telegram/Bridge einschalten, wenn es dunkel wird
- Smart-Vorhang-Controller: Verwenden Sie die Lichtstufe, um Vorhänge über einen Servomotor automatisch zu öffnen oder zu schließen
- Pflanzen-Lichtkontrolle: Überprüfen Sie regelmäßig die Lichtstufe und senden Sie eine Telegram-Warnung, wenn Pflanzen mehr Licht benötigen
- Sicherheitsbeleuchtung: Lösen Sie einen Alarm oder eine Kameraaufzeichnung aus, wenn das Licht unerwartet ausgeht
- Datenprotokollierung: Alle Minute Lichtstufen in eine CSV-Datei auf der Linux MPU protokollieren zur Analyse
Stellen Sie sich selbst eine Herausforderung
- Leicht: Senden Sie eine Telegram-Nachricht mit dem tatsächlichen ADC-Wert und der Lichtstufen-Zeichenfolge (z. B. "ADC: 3200 — Sehr hell")
- Mittel: Senden Sie automatisch eine Telegram-Warnung, wenn die Lichtstufe unter einen Schwellenwert fällt (z. B. Lichter gehen aus)
- Fortgeschrittene: Protokollieren Sie jede Minute Lichtsensorablesungen in eine Datei auf der Linux MPU und senden Sie eine tägliche Zusammenfassung über Telegram