Arduino UNO Q - Capteur de Couleur TCS3200D/TCS230
Le capteur de reconnaissance de couleurs TCS3200D/TCS230 détecte les couleurs en mesurant l'intensité lumineuse rouge, verte et bleue. Il génère un signal basé sur la fréquence que vous lisez avec pulseIn(), puis mappez sur des valeurs RGB standard de 0 à 255 après calibration.
Dans ce tutoriel, vous apprendrez :
- Comment fonctionne le capteur de couleur TCS3200D/TCS230
- Comment le câbler au MCU de l'Arduino UNO Q
- Comment exécuter le sketch de calibration pour obtenir des lectures précises
- Comment lire les valeurs RGB et détecter les couleurs dominantes
- Comment utiliser Bridge pour exposer les données de couleur au côté Linux (Python)
- Comment utiliser Telegram pour interroger les valeurs RGB et le nom de la couleur sur l'Arduino UNO Q
- Comment utiliser OpenClaw sur l'Arduino UNO Q avec le capteur de couleur

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Capteur de Couleur TCS3200D/TCS230
Le TCS3200D/TCS230 utilise un tableau 8×8 de photodiodes : 16 filtrées en rouge, 16 filtrées en vert, 16 filtrées en bleu et 16 sans filtre. Il convertit l'intensité lumineuse en une fréquence d'onde carrée sur la broche OUT. En commutant les filtres et en mesurant les largeurs d'impulsion, vous obtenez des valeurs RGB.
La plupart des modules comprennent des LEDs blanches pour illuminer l'objet cible, donnant des lectures cohérentes dans des conditions d'éclairage ambiant variables.

Brochage
- VCC : Alimentation 5V
- GND : Masse
- S0, S1 : Mise à l'échelle de la fréquence de sortie — HIGH/LOW = mise à l'échelle à 20% (recommandé)
- S2, S3 : Sélection du filtre de couleur
- OUT : Sortie de fréquence d'onde carrée — mesurez avec pulseIn()
- OE : Activation de la sortie (actif LOW) — la plupart des modules le câblent en interne à GND
Sélection du Filtre (S2, S3)
| S2 | S3 | Filtre |
|-----|-----|---------|
| LOW | LOW | Rouge |
| LOW | HIGH| Bleu |
| HIGH| LOW | Sans filtre |
| HIGH| HIGH| Vert |
Largeur d'Impulsion → RGB
Largeur d'impulsion plus faible = plus de lumière = valeur RGB plus élevée. Après calibration :
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche TCS3200 | MCU Arduino UNO Q |
|---|---|
| VCC | 5V |
| GND | GND |
| S0 | D4 |
| S1 | D3 |
| S2 | D6 |
| S3 | D5 |
| OUT | D7 |
Comment Programmer pour le Capteur de Couleur TCS3200
- Configurer toutes les broches de contrôle comme sorties, OUT comme entrée, définir la mise à l'échelle de fréquence :
- Sélectionner un filtre et mesurer la largeur d'impulsion :
- Mapper sur 0-255 après calibration (PW plus faible = plus lumineux = valeur plus élevée) :
Code Arduino UNO Q — Calibration
Les lectures du TCS3200 sont affectées par la distance, la luminosité des LEDs et la lumière ambiante. Exécutez d'abord ce sketch de calibration pour trouver les largeurs d'impulsion minimales et maximales pour votre configuration spécifique.
Étapes Rapides
Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.
- Connecter : Câblez le capteur de couleur à l'Arduino UNO Q MCU comme indiqué dans le schéma de câblage.
- 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 Créer une nouvelle application.

- Donnez un nom à l'application, par exemple : ColorSensorCalibration
- Cliquez sur Créer pour confirmer.

- Coller le sketch : Copiez le code de calibration ci-dessus et collez-le dans sketch/sketch.ino.
- Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.

