Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Detección de Colores con Arduino Nano y Sensor TCS3200

Componentes y materiales

ComponenteCantidad
Arduino Nano R31
Módulo sensor de color TCS32001
Pantalla LCD I2C 16x2 (fondo azul, texto blanco)1
Protoboard1
Cables de conexiónVarios

Software y servicios en línea

Descripción del proyecto

Este tutorial muestra cómo leer colores usando Arduino y el sensor TCS3200. El objetivo es detectar el color de un objeto y mostrarlo en una pantalla LCD. Este proyecto forma parte de un sistema más grande: un brazo robótico que selecciona una acción según el color del objeto detectado.

Detección de Colores con Arduino Nano y Sensor TCS3200
Diagrama de bloques principal

El siguiente video muestra el proyecto en funcionamiento:

Demostración del detector de colores

Paso 1: Lista de materiales (BoM)

Los enlaces y precios son solo referenciales:

Paso 2: El sensor de color TCS3200

Detección de Colores con Arduino Nano y Sensor TCS3200
Módulo sensor TCS3200

Según su hoja de datos, el TCS3200 es un conversor programable de luz a frecuencia que combina fotodiodos de silicio configurables y un conversor corriente-frecuencia en un solo circuito integrado CMOS monolítico.

La salida es una onda cuadrada (ciclo de trabajo 50%) con frecuencia directamente proporcional a la intensidad de luz (irradiancia). La frecuencia de salida a escala completa puede escalarse mediante uno de tres valores preestablecidos a través de dos pines de control (S0 y S1). Las entradas y salidas digitales permiten una interfaz directa con un microcontrolador u otra lógica digital.

Detección de Colores con Arduino Nano y Sensor TCS3200
Arquitectura interna del TCS3200

El pin OE (Output Enable) coloca la salida en alta impedancia para permitir el uso compartido de una línea de entrada del microcontrolador entre múltiples unidades. En el TCS3200, el conversor luz-frecuencia lee una matriz de 8×8 fotodiodos:

Los pines S2 y S3 seleccionan qué grupo de fotodiodos (rojo, verde, azul, claro) está activo. Los fotodiodos miden 110 μm × 110 μm y están separados por centros de 134 μm.

El pin OE (Enable) debe conectarse a GND (LOW). El sensor se alimenta entre 2.7 y 5.5 VDC; usaremos la salida de 5V del Arduino. Para un uso adecuado, se recomienda instalar un pequeño anillo de goma que aísle el sensor de la luz lateral; yo usé pegamento caliente para fijarlo.

Detección de Colores con Arduino Nano y Sensor TCS3200
Sensor con anillo de aislamiento

Paso 3: Conexión del hardware

Detección de Colores con Arduino Nano y Sensor TCS3200
Esquema de conexiones

Conexión del sensor TCS3200:

Conexión de la pantalla LCD I2C 16x2:

Monte el Arduino Nano en la protoboard. Conecte la salida de 5V y GND del Nano a ambos rieles de alimentación.

Paso 4: Código para Arduino

Detección de Colores con Arduino Nano y Sensor TCS3200
Fragmento del código en Arduino IDE

Lo primero es definir el escalado de frecuencia mediante los pines S0 y S1. Esto optimiza las lecturas para distintos contadores de frecuencia o microcontroladores. Configuraremos ambos en HIGH (100%):

digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);

Luego seleccionamos el color a leer (rojo, verde o azul) usando los pines de control S2 y S3. Como los fotodiodos están en paralelo, combinaciones de LOW/HIGH en S2 y S3 permiten seleccionar diferentes grupos:

digitalWrite(s2, LOW);  digitalWrite(s3, LOW);  red  = pulseIn(outPin, LOW); // Componente ROJO
digitalWrite(s2, HIGH); digitalWrite(s3, HIGH); grn  = pulseIn(outPin, LOW); // Componente VERDE
digitalWrite(s2, LOW);  digitalWrite(s3, HIGH); blu  = pulseIn(outPin, LOW); // Componente AZUL

En el código final, leeremos varias veces cada componente RGB y calcularemos el promedio para reducir errores por lecturas espurias.

Una vez obtenidos los tres componentes (RGB), debemos definir a qué color corresponden. Para ello, calibramos previamente con objetos de color conocido y anotamos los valores generados.

Puede partir de mis valores de referencia, ajustándolos a sus condiciones de iluminación:

void getColor() {
  readRGB();
  if (red > 8 && red < 18 && grn > 9 && grn < 19 && blu > 8 && blu < 16) color = "BLANCO";
  else if (red > 80 && red < 125 && grn > 90 && grn < 125 && blu > 80 && blu < 125) color = "NEGRO";
  else if (red > 12 && red < 30 && grn > 40 && grn < 70 && blu > 33 && blu < 70) color = "ROJO";
  else if (red > 50 && red < 95 && grn > 35 && grn < 70 && blu > 45 && blu < 85) color = "VERDE";
  else if (red > 10 && red < 20 && grn > 10 && grn < 25 && blu > 20 && blu < 38) color = "AMARILLO";
  else if (red > 65 && red < 125 && grn > 65 && grn < 115 && blu > 32 && blu < 65) color = "AZUL";
  else color = "SIN_COLOR";
}

He predefinido 6 colores: blanco, negro, rojo, verde, amarillo y azul. A medida que disminuye la luz ambiente, los valores tienden a aumentar.

Dentro de loop(), actualizo la pantalla LCD cada segundo con la lectura actual.

El código completo está disponible en mi repositorio GitHub.

Paso 5: Conclusión

Detección de Colores con Arduino Nano y Sensor TCS3200
Proyecto completado

Como siempre, espero que este proyecto ayude a otros a adentrarse en el apasionante mundo de la electrónica, la robótica y el IoT.

Visite mi GitHub para archivos actualizados: Color Detector

Para más proyectos, visite mi blog: MJRoBot.org

¡Saludos desde el sur del mundo!

Nos vemos en el próximo tutorial.

Gracias,

Marcelo

Proceso de manufactura

  1. Crea un Impresionante Sistema Ambilight para Monitor con Arduino
  2. Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
  3. Detector de frecuencia de audio con Arduino – Mide los picos de sonido más intensos
  4. Construye tu Propio Tamagotchi con Arduino: Mascota Digital DIY
  5. Controlador Inalámbrico Inteligente de Interruptores: Manipulador Remoto Basado en Arduino
  6. Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
  7. Pistola de Agua Inteligente Activada por Movimiento con Arduino Nano
  8. Construye un Temporizador Regresivo Fiable con Arduino y Pantalla de 7 Segmentos SparkFun
  9. Mezclador de Colores RGB con Arduino – Proyecto DIY para Principiantes
  10. Girasol Arduino: Construye un Girasol Electrónico que Sigue al Sol
  11. Construye tu Propio Coche RC Porsche con Arduino: Guía Paso a Paso