Arduino UNO Q - Potentiometer steuert LED-Helligkeit

Dieses Tutorial zeigt, wie Sie einen Potentiometer zur Steuerung der Helligkeit einer LED mit Arduino UNO Q verwenden. Das Drehen des Potentiometer-Knopfes ändert die LED-Helligkeit in Echtzeit.

※ Notiz:

Arduino UNO Q ADC-Unterschied: Der STM32-Mikrocontroller auf Arduino UNO Q hat einen 12-Bit-ADC (Werte 0–4095), nicht 10-Bit (0–1023). Ordnen Sie ADC-Werte von 0–4095 auf Helligkeit 0–255 zu, wenn Sie analogWrite() verwenden.

Arduino UNO Q - Potentiometer steuert LED-Helligkeit

Erforderliche Hardware

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Potentiometer
1×Alternativ: 10k Ohm Trimmer Potentiometer
1×(Alternativ) Potentiometer Kit
1×(Alternativ) Potentiometer Module with Knob
1×LED Kit
1×LED (red)
1×LED Module
1×220 ohm Resistor
1×Breadboard
1×Verbindungskabel
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 den Potentiometer und die LED

Wenn Sie neu bei Potentiometern oder LEDs sind, schauen Sie sich zuerst diese Tutorials an:

Schaltplan

Arduino UNO Q Potentiometer LED Schaltplan

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

Programmierweise

  • ADC-Wert von Pin A0 lesen (12-Bit auf Arduino UNO Q, 0–4095):
int adc_value = analogRead(A0);
  • ADC-Wert auf PWM-Helligkeit ordnen (0–255):
int brightness = map(adc_value, 0, 4095, 0, 255);
  • Helligkeit mit PWM an den LED-Pin schreiben:
analogWrite(LED_PIN, brightness);

MCU-Code — Potentiometer steuert LED-Helligkeit

Arduino UNO Q hat zwei Prozessoren: den STM32-Mikrocontroller (verwaltet Hardwaresteuerung in Echtzeit) und die Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur der STM32-Mikrocontroller programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.

/* * 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-potentiometer-fade-led */ #define LED_PIN 3 // pin connected to LED #define POTENTIOMETER_PIN A0 // pin connected to potentiometer void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { // Read ADC value from potentiometer (12-bit: 0-4095 on Arduino UNO Q) int adc_value = analogRead(POTENTIOMETER_PIN); // Map ADC value to brightness (0-255 for PWM) int brightness = map(adc_value, 0, 4095, 0, 255); // Set LED brightness analogWrite(LED_PIN, brightness); delay(100); }

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 Potentiometer-Ausgang mit A0, GND mit GND, VCC mit 3,3 V. Verbinden Sie die LED (mit 220-Ω-Widerstand) mit Pin 3 gemäß dem Schaltplan.
  • Verbinden: Stecken Sie die Arduino UNO Q mit einem USB-C-Kabel in Ihren Computer ein.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihre Arduino UNO Q erkennt.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.
