Arduino UNO Q - LED RGB

Une LED RGB vous permet de produire pratiquement n'importe quelle couleur en mélangeant les intensités de lumière rouge, verte et bleue avec des signaux PWM. Dans ce tutoriel, vous apprendrez à contrôler une LED RGB avec l'Arduino UNO Q — du simple cycle de couleurs au contrôle complet à distance via Telegram.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q - LED RGB

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Module LED RGB
1×Alternativement: RGB LED
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos de la LED RGB

Comment Ça Fonctionne

Une LED RGB contient trois LEDs séparées — rouge, verte et bleue — dans un seul boîtier. En mélangeant différentes intensités de chaque couleur avec des signaux PWM (valeurs 0–255), vous pouvez produire l'une des 256 × 256 × 256 = 16 millions de couleurs.

Brochage

Une LED RGB a quatre broches :

  • Commun (Cathode−) : connectez à GND (0V)
  • R : contrôle de la couleur rouge
  • G : contrôle de la couleur verte
  • B : contrôle de la couleur bleue
Brochage de la LED RGB

Pour simplifier le câblage, utilisez un module LED RGB — il intègre les résistances limitatrices de courant.

Brochage du Module LED RGB

※ Note:

Ce tutoriel utilise une LED RGB à cathode commune. Si votre LED a une anode commune, connectez la broche commune à 3,3V et inversez les valeurs : utilisez 255 - R, 255 - G, 255 - B dans analogWrite().

Schéma de Câblage

  • Schéma de câblage — Arduino UNO Q vers LED RGB (avec résistances séparées) :
Schéma de Câblage LED RGB Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

※ Note:

Utilisez trois résistances séparées (une par broche de couleur), pas une seule résistance sur la broche commune. Les trois LEDs internes consomment des courants différents, donc une résistance partagée cause une luminosité inégale et peut endommager les LEDs.

  • Schéma de câblage — Arduino UNO Q vers module LED RGB (résistances intégrées) :
Schéma de Câblage Module LED RGB Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment Contrôler une LED RGB

