Arduino UNO Q - RGB-LED
Eine RGB-LED ermöglicht es Ihnen, praktisch jede Farbe zu erzeugen, indem Sie die Intensitäten von rotem, grünem und blauem Licht mithilfe von PWM-Signalen mischen. In diesem Tutorial lernen Sie, wie Sie eine RGB-LED mit dem Arduino UNO Q steuern — von einfachem Farbwechsel bis zur vollständigen Fernsteuerung über Telegram.
In diesem Tutorial lernen Sie:
- Wie eine RGB-LED funktioniert und wie man sie mit Arduino UNO Q verdrahtet
- Wie man den Arduino UNO Q MCU programmiert, um verschiedene Farben anzuzeigen
- Wie man die RGB-LED-Farbe von der Linux-Seite (Python) aus über Bridge steuert
- Wie man eine beliebige RGB-Farbe aus der Ferne über Telegram von überall auf der Welt einstellt

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über RGB-LED
Wie es funktioniert
Eine RGB-LED enthält drei separate LEDs — rot, grün und blau — in einem Gehäuse. Durch das Mischen verschiedener Intensitäten jeder Farbe mit PWM-Signalen (Werte 0–255) können Sie beliebige 256 × 256 × 256 = 16 Millionen Farben erzeugen.
Pinbelegung
Eine RGB-LED hat vier Anschlüsse:
- Common (Kathode−): mit GND (0V) verbinden
- R: Rotfarbsteuerung
- G: Grünfarbsteuerung
- B: Blaufarbsteuerung

Um die Verdrahtung einfach zu halten, verwenden Sie ein RGB-LED-Modul — es hat integrierte Strombegrenzungswiderstände.

