TCS34725 Sensor de Color RGB Modulo para Arduino CJMCU-34725

[TCS34725] TCS34725 Sensor de Color RGB Modulo para Arduino CJMCU-34725

https://electrofranko.com/web/image/product.template/54722/image_1920?unique=bcf724c

S/ 24.00 24.0 PEN S/ 24.00

S/ 24.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: TCS34725

Sensor de Color RGB y Luz Clara TCS34725

Convertidor digital de luz a color con comunicación I2C, filtro IR integrado y lectura precisa de temperatura de color.

El TCS34725 es un avanzado sensor digital que realiza mediciones cromáticas precisas mediante una matriz de fotodiodos con filtros para Rojo, Verde, Azul y Luz Clara. Su tecnología destaca por integrar un filtro de bloqueo infrarrojo directo sobre el silicio, reduciendo las distorsiones ópticas generadas por fuentes de luz externa o calor ambiente. Dispone de un convertidor analógico-digital de 16 bits por canal, transmitiendo lecturas estables mediante el protocolo síncrono I2C. Es ideal para robótica e instrumentación industrial, facilitando cálculos exactos de iluminancia y temperatura de color en sistemas embebidos.

Especificaciones Técnicas

Parámetro OperativoRango / Valor Oficial
Sistemas CompatiblesArduino, ESP32, Raspberry Pi, STM32, PIC
Voltaje de Alimentación3.3 V a 5.0 V DC (Regulador interno en placa)
Protocolo de ComunicaciónI2C (Dirección fija por hardware: 0x29)
Resolución del ADC16 bits por canal independiente (R, G, B, C)
Canales de MediciónRojo, Verde, Azul y Luz Clara (Clear) sin filtro
Rango Dinámico Total3,800,000:1 (Configurable por ganancia y tiempo)
Gains (Ganancia Ajustable)1x, 4x, 16x y 60x por configuración de registros
Parámetro Mecánico / SeñalRango / Valor Oficial
Filtro Óptico IntegradoFiltro de atenuación y bloqueo IR directo en el chip
Tiempo de Integración2.4 ms a 700 ms (Modulable por software)
Iluminación de ApoyoLED blanco neutro integrado con pin de control (LED)
Salida de InterrupciónPin INT activo a nivel bajo con persistencia programable
Corriente de Consumo330 µA (Activo) / 15 µA (Modo suspensión eléctrica)
Dimensiones de la PCB20.5 mm x 20.5 mm x 3.5 mm
Peso Neto del Módulo2.5 gramos (Formato ultracompacto para chasis)

Compatibilidad y Ventajas en Arduino, ESP32 y Raspberry Pi

Precisión de 16 Bits Frente a Sensores Antiguos: A diferencia de sensores analógicos o del antiguo TCS3200 (que dependía de conversión frecuencia-digital externa), el TCS34725 digitaliza la señal internamente a 16 bits por canal, eliminando ruidos en líneas largas hacia **Arduino**.

Cálculos Avanzados de Lux y Temperatura en ESP32: Permite utilizar la potencia de procesamiento del **ESP32** para calcular en tiempo real métricas complejas de iluminación, como la temperatura de color correlacionada (CCT en Kelvin) y la iluminancia exacta en Lux.

Control Total del Iluminador por Hardware: Incorpora un terminal de control (LED) que permite encender, apagar o modular mediante PWM el foco de luz blanca desde cualquier pin digital o línea de la **Raspberry Pi**, evitando consumos innecesarios.

La interconexión del módulo TCS34725 requiere únicamente de cuatro líneas fundamentales compartidas a través del estándar de comunicación serial síncrona I2C, lo que simplifica sustancialmente el diseño del cableado.

Galería Dinámica de Conexiones de Hardware

Esquema 1: Arduino Uno TCS34725
Esquema 3: Raspberry Pi TCS34725
Esquema 2: ESP32 TCS34725
Esquema 4: Configuración Pinout Módulo TCS34725
Guía de Cableado Interplataforma: Enlace la línea **VIN o VCC** del módulo a un pin de voltaje adecuado (**5V o 3.3V en Arduino / 3.3V directos en ESP32 y Raspberry Pi**) y el terminal **GND** a la masa común. Las líneas de datos del protocolo I2C deben mapearse de la siguiente forma: Conecte el terminal **SDA** (Serial Data) al pin A4 en Arduino Uno, al GPIO 21 en el ESP32 o al pin físico 3 en Raspberry Pi. Conecte el terminal **SCL** (Serial Clock) al pin A5 en Arduino Uno, al GPIO 22 en el ESP32 o al pin físico 5 en Raspberry Pi. Los pines **INT** (Interrupción) y **LED** (Control de retroiluminación) son opcionales y pueden dejarse desconectados si no se requiere su control específico por software.
🎓 Conceptos de Ganancia, Tiempo de Integración e Interpretación de Color

Para realizar mediciones cromáticas consistentes y configurar adecuadamente los registros internos del TCS34725 en entornos industriales o de laboratorio, aplique los siguientes principios:

  • Tiempo de Integración (Atime): Determina cuánta luz se acumula en los registros del ADC antes de emitir un resultado. Tiempos cortos (ej. 2.4 ms) son óptimos para análisis rápidos o bandas transportadoras de alta velocidad, pero reducen la resolución. Tiempos largos (ej. 700 ms) incrementan drásticamente la resolución en entornos oscuros, acumulando lecturas estables de hasta 65,535 cuentas.
  • Ajuste de Ganancia Electrónica (Gain): Permite amplificar la señal de los fotodiodos ante condiciones de muy baja luminosidad (ajustes de 16x o 60x). Sin embargo, usar una ganancia elevada bajo luz directa o a distancias cortas provocará la saturación de los registros del ADC (lecturas fijas de valor máximo), requiriendo reducir la amplificación a 1x o 4x.
  • Función del Canal Claro (Clear): El canal Clear mide la intensidad total de la luz blanca incrustada sin filtrar. Es vital para realizar la normalización matemática de los canales de color. Dividir los valores crudos de Rojo, Verde y Azul entre el valor total de Clear permite calcular vectores cromáticos relativos independientes de la distancia o los cambios de sombra.
// Código Completo y Universal para el Sensor de Color Digital TCS34725 // Requiere la instalación previa de la biblioteca oficial "Adafruit TCS34725" desde el gestor de librerías #include <Wire.h> #include "Adafruit_TCS34725.h" // Inicialización del objeto del sensor utilizando configuraciones estándar de alta precisión // Parámetros: Tiempo de Integración = 50ms (TCS34725_INTEGRATIONTIME_50MS) // Ganancia Electrónica = 4x (TCS34725_GAIN_4X) Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X); void setup() { // Inicialización de la consola serie a alta velocidad para evitar cuellos de botella en la impresión de datos Serial.begin(115200); Serial.println("--- Inicializando Modulo de Analisis Cromático TCS34725 ---"); // Verificación de la conexión física del chip en la dirección de bus I2C (0x29) if (tcs.begin()) { Serial.println("[ CONFIG ]: Sensor TCS34725 detectado exitosamente en el bus I2C."); } else { Serial.println("[ ERROR ]: No se encontró el sensor TCS34725. Verifique el cableado, pines SDA/SCL y alimentación."); while (1); // Detener la ejecución del programa de forma segura si hay un fallo de hardware } Serial.println("[ INFO ]: Sistema listo. Posicione una muestra a una distancia recomendada de 1cm a 3cm."); Serial.println("-----------------------------------------------------------------------------------------"); } void loop() { // Declaración de variables de 16 bits sin signo para almacenar los datos crudos del ADC uint16_t r, g, b, c; // Adquisición síncrona de las variables espectrales de los fotodiodos internos tcs.getRawData(&r, &g, &b, &c); // Cálculos matemáticos avanzados provistos por la librería para estimar la física de la luz uint16_t colorTemp = tcs.calculateColorTemperature(r, g, b); uint16_t lux = tcs.calculateLux(r, g, b); // IMPRESIÓN DE LECTURAS CRUDAS (Útiles para calibración y normalización) Serial.print("[ DATOS CRUDOS ] "); Serial.print("R: "); Serial.print(r); Serial.print(" | G: "); Serial.print(g); Serial.print(" | B: "); Serial.print(b); Serial.print(" | Clear: "); Serial.print(c); // IMPRESIÓN DE VALORES FÍSICOS CALCULADOS Serial.print(" || [ MÉTRICAS ] "); Serial.print("Temp Color: "); Serial.print(colorTemp); Serial.print(" K"); Serial.print(" | Iluminancia: "); Serial.print(lux); Serial.print(" Lux"); // ALGORITMO BÁSICO DE CLASIFICACIÓN DE COLORES MEDIANTE COMPARACIÓN DOMINANTE Serial.print(" || COLOR ESTIMADO: "); if (r > g && r > b) { Serial.println("[ ROJO DOMINANTE ]"); } else if (g > r && g > b) { Serial.println("[ VERDE DOMINANTE ]"); } else if (b > r && b > g) { Serial.println("[ AZUL DOMINANTE ]"); } else { Serial.println("[ MEZCLA EQUILIBRADA / SUPERFICIE NEUTRA ]"); } // Retardo de control temporal para dosificar la transmisión de datos por consola delay(500); }
1. ¿Por qué las lecturas de color cambian drásticamente si alejo el objeto del sensor?
La intensidad de la luz reflejada decae de forma inversamente proporcional al cuadrado de la distancia. Si la muestra se aleja, el fototransistor captura menos flujo luminoso global, disminuyendo los valores de todos los canales. Para compensar esto, se debe mantener una distancia fija (idealmente de 1 cm a 2.5 cm) o realizar una normalización dividiendo los canales R, G, B entre el valor del canal Clear.
2. ¿Qué función cumple el pin marcado como "LED" en la placa breakout?
El pin LED está conectado directamente a la compuerta de un transistor de control en la PCB que alimenta al diodo emisor de luz blanca. Por defecto, si se deja flotando o se conecta a VIN, el LED permanece encendido para iluminar el objetivo. Si conecta este pin a GND o lo gestiona desde un pin digital en nivel bajo, el LED se apagará por completo, útil para medir luz ambiental pura.
3. ¿Cómo sé si el sensor está saturado y cómo puedo corregirlo por software?
La saturación ocurre cuando los registros del ADC de 16 bits alcanzan su límite absoluto superior (un valor de 65,535 cuentas). Si observa valores estáticos en su consola cerca de este número, disminuya inmediatamente la ganancia electrónica (ajustándola a 1x o 4x) o reduzca el tiempo de integración mediante el comando de inicialización en el código.
4. ¿Es posible cambiar la dirección I2C del TCS34725 para usar dos sensores en el mismo microcontrolador?
No de forma directa en el chip. La dirección de comunicación I2C está fijada estrictamente de fábrica en el silicio con el valor hexadecimal 0x29 y no puede ser modificada por software ni puentes de soldadura. Para conectar más de un sensor TCS34725 en el mismo bus, es obligatorio incorporar un multiplexor de bus I2C como el TCA9548A.
5. ¿Cuál es la ventaja de tener un filtro de bloqueo IR integrado en este componente?
La luz solar y las lámparas incandescentes emiten una inmensa proporción de radiación infrarroja que es invisible para el ojo humano pero altamente detectable por el silicio de los fotodiodos comunes. Al bloquear físicamente la banda IR sobre el chip, el TCS34725 garantiza que los canales medidos emulen fielmente la respuesta espectral del ojo humano, logrando una coincidencia de color real.
6. ¿Qué mide exactamente el parámetro de Temperatura de Color expresado en Kelvin (K)?
Determina la tonalidad de color de la fuente de luz. Valores bajos (ej. 2700K a 3000K) representan luces cálidas o amarillentas (similares a un atardecer o lámparas halógenas), mientras que valores altos (ej. 5500K a 6500K) describen luces frías o azuladas (luz del día pura o lámparas fluorescentes industriales).
7. ¿Por qué el sensor arroja errores de compilación indicando que no encuentra la librería Adafruit_TCS34725?
Este error se debe a la ausencia de los archivos de cabecera en el entorno de desarrollo. Se soluciona ingresando al Gestor de Librerías del IDE de Arduino, buscando el término exacto "Adafruit TCS34725" e instalando tanto la librería principal como sus dependencias requeridas (Adafruit BusIO y la biblioteca de sensores unificada).
8. ¿Este sensor es capaz de distinguir con fiabilidad sutiles diferencias cromáticas entre billetes o pinturas?
Sí, gracias a su ADC de alta resolución de 16 bits. Sin embargo, para aplicaciones críticas de control de calidad de pintura o detección de falsificaciones, la precisión no depende únicamente del sensor, sino de mantener condiciones mecánicas de medición estables: blindaje absoluto contra luz exterior, distancia milimétrica constante al objetivo y calibración periódica mediante muestras de referencia blanco y negro.
9. ¿Es compatible la interfaz I2C del módulo con los niveles lógicos del ESP32 sin romper los pines de entrada?
Sí. La gran mayoría de módulos comerciales comerciales de este tipo incorporan en su diseño un regulador de voltaje de 3.3V de caída baja (LDO) y un circuito convertidor de nivel lógico bidireccional integrado con transistores MOSFET en las líneas SDA y SCL. Esto permite energizar el módulo con 5V seguros mientras las señales de comunicación se mantienen a los 3.3V adecuados del ESP32.