Pour afficher une couleur spécifique (par exemple, #00979D) :

  1. Trouvez votre code couleur — utilisez un sélecteur de couleur
  2. Convertissez en valeurs RGB — utilisez cet outil. Résultat : R=0, G=151, B=157
  3. Configurez les broches en sortie et envoyez les valeurs PWM :
#define PIN_RED 9 #define PIN_GREEN 6 #define PIN_BLUE 3 pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Code MCU — Cycle de Couleurs LED RGB

L'Arduino UNO Q possède deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.

Cet exemple fait défiler trois couleurs toutes les secondes :

  • #00C9CC — Sarcelle (R=0, G=201, B=204)
  • #F7788A — Rose saumon (R=247, G=120, B=138)
  • #34A853 — Vert (R=52, G=168, B=83)
/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-rgb-led */ #define PIN_RED 9 // The Arduino UNO Q pin connected to the LED's red pin #define PIN_GREEN 6 // The Arduino UNO Q pin connected to the LED's green pin #define PIN_BLUE 3 // The Arduino UNO Q pin connected to the LED's blue pin void setup() { pinMode(PIN_RED, OUTPUT); // Set red LED pin as an output pinMode(PIN_GREEN, OUTPUT); // Set green LED pin as an output pinMode(PIN_BLUE, OUTPUT); // Set blue LED pin as an output } void loop() { // Set RGB LED to teal color #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // Maintain color for 1 second // Set RGB LED to salmon pink #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // Maintain color for 1 second // Set RGB LED to Google green #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // Maintain color for 1 second }

Étapes Rapides

  • Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Câbler la LED RGB : Connectez le module LED RGB (ou LED avec résistances) aux broches 9, 6 et 3 selon le schéma de câblage.
  • Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Create New App.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_RgbLED
  • Cliquez sur Create pour confirmer.
  • Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans le fichier sketch. Laissez les autres fichiers par défaut.
    • 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
    • Téléverser : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquer sur Run dans Arduino App Lab sur Arduino UNO Q
    • Vérifier la LED : La LED RGB devrait défiler entre sarcelle, rose saumon et vert — une seconde chacun.
    • Conseil : Changez les valeurs RGB pour afficher vos propres couleurs. Utilisez le sélecteur de couleur pour trouver les valeurs appropriées.

    Code Plus Propre avec une Fonction setColor()

    Lorsque vous travaillez avec de nombreuses couleurs, une fonction d'aide setColor() rend le code plus court et plus facile à lire :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-rgb-led */ #define PIN_RED 9 // The Arduino UNO Q pin connected to the LED's red pin #define PIN_GREEN 6 // The Arduino UNO Q pin connected to the LED's green pin #define PIN_BLUE 3 // The Arduino UNO Q pin connected to the LED's blue pin void setup() { pinMode(PIN_RED, OUTPUT); // Set RED LED pin as an output pinMode(PIN_GREEN, OUTPUT); // Set GREEN LED pin as an output pinMode(PIN_BLUE, OUTPUT); // Set BLUE LED pin as an output } void loop() { setColor(0, 201, 204); // teal #00C9CC delay(1000); setColor(247, 120, 138); // salmon pink #F7788A delay(1000); setColor(52, 168, 83); // Google green #34A853 delay(1000); } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); // Write RED value to RED LED analogWrite(PIN_GREEN, G); // Write GREEN value to GREEN LED analogWrite(PIN_BLUE, B); // Write BLUE value to BLUE LED }
    • Conseil : Vous pouvez créer un tableau de couleurs et le parcourir en boucle pour créer une séquence de spectacle de couleurs automatique.

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent en utilisant RPC via la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • La LED RGB est connectée au MCU (STM32) — câblée à des broches numériques capables de PWM sur le STM32. Le MCU définit les couleurs en utilisant analogWrite().
    • Le MPU ne peut pas contrôler la LED directement — il doit envoyer des commandes au MCU via Bridge.call(). Le MCU exécute les fonctions Bridge.provide_safe() enregistrées.
    • Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et définir n'importe quelle couleur RGB à distance.
    • Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide_safe() côté MCU
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement

    En résumé : Le MPU envoie des commandes de couleur → le MCU les reçoit → le MCU définit la couleur de la LED RGB en temps réel.

    Sketch MCU — LED RGB avec contrôle Bridge :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-rgb-led */ #include "Arduino_RouterBridge.h" #define PIN_RED 9 #define PIN_GREEN 6 #define PIN_BLUE 3 void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); Monitor.println("Color set to R=" + String(R) + " G=" + String(G) + " B=" + String(B)); } void set_color(int R, int G, int B) { setColor(R, G, B); } void turn_off() { setColor(0, 0, 0); Monitor.println("RGB LED off"); } void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); Bridge.begin(); Monitor.begin(); Bridge.provide_safe("set_color", set_color); Bridge.provide_safe("turn_off", turn_off); Monitor.println("RGB LED Bridge ready"); } void loop() {}

    Script Python (Arduino App Lab) — faire défiler les couleurs depuis Linux :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-rgb-led */ from arduino.app_utils import * import time COLORS = [ (0, 201, 204, "Teal"), (247, 120, 138, "Salmon pink"), (52, 168, 83, "Green"), (255, 0, 0, "Red"), (0, 0, 255, "Blue"), (255, 255, 0, "Yellow"), (128, 0, 128, "Purple"), ] def loop(): for r, g, b, name in COLORS: print(f"Setting color: {name} (R={r}, G={g}, B={b})") Bridge.call("set_color", r, g, b) time.sleep(2) print("Turning off RGB LED") Bridge.call("turn_off") time.sleep(2) App.run(user_loop=loop)
    • Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ils sont réservés par l'Arduino Router et y accéder cassera le Bridge.

    Étapes Rapides

    • Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge ci-dessus dans sketch/sketch.ino, conservez les bibliothèques par défaut (aucune bibliothèque supplémentaire nécessaire), et cliquez sur Run.
    • Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécuter l'application : Cliquez sur Run — le côté Python fait défiler automatiquement 7 couleurs, puis éteint la LED.
    • Vérifier la console : Ouvrez l'onglet Console → le sous-onglet Console Python pour voir quelle couleur est active.
    • Conseil : Ajoutez plus de couleurs à la liste COLORS dans le script Python pour enrichir le spectacle de couleurs.

    Sortie Console d'App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Setting color: Teal (R=0, G=201, B=204) Setting color: Salmon pink (R=247, G=120, B=138) Setting color: Green (R=52, G=168, B=83) Setting color: Red (R=255, G=0, B=0) Setting color: Blue (R=0, G=0, B=255) Setting color: Yellow (R=255, G=255, B=0) Setting color: Purple (R=128, G=0, B=128) Turning off RGB LED

    Intégration Telegram

    Vous pouvez définir n'importe quelle couleur RGB sur votre LED à distance via Telegram — envoyez simplement les valeurs R, G et B comme commande.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Cette section couvre :

    • L'exécution d'un script Python côté Linux de l'Arduino UNO Q pour écouter les messages Telegram
    • Le transfert des commandes de couleur au MCU via Bridge.call()
    • L'envoi d'une réponse de confirmation à Telegram

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification n'est nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour contrôler la LED RGB :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-rgb-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.startswith("/color "): parts = text.split() try: r = int(parts[1]) g = int(parts[2]) b = int(parts[3]) if all(0 <= v <= 255 for v in (r, g, b)): Bridge.call("set_color", r, g, b) send_message(chat_id, f"Color set to R={r}, G={g}, B={b}") else: send_message(chat_id, "Each value must be between 0 and 255") except (ValueError, IndexError): send_message(chat_id, "Usage: /color <R> <G> <B>\nExample: /color 255 0 0") elif text == "/off": Bridge.call("turn_off") send_message(chat_id, "RGB LED turned off") else: send_message(chat_id, "Commands:\n/color <R> <G> <B> — set RGB color\n/off — turn LED off\n\nExamples:\n/color 255 0 0\n/color 0 201 204") time.sleep(1) App.run(user_loop=loop)
    • Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
    • Envoyez /color 255 0 0 pour mettre la LED en rouge.
    • Envoyez /color 0 201 204 pour le sarcelle.
    • Envoyez /off pour éteindre la LED.

    Étapes Rapides

    • Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
    • Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécuter l'application : Cliquez sur Run — le bot commence à écouter les messages Telegram immédiatement.
    • Tester : Ouvrez Telegram, trouvez votre bot et envoyez /color 128 0 128 pour le violet, ou /off pour l'éteindre.
    • Conseil : Utilisez un sélecteur de couleur pour trouver les valeurs RGB de n'importe quelle couleur, puis envoyez-les directement via Telegram.

    Sortie Console d'App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /color 255 0 0 [2026-04-29 12:00:01] Color set to R=255, G=0, B=0 [2026-04-29 12:03:15] Telegram: /color 0 201 204 [2026-04-29 12:03:15] Color set to R=0, G=201, B=204 [2026-04-29 12:06:40] Telegram: /off [2026-04-29 12:06:40] RGB LED turned off
    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
    /color 255 0 0
    10:15 AM ✓✓
    Color set to R=255, G=0, B=0
    10:16 AM
    /color 0 201 204
    10:17 AM ✓✓
    Color set to R=0, G=201, B=204
    10:18 AM
    /off
    10:19 AM ✓✓
    RGB LED turned off
    10:20 AM

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Connaissances Supplémentaires

    • LED RGB à Anode Commune : Connectez la broche commune à 3,3V et inversez chaque valeur de canal : analogWrite(PIN_RED, 255 - R).
    • Couleur depuis des images : Utilisez l'outil Colors From Image pour extraire des codes de couleur de n'importe quelle photo, puis convertissez-les en valeurs RGB.
    • Ruban LED RGB : Une série de LEDs RGB connectées ensemble forme un ruban LED RGB. Les rubans adressables (comme WS2812B) peuvent régler chaque LED individuellement — consultez nos tutoriels dédiés pour ceux-ci.

    Idées d'Applications/Projets

    Voici quelques idées de projets que vous pouvez réaliser avec une LED RGB et Arduino UNO Q :

    • Lumière d'ambiance contrôlée par Telegram : Définissez la couleur de la lumière dans votre pièce depuis n'importe où via Telegram
    • Indicateur de notification : Utilisez différentes couleurs pour signaler différents événements (bleu = email, rouge = alerte, vert = OK)
    • Moniteur de santé des plantes : Changez la couleur de la LED selon le niveau d'humidité du sol (vert = bien, jaune = sec, rouge = besoin d'eau)
    • Station météo codée par couleurs : Vert pour ciel dégagé, bleu pour pluie, rouge pour alerte haute température
    • Spectacle de lumières disco : Faites défiler des couleurs aléatoires à grande vitesse, déclenché via Telegram

    Défiez-Vous

    Essayez ces défis avec la LED RGB et Arduino UNO Q :

    • Facile : Ajoutez une quatrième couleur à la séquence de défilement dans le sketch autonome (ex. orange : R=255, G=165, B=0)
    • Moyen : Étendez le sketch Bridge pour exposer set_red(), set_green() et set_blue() comme fonctions Bridge séparées et contrôlez chaque canal indépendamment depuis Python
    • Avancé : Créez un bot Telegram qui accepte des couleurs nommées (ex. /purple, /orange) et les mappe vers des valeurs RGB avant d'appeler set_color() sur le MCU

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !