SOMMAIRE ►
Le capteur de couleurs TCS230 Arduino est capable de reconnaître 4 couleurs et convertit l’intensité du spectre des couleurs en un signal de différentes fréquences. Voyons le dispositif du capteur de couleur rgb, le schéma de connexion à Arduino Uno et présentons quelques croquis avec des exemples d’utilisation du color sensor et la sortie d’informations sur le spectre des couleurs (couleur de l’objet) sur le port série de l’Arduino IDE et avec des LEDs.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
- color sensor TCS230
- LEDs et résistances
- une breadboard
- fils de connexion
Matériel supplémentaire sur ce sujet:
Capteur de couleur Arduino datasheet, pinout
Dans la palette de couleurs RVB, toute couleur peut être représentée comme une combinaison des trois couleurs primaires: rouge (R), vert (G) et bleu (B). Il est donc nécessaire de mesurer le spectre rouge, bleu et vert pour déterminer la couleur. Le capteur utilisé est le TCS230, composé d’une matrice de 8×8 photodiodes – 16 photodiodes pour trois couleurs et 16 photodiodes sans filtre. Tension d’alimentation du module de 2,7 à 5,5 volts.

Caractéristiques sensor TCS3200 Arduino:
- Alimentation: de 2.7V à 5.5V
- Haute résolution de conversion intensité de lumière vers fréquence
Le capteur est utilisé pour détecter la couleur d’un objet à une distance maximale de 10 mm. Il est équipé de quatre diodes électroluminescentes (DEL) qui éclairent l’emplacement de la mesure. Sur la face arrière du capteur se trouvent des tampons avec des contacts. Le capteur TCS230 est connecté à l’Arduino via ces contacts. Les contacts « S0 » et « S1 » sont utilisés pour mettre à l’échelle la fréquence des impulsions à la sortie « OUT » du module TCS230.
Comment branchement le capteur de couleur Arduino

L’étalonnage du capteur TCS230 doit être effectué dans une bonne lumière et à la même distance du sujet. En cas de changement de la lumière ambiante ou de la distance par rapport au sujet, tous les réglages peuvent être désactivés. Notez que le capteur détecte facilement le rouge, mais ne distingue pas bien le bleu et le vert. Pour sortir les informations sur le port série Arduino IDE, assemblez le circuit et chargez le programme dans la carte.
Programme Arduino pour le capteur de couleur
#define s2 2 #define s3 3 #define out 4 byte red = 0; byte green = 0; byte blue = 0; void setup() { Serial.begin(9600); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT); pinMode(out, INPUT); } void loop() { color(); Serial.print(" RED: " + String(red)); Serial.print(" GREEN: " + String(green)); Serial.println(" BLUE: " + String(blue)); delay(500); } void color() { digitalWrite(s2, LOW); digitalWrite(s3, LOW); red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s3, HIGH); blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s2, HIGH); green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); }
Explication du code pour le capteur de couleur tcs3200 arduino:
- la procédure void color() est utilisée pour interroger le color sensor;
- dans la procédure void loop() les données reçues sont sorties sur le port série.

Lorsque nous démarrons le programme et ouvrons le port série, nous verrons les valeurs pour chacune des trois couleurs et le message indiquant quelle couleur a été sélectionnée, lorsque nous amenons l’échantillon au capteur. Il faut noter que si le message de couleur ne correspond pas à la couleur réelle, il est nécessaire de modifier les valeurs des fréquences dans le programme, en les ajustant selon les valeurs RGB.
Programme Arduino pour le color sensor RGB
#define s2 2 #define s3 3 #define out 4 byte red = 0; byte green = 0; byte blue = 0; void setup() { Serial.begin(9600); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT); pinMode(out, INPUT); } void loop() { color(); Serial.print(" RED: " + String(red)); Serial.print(" GREEN: " + String(green)); Serial.println(" BLUE: " + String(blue)); if(red > 60 && blue < 90 && green < 90) { Serial.println("RED COLOR"); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW); } if(red < 60 && blue > 90 && green < 90) { Serial.println("BLUE COLOR"); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW); } if(red < 60 && blue < 90 && green > 90) { Serial.println("GREEN COLOR"); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH); } delay(500); } void color() { digitalWrite(s2, LOW); digitalWrite(s3, LOW); red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s3, HIGH); blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); digitalWrite(s2, HIGH); green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); }
Explication du code pour detecteur tcs3200 Arduino et LEDs:
- en fonction de la couleur de l’objet, une certaine LED s’allume;
- en utilisant des instructions if supplémentaires dans le programme color sensor, vous pouvez spécifier plus de trois couleurs à définir.
Conclusion. Le tri des couleurs a plusieurs applications dans la vie réelle, et nous pensons qu’il est très utile lorsqu’il peut être réalisé avec une solution peu coûteuse comme la plateforme Arduino. Le module de color sensor TCS2300 sera utile dans les projets où la reconnaissance des couleurs est nécessaire – par exemple, pour la correspondance des colorants, le tri des couleurs, la détection des couleurs des bandes de test, etc.








Bonjour,Admin
Est ce que avec ce module tu peux faire une caméra.
Il y a peut être une erreur dans la partie loop, vous écrivez trois fois la même condition if(red > 60 && blue > 90 && green > 90) {.
Merci, j’ai corrigé le programme.
Mais il faut noter que beaucoup de choses dépendent de l’éclairage et de la surface de l’objet. Il faut donc ajuster les conditions individuellement à chaque fois.
Je cherche une solution pour detecter les objets noir et brun avec de tailles arrive jusqua 100 micrometre au minimum pour une surface carrée de10cm/10cm
Est ce que ce capteur eut capter rapidement la couleur ?