Neue App im Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z. B.: DIYables_PotLED
  • 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
  • Finden 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 Ausführungsschaltfläche im Arduino App Lab, um zu kompilieren und auf den STM32 hochzuladen.
    Klicken Sie auf die Ausführungsschaltfläche im Arduino App Lab auf Arduino UNO Q
    • Drehen Sie den Potentiometer-Knopf — die LED-Helligkeit sollte sich in Echtzeit gleichmäßig ändern.

    Linux + MCU Bridge-Programmierung

    Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, läuft Debian Linux) und der Mikrocontroller (STM32, läuft Zephyr OS mit Ihrer Arduino-Skizze). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek — niemals über rohe serielle Ports.

    • Der Potentiometer und die LED sind an der MCU (STM32) angeschlossen — der Potentiometer-Ausgang führt zu analogem Pin A0 und die LED zu einem PWM-fähigen Ausgangspin. Der Mikrocontroller liest kontinuierlich ADC-Werte und aktualisiert die LED-Helligkeit in loop().
    • Die MPU kann den Potentiometer oder die LED nicht direkt lesen oder steuern — sie muss die aktuelle Helligkeit vom Mikrocontroller über Bridge.call() anfordern.
    • Die MPU hat Wi-Fi — da die MPU vollständiges Debian Linux mit Wi-Fi ausführt, kann sie das Helligkeitsniveau bei Bedarf über Telegram melden.
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide()-Funktionen auf der Mikrocontroller-Seite auf
    • ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (Mikrocontroller) werden vom Arduino Router verwendet — öffnen Sie sie niemals direkt

    Kurz gesagt: MPU fordert Helligkeit an → Mikrocontroller liest ADC und konvertiert → Mikrocontroller meldet ADC- und Helligkeitswerte → MPU protokolliert oder leitet diese weiter.

    MCU-Skizze — Potentiometer-LED 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-potentiometer-fade-led */ #include "Arduino_RouterBridge.h" #define LED_PIN 3 #define POTENTIOMETER_PIN A0 void get_brightness() { int adc_value = analogRead(POTENTIOMETER_PIN); int brightness = map(adc_value, 0, 4095, 0, 255); Monitor.print("ADC: "); Monitor.print(adc_value); Monitor.print(", Brightness: "); Monitor.println(brightness); } void setup() { pinMode(LED_PIN, OUTPUT); Bridge.begin(); Monitor.begin(); Bridge.provide("get_brightness", get_brightness); Monitor.println("Potentiometer-LED Bridge ready"); } void loop() { int adc_value = analogRead(POTENTIOMETER_PIN); int brightness = map(adc_value, 0, 4095, 0, 255); analogWrite(LED_PIN, brightness); delay(50); }

    Python-Skript (Arduino App Lab) — Helligkeit von Linux abfragen:

    /* * 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-potentiometer-fade-led */ from arduino.app_utils import * import time def loop(): while True: Bridge.call("get_brightness") time.sleep(1) App.run(user_loop=loop)
    • Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze vor dem Ausführen des Python-Skripts auf der Linux-Seite hochgeladen wird.
    • ⚠️ Warnung: Öffnen Sie niemals /dev/ttyHS1 (auf Linux) direkt oder verwenden Sie Serial1 (auf Mikrocontroller) 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 oben in sketch/sketch.ino ein, installieren Sie die Arduino_RouterBridge-Bibliothek und klicken Sie auf Ausführung.
    • 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 Ausführung — die Python-Seite fragt das Helligkeitsniveau jede Sekunde ab.
    • Drehen Sie den Potentiometer-Knopf und beobachten Sie, wie die LED heller und dunkler wird.
    • Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Konsole → MCU-Monitor-Unterregisterkarte, um ADC- und Helligkeitswerte protokolliert 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
    Potentiometer-LED Bridge ready ADC: 0, Brightness: 0 ADC: 820, Brightness: 51 ADC: 2048, Brightness: 127 ADC: 3275, Brightness: 204 ADC: 4095, Brightness: 255

    Telegram-Integration

    Prüfen Sie die aktuelle Helligkeitsstufe remote von überall über Telegram.

    Wenn Sie noch keinen Telegram-Bot haben, schauen Sie sich So erstellen Sie einen Telegram-Bot an, um Ihr Bot-Token vor dem Fortfahren zu erhalten.

    MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt — es sind keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits auf den STM32 hochgeladen wurde und auf dem STM32 läuft, bevor Sie fortfahren.

    Python-Skript (Arduino App Lab) — Telegram-Bot für Helligkeitsniveau:

    /* * 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-potentiometer-fade-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 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 == "/brightness": reading = Bridge.call("get_brightness") send_message(chat_id, reading) else: send_message(chat_id, "Commands:\n/brightness — read current LED brightness level (ADC and PWM value)") time.sleep(1) App.run(user_loop=loop)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
    • Senden Sie /brightness, um die aktuellen ADC- und Helligkeitswerte zu prüfen.

    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 im 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 Ausführung — der Bot beginnt, auf Telegram-Nachrichten zu lauschen.
    • Testen Sie es: Drehen Sie den Potentiometer, senden Sie /brightness — der Bot antwortet mit dem ADC- und PWM-Helligkeitswert.

    App Lab Python-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /brightness [2026-04-29 12:00:01] ADC: 1234, Brightness: 77 [2026-04-29 12:03:20] Telegram: /brightness [2026-04-29 12:03:20] ADC: 3072, Brightness: 191
    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
    /brightness
    10:15 AM ✓✓
    ADC: 1234, Brightness: 77
    10:16 AM

    OpenClaw-Integration

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

    Anwendungs- und Projektideen

    • Intelligenter Dimmer: Verwenden Sie einen Potentiometer als physikalische Helligkeitssteuerung für ein Licht — überwachen Sie das Niveau über Telegram
    • Volume-Knopf-Anzeige: Zeigen Sie die aktuelle "Lautstärkestufe" vom Potentiometer auf einem Remote-Monitor an
    • Umgebungslicht-Controller: Binden Sie die Potentiometer-Position an die Helligkeit eines warmes Weiß-LED-Streifens
    • Manuelles Steuerfeld: Verwenden Sie den Potentiometer, um einen automatisierten Helligkeitsplan manuell zu überschreiben
    • Visuelle Rückkopplungsanzeige: Ordnen Sie den Potentiometer einem LED-Array zu, das Fortschritt oder Stufe anzeigt

    Stellen Sie sich selbst der Herausforderung

    • Einfach: Fügen Sie eine zweite LED hinzu, die umgekehrt verblasst (wenn LED 1 hell ist, ist LED 2 dunkel)
    • Mittel: Exponieren Sie sowohl ADC-Wert als auch Prozentsatz (0–100) über Bridge-Callbacks
    • Fortgeschritten: Erstellen Sie einen Telegram-Bot, der Helligkeitswerte in festen Abständen protokolliert und eine tägliche Zusammenfassung sendet

    Funktionsreferenzen

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