- Déplacez le capteur sur différents objets : un objet blanc, un objet noir et quelques objets colorés.
- Regardez les valeurs Min et Max se stabiliser après 10–20 secondes — notez-les.
Sortie de la Console App Lab
D'après la sortie ci-dessus, vos valeurs de calibration sont :
- redMin = 42, redMax = 210
- greenMin = 55, greenMax = 185
- blueMin = 60, blueMax = 172
Code Arduino UNO Q — Lire les Valeurs RGB
Maintenant, mettez à jour les six variables de calibration en haut avec vos valeurs réelles et téléversez ce sketch principal pour lire des valeurs RGB précises.
Étapes Rapides
- Dans le code ci-dessus, trouvez ces lignes :
- Remplacez les six valeurs 0 par vos numéros de calibration. Par exemple :
- Créez une nouvelle application (ou mettez à jour la précédente), collez le code, et cliquez sur Exécuter.
- Pointez le capteur sur différents objets colorés et observez la sortie du Moniteur Série.
Sortie de la Console App Lab
Bridge : Linux + MCU
Cette section montre comment les deux processeurs de l'Arduino UNO Q fonctionnent ensemble pour que le côté Linux puisse lire en continu les données de couleur via Bridge :
- Le capteur de couleur est connecté au MCU — le MCU lit les valeurs RGB toutes les 600 ms et les met en cache
- Le MPU ne peut pas lire le capteur directement — il appelle les fonctions Bridge pour obtenir les valeurs RGB ou le nom de la couleur
- Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut répondre aux commandes Telegram avec des lectures de couleur en temps réel
- Arduino_RouterBridge permet la communication RPC entre les deux processeurs
- ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur
La boucle MCU lit les canaux R, G, B toutes les 600 ms et met en cache les valeurs. Les callbacks Bridge servent les valeurs mises en cache instantanément, sans bloquer.
Code MCU (Bridge)
Code Python (Bridge)
Étapes Rapides
- Connecter : Câblez le capteur de couleur à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
- Ouvrir Arduino App Lab et créer une nouvelle application nommée ColorSensorBridge.
- Mettre à jour les valeurs de calibration dans le code MCU Bridge (redMin, redMax, etc.) avec vos valeurs du sketch de calibration.
- Coller le sketch MCU dans sketch/sketch.ino.
- Coller le code Python dans le fichier Python.
- 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.
- Téléverser : Cliquez sur le bouton Exécuter.

- Pointez le capteur sur différents objets colorés — regardez la console Python se mettre à jour toutes les secondes.
Sortie de la Console App Lab
Telegram
Interrogez le capteur de couleur à distance via des commandes Telegram sur l'Arduino UNO Q.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.
Code Python (Telegram)
Étapes Rapides
- Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot Telegram de BotFather.
- Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
- Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
- Cliquez sur le bouton Exécuter et testez avec les commandes /rgb et /color.
Sortie de la Console App Lab
ArduinoBot
Intégration d'OpenClaw
Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.
Idées de Projets
Vous pouvez réaliser de nombreux projets utiles avec le capteur de couleur TCS3200 et l'Arduino UNO Q :
- Machine de Tri par Couleur : Détectez la couleur des objets sur un convoyeur via Bridge — faites en sorte que le MCU déclenche un servo pour rediriger chaque objet vers le bon bac en fonction de sa couleur détectée
- Enregistreur de Couleur à Distance : Enregistrez les couleurs détectées et les valeurs RGB dans un fichier CSV sur Linux toutes les 5 secondes — utilisez une commande Telegram /report pour obtenir les 10 dernières lectures avec horodatages
- Alerte Activée par Couleur : Utilisez Telegram pour définir une couleur cible — quand le capteur détecte exactement cette couleur, envoyez une notification Telegram instantanée (ex. : pour le contrôle qualité sur une ligne de production)
- Moniteur de Santé des Plantes : Pointez le capteur sur des feuilles de plantes — suivez la valeur du canal vert quotidiennement pour détecter un jaunissement ou une décoloration précoce, et envoyez une alerte Telegram si la valeur verte tombe en dessous d'un seuil
- Jeu de Couleur Interactif : Envoyez un message Telegram comme "Montrez-moi BLEU en 10 secondes" — le MCU lit la couleur et Python répond si le joueur a montré la bonne couleur avant le minuteur
Défiez-Vous
Prêt à aller plus loin avec le capteur de couleur TCS3200 sur l'Arduino UNO Q ? Essayez ces défis :
- Facile : Ajoutez une commande Telegram /history qui retourne les 5 dernières couleurs détectées avec horodatages stockées dans une liste Python — utile pour revoir les lectures récentes sans vérifier la console.
- Moyen : Implémentez le moyennage : au lieu de mettre en cache une seule lecture, faites lire au MCU chaque canal R/G/B 3 fois et retourner la moyenne — cela lisse le bruit et améliore la précision de la détection des couleurs.
- Avancé : Construisez un système d'apprentissage des couleurs : ajoutez les commandes Telegram /learn red, /learn green, /learn blue qui capturent la lecture RGB actuelle et la stockent comme référence pour cette couleur — utilisez ensuite ces références stockées pour la correspondance des couleurs au lieu de seuils codés en dur.