ESP32 - Capteur de couleur TCS3200D/TCS230
Ce guide vous explique comment connecter un capteur de couleur TCS3200D/TCS230 à l'ESP32 pour une détection et une mesure précises des couleurs RVB. Apprenez à calibrer le capteur et à programmer l'ESP32 pour lire les valeurs de couleur des objets.
Ce que vous apprendrez :
- Connecter le capteur de couleur TCS3200D/TCS230 à l'ESP32
- Calibration du capteur pour compenser les facteurs environnementaux
- Écrire du code ESP32 pour mesurer et afficher les valeurs RVB

Préparation du matériel
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 (ESP32 inclus) | |
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du capteur de couleur TCS3200D/TCS230
Le TCS3200D/TCS230 utilise une matrice de 64 photodiodes organisée en configuration 8×8 pour l'identification des couleurs. Cet ensemble comprend 16 photodiodes munies de filtres optiques rouges, 16 avec des filtres verts, 16 avec des filtres bleus et 16 sans filtres (clair). Le capteur fonctionne en sélectionnant des types de filtres spécifiques et en convertissant l'intensité lumineuse détectée en une sortie d'onde carrée modulée en fréquence.
La plupart des modules capteurs disposent d’un éclairage LED blanc intégré, ce qui garantit la cohérence des mesures en fournissant une source lumineuse contrôlée, indépendante des conditions ambiantes.
Plan de brochage
Le module capteur TCS3200D/TCS230 fournit ces points de connexion :
- Broche VCC : Connectez-la à une alimentation de 3,3 V ou 5 V.
- Broche GND : Connectez-la à la masse (0 V).
- Broches S0, S1 : Réglages d'échelle de fréquence de sortie.
- Broches S2, S3 : Sélecteurs de filtre couleur.
- Broche OUT : Signal de sortie de fréquence en forme d'onde carrée.
- Broche OE : Activation de la sortie (active à niveau bas). Généralement pré-câblée à la masse sur les modules commerciaux. Si elle est exposée, connectez-la à la masse.

Comment ça fonctionne
Le fonctionnement du capteur dépend de deux paramètres configurables : le filtre de couleur actif et le niveau du signal de sortie. Deux paires de broches de contrôle déterminent ces réglages :
Les broches S0/S1 configurent l'échelle de fréquence de sortie :
- S0=LOW, S1=LOW: Capteur hors tension
- S0=LOW, S1=HIGH: Sortie à 2 % de la fréquence de base
- S0=HIGH, S1=LOW: Sortie à 20 % de la fréquence de base
- S0=HIGH, S1=HIGH: Sortie à 100 % de la fréquence de base
Les broches S2 et S3 sélectionnent le filtre de couleur actif :
- S2=BAS, S3=BAS: filtre rouge activé
- S2=BAS, S3=HAUT: filtre bleu activé
- S2=HAUT, S3=BAS: Aucun filtre (clair/sans filtre)
- S2=HAUT, S3=HAUT: filtre vert activé
La broche OUT produit une sortie de fréquence comprise entre environ 2 Hz et 500 kHz. La fréquence est corrélée à l'intensité lumineuse — plus il y a de lumière, plus la fréquence est élevée. L'utilisation de pulseIn() pour mesurer la durée de l'impulsion donne l'inverse — une largeur d'impulsion plus courte indique un éclairage plus lumineux. Après calibration, ces mesures se convertissent en valeurs RGB standard de 0 à 255.
Optimiser la stabilité des mesures
- Positionner le capteur à 1 à 3 cm de la surface cible, avec une orientation constante.
- Activer les LED blanches intégrées pour un éclairage standardisé.
- Bloquer les sources lumineuses externes pour réduire la variabilité des mesures.
Diagramme de câblage
Schéma de connexion ESP32 vers le capteur de couleur TCS3200 :
| TCS3200 Color Sensor | ESP32 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| S0 | GPIO 17 |
| S1 | GPIO 16 |
| S2 | GPIO 18 |
| S3 | GPIO 5 |
| OUT | GPIO 19 |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..
Code ESP32 - Calibration du capteur par largeur d'impulsion
L'étalonnage compense les variables environnementales qui affectent les mesures brutes du capteur : variations d'intensité lumineuse des LED, distance de l'objet, différences de réflectivité des surfaces et conditions d'éclairage ambiant. Ces facteurs introduisent des erreurs de mesure qui doivent être quantifiées. Le processus d'étalonnage enregistre les largeurs d'impulsion minimales et maximales pour chaque canal de couleur, créant des limites pour une cartographie RGB précise de 0 à 255 dans votre environnement spécifique.
Étapes rapides
- Si c'est la première fois que vous utilisez l'ESP32, consultez Installation du logiciel ESP32..
- Copiez le code d'étalonnage dans l'IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'ESP32
- Ouvrez le Moniteur série (réglez le débit à 9600 bauds)
- Orientez le capteur vers des objets de couleurs différentes : papier blanc, surface noire et diverses couleurs
- Surveillez les valeurs min et max qui se mettent à jour automatiquement
- Après que les valeurs se soient stabilisées (10-20 secondes), notez les six valeurs d'étalonnage
Exemple de résultats d'étalonnage issus de la sortie :
- RougeMin = 42, rougeMax = 210
- VertMin = 55, vertMax = 185
- BleuMin = 60, bleuMax = 172
Code ESP32 - Lecture des valeurs de couleur RVB
Étapes rapides
- Trouvez les constantes d'étalonnage en haut du code :
Aucun contenu fourni à traduire.
int redMin = 0; // Largeur d'impulsion minimale du rouge
int redMax = 0; // Largeur d'impulsion maximale rouge
int greenMin = 0; // Largeur d'impulsion minimale pour le vert
int greenMax = 0; // Largeur d'impulsion maximale du vert
int blueMin = 0; // Largeur d'impulsion minimale bleue
int blueMax = 0; // Largeur d'impulsion maximale bleue
Please provide the English text to translate. The code block is currently empty.
- Remplacez les six zéros par vos valeurs de calibration réelles. Par exemple (en utilisant redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172) :
Please provide the English text to translate.
int rougeMin = 42;
int rougeMax = 210;
int vertMin = 55;
int maxVert = 185;
int bleuMin = 60;
int bleuMax = 172;
Please provide the English content to translate; it appears the text is missing between the code blocks.
- Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'ESP32
- Placez un objet de couleur devant le capteur
- Consultez le résultat dans le Moniteur série
La sortie affiche désormais les valeurs RVB standard de 0 à 255. Des largeurs d'impulsion plus courtes (éclairage plus lumineux) donnent des valeurs RVB plus élevées ; des largeurs d'impulsion plus longues (conditions moins lumineuses) produisent des valeurs RVB plus faibles.
Candidatures au projet
Avec une capacité de lecture RGB fonctionnelle, explorez ces possibilités de projets :
- Tri automatique des couleurs: Classer les articles par teinte (identification des couleurs rouge, vert et bleu)
- Système de comparaison des couleurs: Vérifier l'appariement des couleurs entre les objets
- Suivi de ligne chromatique: Construire des robots qui suivent des chemins colorés
- Contrôle qualité de fabrication: Identifier les unités défectueuses par écart de couleur
- Réponse déclenchée par la couleur: Activer des avertisseurs sonores ou des indicateurs lors de la détection de couleurs spécifiques