medir valores rgb con arduino y sensor de color tcs34725 5c813a179276c - Electrogeek

Medir valores RGB con Arduino y sensor de color TCS34725 Deja un comentario

arduino tcs34725 - Electrogeek

¿Qué es un TCS34725?

El TCS34725 es un sensor de color digital que podemos emplear con un procesador como Arduino para obtener los medir los valores RGB del color de un objeto o luz.

El TCS34725 es un integrado completo que realiza un tratamiento digital de la medición de color, proporcionando los valores RGB y Clear (medición total sin filtrar). La comunicación con el sensor se realiza por I2C por lo que su lectura desde un procesador como Arduino es muy sencilla.

Incorpora un filtro de infrarrojos, lo que mejora su precisión ante el ruido del entorno. El tiempo de medición y la ganancia es ajustable por software. Dispone de una amplia sensibilidad y un amplio rango dinámico de 3.800.000:1, pudiendo funcionar incluso tras un cristal oscuro.

Podemos encontrarlo en módulos comerciales que incorporan un LED de luz neutra (4150°K) junto con un MOSFET integrado para su control, por lo que podemos controlar el encendido del LED desde el código.

Además de la comunicación I2C, el TCS34725 incorpora un pin de interrupción junto con un umbral inferior y superior. Cuando el nivel de luz está fuera del rango de los umbrales, el TCS34725 genera una interrupción que permanece activa hasta que es reseteada por el controlador.

A diferencia de otros sensores de color como el popular TCS3200, que únicamente son capaces de detectar colores básicos, el TCS34725 es capaz de proporcionar una medición RGB relativamente precisa del color medido.

Por supuesto, como cualquier sensor el TCS34725 no es perfecto y tiene desviaciones típicas de cualquier sensor, por lo que no obtendréis una medida totalmente precisa. En general, es necesario calibrar el color.

El TCS34725 es un sensor relativamente moderno y uno de los mejor sensor de color disponibles en el sector doméstico (geek/maker).

Los TCS34725 son sensores baratos. Podemos encontrar módulos con el TCS34725 por unos 2,70€ en vendedores internacionales de eBay y AliExpress.

arduino tcs34725 componente - Electrogeek

El TCS34725 es un sensor óptico que incorpora una matriz de 3×4 fotodiodos, junto con 4 conversores analógico digital de 16bits (ADC) que realizan la medición de los fotodiodos.

arduino tcs34725 interior - Electrogeek

La matriz de3x4 está formada por fotodiodos filtrados para rojo, verde, azul, y sin filtro (clear). Todos los sensores están filtrados para infrarrojos.

arduino tcs34725 funcionamiento - Electrogeek

Los conversores ADC integran la medición de los fotodiodos, que es transferida a los registros internos del TCS347, que incorporan doble buffer para asegurar la integridad de os datos.

rduino tcs34725 microscopio - Electrogeek

El estado del sensor y el estado de energía del sensor está controlado por una máquina de estados interna, que controla todas las funciones del TCS34725.

La conexión de los módulos que integran el TCS34725 es sencilla, ya que la comunicación se realiza a través de I2C. La tensión de alimentación del TCS34725 es de 3.3V, pero normalmente los módulos comerciales integran una salida Vin que permite alimentar a 5V.

Por tanto, simplemente alimentamos el módulo desde Arduino mediante GND y Vin y conectamos el pin SDA y SCL de Arduino con los pines correspondientes del sensor.

arduino tcs34725 esquema - Electrogeek

El pin LED controla el encendido del LED de luz neutra integrado en el módulo. La conexión de este pin puede ser la siguiente:

  • Dejar sin conectar para mantenerlo encendido continuamente.
  • Conectar a GND para apagar continuamente.
  • Conectar a un pin digital, para controlar su encendido con digitalWrite().
  • Conectarlo al pin INT y controlar el encendido con setInterrupt() de la librería.

Vista desde Arduino, la conexión sería la siguiente,

arduino tcs34725 - Electrogeek

Para realizar la lectura del sensor TCS34725 usaremos la librería desarrollada por Adafruit, disponible en este enlace. La librería incorpora varios ejemplos de uso que conviene revisar

A continuación vamos a ver algunos ejemplos de uso del sensor TCS34725

Leer valores RGB

En este primer ejemplo, muy sencillo, leemos los valores del sensor y los mostramos por puerto serie para su visualización.

Clasificar colores

En el segundo ejemplo, vamos a leer los valores RGB e intentar determinar el color que estamos leyendo. Para que sea más sencillo convertimos los valores RGB a HSV con la librería ColorConverter.

Para determinar el color empleamos el Hue del color medido. Para un ajuste fino será necesario calibrar el sensor ensayando colores y ajustando los valores de los condicionales.

Clonar color en tira WS2812b

En el último ejemplo, vamos a usar una tira Led RGB WS2812b para “clonar” el color que leemos en el sensor de color.

El ejemplo es muy simple, por un lado leemos el color con el TCS34725. Por otro, usamos la librería Fastled para hacer un efecto estela en la tira WS2812b. La tabla de conversión gamma adapta los colores leídos a la percepción de color que tiene el ojo humano.

Este es el resultado

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

0
    0
    Tu Carrito
    Tu carrito esta vacíoVolver a la tienda
    Enviar Whatsapp
    Hola 👋
    ¿En qué podemos ayudarte?