El TCS34725 es un sensor de color capaz de detectar la intensidad de la luz roja, verde, azul y clara. Se usa ampliamente en proyectos de detección de color, incluyendo robótica, domótica y aplicaciones sensibles al color. Este tutorial te guiará para configurar y usar el sensor de color TCS34725 con un Arduino.
Qué necesitarás
- Placa Arduino (p. ej., Uno, Mega, Nano)
- Módulo sensor de color TCS34725
- Protoboard y cables de puente
- Un ordenador con el Arduino IDE instalado
- Bibliotecas: Adafruit TCS34725 Library
Paso 1: Entender el sensor de color TCS34725
El TCS34725 es un sensor compatible con I2C que proporciona datos de color e intensidad de luz. Incluye:
- Sensor RGBC: Mide las intensidades de luz roja, verde, azul y clara.
- Filtro bloqueador de IR: Mejora la precisión del color bajo distintas condiciones de iluminación.
- LED: LED blanco integrado para iluminación consistente (opcional).
Paso 2: Conectar el TCS34725 al Arduino
El TCS34725 se comunica con el Arduino mediante el protocolo I2C.
Conexiones
| Pin del sensor | Pin del Arduino |
|---|---|
| VIN | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Nota: Para placas Arduino con pines dedicados SDA y SCL (p. ej., Mega), conecta los pines SDA/SCL del sensor a esos en su lugar.
Paso 3: Instalar la biblioteca requerida
Para usar el sensor TCS34725, necesitas la biblioteca Adafruit TCS34725 library.
Pasos para instalar la biblioteca
- Abre el Arduino IDE.
- Ve a Sketch > Include Library > Manage Libraries.
- Busca "Adafruit TCS34725".
- Haz clic en Install.
Paso 4: Subir el código de ejemplo
Aquí hay un ejemplo básico para leer y mostrar los valores de color desde el sensor TCS34725.
Código de ejemplo
#include
#include "Adafruit_TCS34725.h"
// Crea una instancia del sensor
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X);
void setup() {
Serial.begin(9600);
if (!tcs.begin()) {
Serial.println("TCS34725 no encontrado. Comprueba tu cableado o la dirección I2C.");
while (1); // Detiene la ejecución si no se encuentra el sensor
}
Serial.println("TCS34725 listo!");
}
void loop() {
uint16_t r, g, b, c;
float lux, colorTemp;
// Obtiene los datos en bruto del sensor
tcs.getRawData(&r, &g, &b, &c);
// Calcula la temperatura de color y los lux
colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c);
lux = tcs.calculateLux(r, g, b);
// Imprime los resultados
Serial.print("Red: "); Serial.print(r); Serial.print(" \t");
Serial.print("Green: "); Serial.print(g); Serial.print(" \t");
Serial.print("Blue: "); Serial.print(b); Serial.print(" \t");
Serial.print("Clear: "); Serial.print(c); Serial.print(" \t");
Serial.print("Color Temp: "); Serial.print(colorTemp); Serial.print(" K \t");
Serial.print("Lux: "); Serial.println(lux);
delay(1000); // Actualiza cada segundo
}
Paso 5: Uso de los datos
1. Detección de color
Puedes mapear los valores RGB para identificar colores específicos. Por ejemplo:
if (r > g && r > b) {
Serial.println("Rojo detectado");
} else if (g > r && g > b) {
Serial.println("Verde detectado");
} else if (b > r && b > g) {
Serial.println("Azul detectado");
}
2. Activar acciones según el color
Usa los colores detectados para controlar LEDs o motores. Por ejemplo:
if (r > g && r > b) {
digitalWrite(ledPin, HIGH); // Encender LED rojo
}
3. Ajustar el sensor
Modifica la ganancia y el tiempo de integración del sensor para distintas condiciones de iluminación:
- Tiempo de integración: Determina la duración de la medición de luz. Opciones: 2.4ms a 700ms.
- Ganancia: Amplifica la señal. Opciones: 1x, 4x, 16x, 60x.
Ejemplo:
tcs.setIntegrationTime(TCS34725_INTEGRATIONTIME_154MS);
tcs.setGain(TCS34725_GAIN_4X);
Buenas prácticas
- Iluminación consistente: Usa el LED integrado del sensor o asegúrate de condiciones de iluminación estables.
- Calibrar para mayor precisión: Ajusta la ganancia y el tiempo de integración para lecturas óptimas.
- Filtrar ruido: Usa cables cortos y una buena conexión a masa para minimizar el ruido eléctrico.
Resolución de problemas
-
Sensor no detectado:
- Verifica las conexiones SDA y SCL.
- Comprueba la dirección I2C (por defecto: 0x29).
-
Lecturas inexactas:
- Asegúrate de una iluminación adecuada y evita sombras.
- Ajusta la ganancia y el tiempo de integración.
-
Valores fluctuantes:
- Añade un condensador en la fuente de alimentación para estabilizar el sensor.
Aplicaciones del sensor TCS34725
- Clasificación por color en robótica
- Detección de luz ambiental
- Calibración de color en fotografía
- Control de LED RGB
- Sistemas de iluminación automatizados
Conclusión
El TCS34725 es un sensor de color potente y fácil de usar para proyectos con Arduino. Siguiendo esta guía, puedes integrar el sensor en tus diseños, habilitando detección de color, medición de luz ambiental y más. Experimenta con distintas configuraciones para explorar todo el potencial de este versátil módulo!





