Arduino UNO Q - LDR Modul
Dieses Tutorial zeigt Ihnen, wie Sie ein Arduino UNO Q mit einem LDR-Lichtsensormodul verwenden. Sie werden lernen:
- Wie Sie das LDR-Lichtsensormodul mit einem Arduino UNO Q verbinden
- Wie Sie Licht mit dem digitalen Ausgang (DO) des Moduls erkennen
- Wie Sie die Lichtintensität mit dem analogen Ausgang (AO) des Moduls messen

Hardware erforderlich
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über das LDR-Lichtsensormodul
Das LDR-Lichtsensormodul kann zum Erkennen von Licht oder zum Messen der Lichtniveaus in seiner Umgebung verwendet werden. Es bietet zwei Möglichkeiten: einen digitalen Ausgang und einen analogen Ausgang.
Pinbelegung
Das LDR-Lichtsensormodul hat vier Pins:
- VCC-Pin: Verbinden Sie diesen mit VCC (3,3 V bis 5 V).
- GND-Pin: Verbinden Sie diesen mit GND (0 V).
- DO-Pin: Dies ist ein digitaler Ausgangspin. Er zeigt HIGH in der Dunkelheit und LOW bei Licht an. Sie können den Dunkelheits-/Helligkeitsschwellenwert durch Einstellen des Potentiometers auf dem Modul ändern.
- AO-Pin: Dies ist ein analoger Ausgangspin. Der Ausgangswert nimmt ab, wenn es heller ist, und nimmt zu, wenn es dunkler ist.

Es hat auch zwei LED-Indikatoren:
- Eine PWR-LED zeigt an, wenn die Stromversorgung aktiviert ist.
- Eine DO-LED zeigt den Lichtstatus am DO-Pin an: Sie leuchtet bei Licht auf und schaltet sich in der Dunkelheit aus.
Wie es funktioniert
Für den DO-Pin:
- Das Modul hat ein Potentiometer zum Einstellen des Lichtschwellenwerts.
- Wenn das Lichtniveau höher als der mit dem Potentiometer eingestellte Schwellenwert ist, ist der DO-Pin LOW und die DO-LED aus.
- Wenn das Lichtniveau unter dem Schwellenwert liegt, ist der DO-Pin HIGH und die DO-LED ist an.
Für den AO-Pin:
- Der AO-Pin liefert einen Messwert, der sich mit dem Lichtniveau ändert.
- Wenn es viel Licht gibt, ist die AO-Anzeige niedriger.
- Wenn es dunkler ist, ist die AO-Anzeige höher.
- Das Potentiometer beeinflusst nicht den AO-Pin – es ändert nur den Schwellenwert für den DO-Pin.
※ Notiz:
Der Arduino UNO Q STM32 MCU hat einen 12-Bit-ADC (0–4095) mit einer 3,3-V-Referenz. Die analogen AO-Werte unterscheiden sich von denen auf 10-Bit-Arduino-Boards (0–1023). Skalieren Sie Ihre Schwellenwerte immer entsprechend.
Verdrahtungsschema
Das Lichtsensormodul hat zwei Ausgänge. Sie können je nach Bedarf einen oder beide verwenden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
MCU-Code – Wert vom DO-Pin lesen
Der Arduino UNO Q hat zwei Prozessoren: die STM32 MCU (handhabt die Echtzeitsteuerung der Hardware) und die Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur die STM32 MCU programmiert – die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
Der Code liest den digitalen Zustand des DO-Pins – HIGH bedeutet Dunkelheit, LOW bedeutet Licht vorhanden:
Schnelle Schritte
- Das erste Mal mit Arduino UNO Q? Folgen Sie dem Getting Started with Arduino UNO Q Tutorial, um Ihre Entwicklungsumgebung vorzubereiten, bevor Sie fortfahren.
- Verdrahten Sie die Komponenten: Verbinden Sie VCC → 3,3 V, GND → GND, DO → Pin 2, AO → A0, wie im Diagramm gezeigt.
- Verbinden Sie sich: 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.

- Geben Sie der App einen Namen, z. B.: DIYables_LDRModule
- Klicken Sie zum Bestätigen auf Create.
- Sie sehen einen Satz von Ordnern und Dateien, die in Ihrer neuen App generiert wurden.

- 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 auf die Schaltfläche "Run" in Arduino App Lab, um zur STM32 zu kompilieren und hochzuladen.

