Arduino UNO Q - Lichtsensor steuert LED

In dieser Anleitung lernen Sie, wie man:

Arduino UNO Q Lichtsensor steuert LED

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino UNO Q
1×Lichtsensor
1×LED Kit
1×LED (red)
1×LED Module
1×220-Ohm-Widerstand
1×10-kΩ-Widerstand
1×Steckbrett
1×Jumper-Kabel
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.

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

Arduino UNO Q Lichtsensor LED 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.

/* * 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-light-sensor-controls-led */ #define LIGHT_SENSOR_PIN A0 // The Arduino UNO Q pin connected to the light sensor #define LED_PIN 3 // The Arduino UNO Q pin connected to the LED #define ANALOG_THRESHOLD 200 // Scaled for 12-bit ADC (0-4095) on Arduino UNO Q int analogValue; void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { analogValue = analogRead(LIGHT_SENSOR_PIN); // 0-4095 on Arduino UNO Q (12-bit, 3.3V) if (analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

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.
Neue App in Arduino App Lab auf Arduino UNO Q 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.
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
    • Hochladen: Klicken Sie in Arduino App Lab auf die Schaltfläche Ausführen, um zum STM32 zu kompilieren und hochzuladen.
    Klicken Sie in Arduino App Lab auf die Schaltfläche Ausführen auf Arduino UNO Q
    • 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:

    /* * 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-light-sensor-controls-led */ #include "Arduino_RouterBridge.h" #define LIGHT_SENSOR_PIN A0 #define LED_PIN 3 #define ANALOG_THRESHOLD 200 void check_light() { int value = analogRead(LIGHT_SENSOR_PIN); bool led_on = value < ANALOG_THRESHOLD; digitalWrite(LED_PIN, led_on ? HIGH : LOW); Monitor.print("Sensor: "); Monitor.print(value); Monitor.print(" -> LED: "); Monitor.println(led_on ? "ON" : "OFF"); } void setup() { Bridge.begin(); Monitor.begin(); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); Bridge.provide_safe("check_light", check_light); Monitor.println("Light Sensor LED Bridge ready"); } void loop() {}

    Python-Skript (Arduino App Lab) – Lichtkontrolle-Schleife aus 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-light-sensor-controls-led */ from arduino.app_utils import * import time def loop(): Bridge.call("check_light") time.sleep(0.5) App.run(user_loop=loop)
    • 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

    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
    Light Sensor LED Bridge ready Sensor: 145 -> LED: ON Sensor: 152 -> LED: ON Sensor: 890 -> LED: OFF Sensor: 3210 -> LED: OFF Sensor: 48 -> LED: ON

    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:

    /* * 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-light-sensor-controls-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_light") # continuously control LED based on light 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_light") send_message(chat_id, status) else: send_message(chat_id, "Commands:\n/read — check light sensor value 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 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

    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] Sensor: 150 -> 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 ✓✓
    Sensor: 150 -> LED: ON
    10:16 AM

    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

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