※ Notiz:
Dieses Tutorial verwendet eine RGB-LED mit gemeinsamer Kathode. Wenn Ihre LED eine gemeinsame Anode hat, verbinden Sie den gemeinsamen Anschluss mit 3,3V und invertieren Sie die Werte: verwenden Sie 255 - R, 255 - G, 255 - B in analogWrite().
Schaltplan
- Schaltplan — Arduino UNO Q mit RGB-LED (mit separaten Widerständen):

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
※ Notiz:
Verwenden Sie drei separate Widerstände (einen pro Farbpin), nicht einen einzelnen Widerstand am gemeinsamen Anschluss. Die drei internen LEDs verbrauchen unterschiedliche Strommengen, daher verursacht ein gemeinsamer Widerstand ungleichmäßige Helligkeit und kann die LEDs beschädigen.
- Schaltplan — Arduino UNO Q mit RGB-LED-Modul (Widerstände integriert):

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie man eine RGB-LED steuert
Um eine bestimmte Farbe anzuzeigen (z. B. #00979D):
- Finden Sie Ihren Farbcode — verwenden Sie einen Farbwähler
- Konvertieren Sie in RGB-Werte — verwenden Sie dieses Tool. Ergebnis: R=0, G=151, B=157
- Stellen Sie die Pins auf Ausgang ein und senden Sie die PWM-Werte:
MCU-Code — RGB-LED-Farbwechsel
Der Arduino UNO Q hat zwei Prozessoren: den STM32 MCU (verwaltet die Echtzeit-Hardwaresteuerung) und den Qualcomm MPU (führt Debian Linux aus). In diesem Abschnitt wird nur der STM32 MCU programmiert — die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammenarbeiten.
Dieses Beispiel durchläuft alle drei Sekunden drei Farben:
- #00C9CC — Petrol (R=0, G=201, B=204)
- #F7788A — Lachsrosa (R=247, G=120, B=138)
- #34A853 — Grün (R=52, G=168, B=83)
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 RGB-LED: Verbinden Sie das RGB-LED-Modul (oder die LED mit Widerständen) gemäß dem Schaltplan mit den Pins 9, 6 und 3.
- Verbinden: Stecken Sie den 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 Ihren Arduino UNO Q erkennt.
- Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche App erstellen.

- Geben Sie der App einen Namen, z. B.: DIYables_RgbLED
- Klicken Sie zum Bestätigen auf Erstellen.
- Es werden Ordner und Dateien in Ihrer neuen App generiert.

- 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 Ausführen in Arduino App Lab, um den STM32 zu kompilieren und hochzuladen.

- Überprüfen Sie die LED: Die RGB-LED sollte durch Petrol, Lachsrosa und Grün — jeweils eine Sekunde lang — zyklisieren.
- Profi-Tipp: Ändern Sie die RGB-Werte, um Ihre eigenen Farben anzuzeigen. Verwenden Sie den Farbwähler, um die richtigen Werte zu finden.
Sauberer Code mit einer setColor()-Funktion
Bei der Arbeit mit vielen Farben macht eine Hilfsfunktion setColor() den Code kürzer und einfacher zu lesen:
- Profi-Tipp: Sie können ein Array von Farben erstellen und darin schleifen, um eine automatische Farbshow-Sequenz zu erstellen.
Linux + MCU Bridge-Programmierung
Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: den MPU (Qualcomm, führt Debian Linux aus) und den MCU (STM32, führt Zephyr OS mit Ihrer Arduino-Skizze aus). Sie kommunizieren über RPC über die Bibliothek Arduino_RouterBridge — niemals über rohe serielle Anschlüsse.
- Die RGB-LED ist mit dem MCU (STM32) verbunden — mit PWM-fähigen digitalen Pins auf dem STM32 verdrahtet. Der MCU legt Farben mit analogWrite() fest.
- Der MPU kann die LED nicht direkt steuern — er muss Befehle über Bridge.call() an den MCU senden. Der MCU führt registrierte Bridge.provide_safe()-Funktionen aus.
- Der MPU hat Wi-Fi — da der MPU volles Debian Linux mit Wi-Fi ausführt, kann er Telegram-Befehle empfangen und eine beliebige RGB-Farbe aus der Ferne einstellen.
- Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe()-Funktionen auf der MCU-Seite auf
- ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet — öffnen Sie sie niemals direkt
Kurz gesagt: MPU sendet Farbenbefehle → MCU empfängt sie → MCU stellt die RGB-LED-Farbe in Echtzeit ein.
MCU-Skizze — RGB-LED mit Bridge-Steuerung:
Python-Skript (Arduino App Lab) — Farbwechsel von Linux durchführen:
- 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 (unter Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code — diese sind vom Arduino Router reserviert und der Zugriff darauf 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 oben in sketch/sketch.ino ein, behalten Sie die Standardbibliotheken (keine zusätzliche Bibliothek erforderlich) und klicken Sie auf Ausführen.
- 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ühren — die Python-Seite durchläuft automatisch 7 Farben und schaltet dann die LED aus.
- Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Konsole → Python-Konsole Unterregisterkarte, um zu sehen, welche Farbe aktiv ist.
- Profi-Tipp: Fügen Sie weitere Farben zur Liste COLORS im Python-Skript hinzu, um die Farbshow zu erweitern.
Konsolenausgabe von App Lab
Telegram-Integration
Sie können eine beliebige RGB-Farbe auf Ihrer LED aus der Ferne über Telegram einstellen — senden Sie einfach die R-, G- und B-Werte als Befehl.
Wenn Sie noch keinen Telegram-Bot haben, lesen Sie Wie man einen Telegram-Bot erstellt, um Ihr Bot-Token zu erhalten, bevor Sie fortfahren.
Dieser Abschnitt behandelt:
- Ausführung eines Python-Skripts auf der Linux-Seite des Arduino UNO Q zum Abhören von Telegram-Nachrichten
- Weiterleitung von Farbenbefehlen an den MCU über Bridge.call()
- Senden einer Bestätigungsantwort an Telegram
MCU-Skizze: Verwenden Sie dieselbe MCU-Skizze aus dem vorherigen Bridge-Abschnitt — keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits hochgeladen und auf dem STM32 ausgeführt wird, bevor Sie fortfahren.
Python-Skript (Arduino App Lab) — Telegram-Bot zur RGB-LED-Steuerung:
- Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
- Senden Sie /color 255 0 0, um die LED auf Rot zu setzen.
- Senden Sie /color 0 201 204 für Petrol.
- Senden Sie /off, um die LED auszuschalten.
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 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 Ausführen — der Bot beginnt sofort mit dem Abhören von Telegram-Nachrichten.
- Testen Sie es: Öffnen Sie Telegram, suchen Sie Ihren Bot und senden Sie /color 128 0 128 für Lila oder /off, um es auszuschalten.
- Profi-Tipp: Verwenden Sie einen Farbwähler, um die RGB-Werte einer beliebigen Farbe zu finden, und senden Sie sie direkt über Telegram.
Konsolenausgabe von App Lab
ArduinoBot
OpenClaw-Integration
Sie können die OpenClaw an dieses Tutorial anpassen, indem Sie auf die Anleitung im Tutorial Arduino Uno Q - OpenClaw verweisen
Zusätzliches Wissen
- RGB-LED mit gemeinsamer Anode: Verbinden Sie den gemeinsamen Pin mit 3,3V und invertieren Sie jeden Kanalwert: analogWrite(PIN_RED, 255 - R).
- Farbe aus Bildern: Verwenden Sie das Tool Farben aus Bildern, um Farbcodes aus einem beliebigen Foto zu extrahieren, dann in RGB-Werte konvertieren.
- RGB-LED-Streifen: Eine Reihe von RGB-LEDs, die zusammen verbunden sind, bildet einen RGB-LED-Streifen. Adressierbare Streifen (wie WS2812B) können jede LED einzeln einstellen — siehe unsere speziellen Tutorials dafür.
Anwendungs-/Projektideen
Hier sind einige Projektideen, die Sie mit einer RGB-LED und Arduino UNO Q erstellen können:
- Telegram-gesteuerte Stimmungsbeleuchtung: Stellen Sie die Beleuchtungsfarbe in Ihrem Zimmer von überall aus über Telegram ein
- Benachrichtigungsindikator: Verwenden Sie verschiedene Farben, um verschiedene Ereignisse zu signalisieren (blau = E-Mail, rot = Warnung, grün = OK)
- Pflanzengezücht-Monitor: Ändern Sie die LED-Farbe basierend auf dem Bodenfeuchtigkeitsniveau (grün = gut, gelb = trocken, rot = braucht Wasser)
- Farbcodierte Wetterstation: Grün für klaren Himmel, Blau für Regen, Rot für hohe Temperaturwarnung
- Disco-Lichtshow: Zykeln Sie bei hoher Geschwindigkeit durch zufällige Farben, ausgelöst über Telegram
Fordern Sie sich selbst heraus
Probieren Sie diese Herausforderungen mit der RGB-LED und Arduino UNO Q:
- Einfach: Fügen Sie eine vierte Farbe zur Zyklussequenz in der eigenständigen Skizze hinzu (z. B. Orange: R=255, G=165, B=0)
- Mittel: Erweitern Sie die Bridge-Skizze, um set_red(), set_green() und set_blue() als separate Bridge-Funktionen verfügbar zu machen und steuern Sie jeden Kanal unabhängig von Python
- Fortgeschritten: Erstellen Sie einen Telegram-Bot, der benannte Farben akzeptiert (z. B. /purple, /orange) und sie RGB-Werten zuordnet, bevor Sie set_color() auf dem MCU aufrufen