- Test: Blockieren und entsperren Sie das Licht auf dem LDR-Modul mit Ihrer Hand. Verwenden Sie den Bridge-Abschnitt unten, um die Ergebnisse über den Monitor anzuzeigen.
- Wenn die LED die ganze Zeit an ist oder auch bei Licht aus ist, drehen Sie das Potentiometer, um die Empfindlichkeit des Moduls einzustellen.
MCU-Code – Wert vom AO-Pin lesen
Der Code liest den analogen Intensitätswert vom AO-Pin (12-Bit-ADC: 0–4095 auf Arduino UNO Q):
Schnelle Schritte
- Ersetzen Sie die DO-Skizze durch den obigen AO-Code (fügen Sie ihn in sketch/sketch.ino ein).
- Laden Sie erneut hoch und verwenden Sie den Bridge-Abschnitt unten, um die analogen Messwerte über den Monitor anzuzeigen.
Linux + MCU Bridge-Programmierung
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, führt Debian Linux aus) und die MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren über RPC über die Bibliothek Arduino_RouterBridge – niemals über Raw-Serienports.
- Das LDR-Modul ist mit der MCU (STM32) verbunden – DO-Pin verbindet sich mit einem digitalen Eingang und AO-Pin verbindet sich mit dem analogen Eingang A0 auf der STM32.
- Die MPU kann diese Pins nicht direkt auslesen – sie muss eine Funktion auf der MCU über Bridge.call() aufrufen, um DO- oder AO-Messwerte anzufordern.
- Die MPU hat Wi-Fi – da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie Telegram-Befehle empfangen und Sensormesswerte remote senden.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide()-Funktionen auf der MCU-Seite auf (das Auslesen von Digital-/Analogwerten ist sicher – keine Hardware-GPIO-Schreibvorgänge erforderlich)
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet – öffnen Sie sie niemals direkt
Kurz gesagt: MPU fordert Lesung an → MCU liest DO/AO → MCU druckt Ergebnis zum Monitor.
MCU-Skizze – LDR-Modul-Lesung mit Bridge und Monitor-Ausgabe:
Python-Skript (Arduino App Lab) – fordern Sie alle Sekunde Messwerte 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 niemals direkt /dev/ttyHS1 (auf Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code – diese werden vom Arduino Router reserviert und der Zugriff auf sie bricht 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 Arduino_RouterBridge-Bibliothek, und klicken Sie auf "Run".
- Fügen Sie das Python-Skript hinzu: Fügen Sie den obigen Python-Code in die Python-Registerkarte derselben App ein.
- Führen Sie die App aus: Klicken Sie auf "Run" – Python fordert alle Sekunde DO- und AO-Messwerte an.
- Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte "Console" → Unterregisterkarte "MCU Monitor", um die Messwerte anzuzeigen.
App Lab Konsolenausgabe
Telegram-Integration
Lesen Sie das LDR-Modul remote von überall über Telegram.
Wenn Sie noch keinen Telegram-Bot haben, lesen Sie How to Create a 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 der STM32 hochgeladen und ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) – Telegram-Bot zum Lesen des LDR-Moduls:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
- Senden Sie /do, um die digitale Ausgabe (Licht-/Dunkelzustand) zu lesen.
- Senden Sie /ao, um die analoge Ausgabe (0–4095) zu lesen.
- Senden Sie /read, um sowohl DO als auch AO gleichzeitig zu lesen.
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 erfolgt).
- Fügen Sie das Telegram-Skript ein: Kopieren Sie den obigen Python-Code in die Python-Registerkarte Ihrer App in Arduino App Lab.
- Legen Sie Ihr Token fest: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
- Führen Sie die App aus: Klicken Sie auf "Run" – der Bot beginnt, auf Telegram-Meldungen zu lauschen.
- Testen Sie es: Senden Sie /do – der Bot antwortet mit dem digitalen Zustand. Senden Sie /ao – der Bot antwortet mit dem analogen Wert. Senden Sie /read – der Bot antwortet mit beiden.
App Lab Konsolenausgabe
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw auf dieses Tutorial anwenden, indem Sie die Anleitung im Tutorial Arduino Uno Q - OpenClaw beachten.
Anwendungs-/Projektideen
- Automatisches Nachtlicht: Trigger-Beleuchtungssteuerung, wenn das Modul Dunkelheit erkennt
- Intelligente Vorhänge: Verwenden Sie AO-Messwerte, um die sich ändernden Lichtniveaus im Laufe des Tages zu überwachen
- Pflanzenmonitor: Erhalten Sie eine Warnung über Telegram, wenn die Lichtbelastung einer Pflanze unter einen Schwellenwert fällt
- Sicherheitssystem: Erkennen Sie Lichtveränderungen in einem Raum (z. B. jemand schaltet nachts Lichter ein) und senden Sie Warnungen
- Datenlogger: Zeichnen Sie Lichtniveaus über die Zeit auf, indem Sie das Dateisystem der MPU unter Linux verwenden, um sie zu analysieren
Stellen Sie sich der Herausforderung
- Einfach: Senden Sie den tatsächlichen digitalen Zustand ("Licht vorhanden" oder "Dunkel") über den MCU-Monitor zurück an den Telegram-Benutzer
- Mittel: Senden Sie den tatsächlichen AO-Wert direkt an den Telegram-Benutzer, ohne dass diese den Monitor überprüfen müssen
- Fortgeschritten: Legen Sie einen Schwellenwert über Telegram fest (z. B. /threshold 2000) und senden Sie automatisch Warnungen, wenn der AO-Wert den Schwellenwert überschreitet