Sensor De Color TCS3200
- Chip
- TCS3200: fotodiodos con filtros rojo, verde, azul y sin filtro
- Alimentación
- 3 a 5 V
- Salida
- Onda cuadrada: su frecuencia indica la intensidad del color
- Escala (S0, S1)
- 2 %, 20 % o 100 %; ambos en bajo apaga el chip
Características
Sensor que reconoce colores: tiene una matriz de fotodiodos con filtros rojo, verde y azul y convierte la intensidad de cada color en una frecuencia que el Arduino mide. Trae cuatro LED blancos que iluminan el objeto para que la lectura dependa menos de la luz del lugar.
Sirve para clasificar objetos por color o seguir líneas de colores.
| Chip | TCS3200: fotodiodos con filtros rojo, verde, azul y sin filtro |
|---|---|
| Alimentación | 3 a 5 V |
| Salida | Onda cuadrada: su frecuencia indica la intensidad del color |
| Escala (S0, S1) | 2 %, 20 % o 100 %; ambos en bajo apaga el chip |
| Filtro (S2, S3) | Bajo-bajo rojo · bajo-alto azul · alto-bajo sin filtro · alto-alto verde |
| OE | Habilita la salida en bajo: conéctalo a GND |
| Iluminación | 4 LED blancos |
¿Para qué sirve?
- Clasificar objetos por color (cintas transportadoras, golosinas, piezas)
- Robots que siguen líneas de colores
- Juegos y proyectos educativos
Diagrama de conexión de prueba
Placa usada: Arduino UNO
| Cable | Módulo | Arduino UNO | Nota |
|---|---|---|---|
| naranja | S0 | D4 | |
| amarillo | S1 | D5 | |
| verde | S2 | D6 | |
| azul | S3 | D7 | |
| morado | OUT | D8 | Salida de frecuencia |
| gris | OE | GND | Habilita la salida |
| rojo | VCC | 5V | |
| negro | GND | GND |
Código de prueba
// Prueba del sensor de color TCS3200: mide la luz roja, verde y azul y dice
// qué color predomina. Un número MENOR significa MÁS de ese color.
const int S0 = 4;
const int S1 = 5;
const int S2 = 6;
const int S3 = 7;
const int PIN_OUT = 8;
void setup() {
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(PIN_OUT, INPUT);
// Escala de salida al 20 % (S0 alto, S1 bajo): adecuada para el Arduino
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
Serial.begin(9600);
}
// Elige el filtro con S2 y S3 y mide el ancho del pulso de salida
unsigned long medir(int s2, int s3) {
digitalWrite(S2, s2);
digitalWrite(S3, s3);
delay(50);
return pulseIn(PIN_OUT, LOW);
}
void loop() {
unsigned long rojo = medir(LOW, LOW);
unsigned long verde = medir(HIGH, HIGH);
unsigned long azul = medir(LOW, HIGH);
Serial.print("R: "); Serial.print(rojo);
Serial.print(" V: "); Serial.print(verde);
Serial.print(" A: "); Serial.print(azul);
if (rojo < verde && rojo < azul) Serial.println(" -> rojo");
else if (verde < rojo && verde < azul) Serial.println(" -> verde");
else Serial.println(" -> azul");
delay(500);
}
Abre el Monitor serie a 9600 baudios y acerca papeles de colores al sensor. Las lecturas cambian con la distancia y la luz: compara los tres números entre sí, no su valor.
Precauciones
- Pon el objeto muy cerca (1 o 2 cm) y protégelo de la luz exterior para lecturas estables.
- Para distinguir colores parecidos, calibra antes con una hoja blanca y una negra.
- Deja OE conectado a GND: en alto apaga la salida.
Fuentes consultadas: Components101: módulo TCS3200 · DFRobot: TCS3200 (SEN0101) · Last Minute Engineers: TCS3200 con Arduino. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.