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

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

En este tutorial de Arduino aprenderemos a detectar colores usando Arduino y el Sensor de Color TCS230 / TCS3200. Puedes ver el siguiente vídeo o leer el tutorial escrito a continuación para más detalles.

Cómo Funciona el Sensor de Color TCS230 / TCS3200

El TCS230 detecta la luz de color con la ayuda de un array de 8 x 8 fotodiodos. Luego, usando un Convertidor de Corriente a Frecuencia, las lecturas de los fotodiodos se convierten en una onda cuadrada con una frecuencia directamente proporcional a la intensidad de la luz. Finalmente, usando la placa Arduino podemos leer la salida de onda cuadrada y obtener los resultados del color.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

Si echamos un vistazo más de cerca al sensor, podemos ver cómo detecta varios colores. Los fotodiodos tienen tres filtros de color diferentes. Dieciséis de ellos tienen filtros rojos, otros 16 tienen filtros verdes, otros 16 tienen filtros azules y los otros 16 fotodiodos son transparentes sin filtros.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

Cada 16 fotodiodos están conectados en paralelo, así que usando los dos pines de control S2 y S3 podemos seleccionar cuál de ellos se leerá. Así que, por ejemplo, si queremos detectar color rojo, podemos usar solo los 16 fotodiodos con filtro rojo poniendo los dos pines a nivel lógico bajo según la tabla.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

El sensor tiene dos pines de control más, S0 y S1, que se usan para escalar la frecuencia de salida. La frecuencia puede escalarse a tres valores preestablecidos diferentes del 100 %, 20 % o 2 %. Esta función de escalado de frecuencia permite optimizar la salida del sensor para varios contadores de frecuencia o microcontroladores.

Ahora estamos listos para continuar y conectar el sensor TCS230 a la placa Arduino. Aquí está el esquema del circuito.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

Puedes conseguir los componentes necesarios para este tutorial de Arduino en los enlaces a continuación:

  • Sensor de Color TCS230 TCS3200…….
  • Placa Arduino ……………………………
  • Protoboard y cables jumper ………

Código Fuente Sensor de Color TCS230

Descripción: Primero necesitamos definir los pines a los que está conectado el sensor y definir una variable para leer la frecuencia. En la sección setup necesitamos definir los cuatro pines de control como salidas y la salida del sensor como una entrada de Arduino. Aquí también necesitamos establecer el escalado de frecuencia, para este ejemplo lo estableceré al 20%, e iniciar la comunicación serial para mostrar los resultados en el Monitor Serial.

En la sección loop, comenzaremos leyendo los fotodiodos con filtro rojo. Para ese propósito, pondremos los dos pines de control S2 y S3 a nivel lógico bajo. Luego, usando la función "pulseIn()" leeremos la frecuencia de salida y la pondremos en la variable "frequency". Usando la función Serial.print() imprimiremos el resultado en el monitor serial. El mismo procedimiento va para los otros dos colores, solo necesitamos ajustar los pines de control para el color apropiado.

/* Tutorial Arduino Detección de Color 
 * by Dejan Nedelkovski, www.HowToMechatronics.com 
 */
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8
int frequency = 0;
void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  // Establecer escalado de frecuencia al 20%
  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);
  Serial.begin(9600);
}
void loop() {
  // Configurar fotodiodos con filtro rojo para ser leídos
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  // Leer frecuencia de salida
  frequency = pulseIn(sensorOut, LOW);
  // Imprimir valor en monitor serial
  Serial.print("R= "); // imprimir nombre
  Serial.print(frequency); // imprimir frecuencia color ROJO
  Serial.print(" ");
  delay(100);
  // Configurar fotodiodos con filtro verde para ser leídos
  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("G= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
  // Configurar fotodiodos con filtro azul para ser leídos
  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("B= ");
  Serial.print(frequency);
  Serial.println(" ");
  delay(100);
}Lenguaje: Arduino (arduino)

Ahora, si ejecutamos el Monitor Serial, comenzaremos a obtener algunos valores. Estos valores dependen del escalado de frecuencia seleccionado, así como de la iluminación ambiental.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

Ten en cuenta aquí que los tres valores difieren debido a la diferente sensibilidad de cada tipo de fotodiodo, como se ve en el diagrama de responsividad espectral del fotodiodo del datasheet del sensor.

Sin embargo, ahora veamos cómo reaccionan los valores cuando traemos diferentes colores frente al sensor. Así que, por ejemplo, si traemos color rojo, el valor inicial bajará, en mi caso de alrededor de 70 a alrededor de 25.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

Ahora, si queremos representar los colores detectados con el Modelo RGB que tiene valores de 0 a 255, usaremos la función map() para mapear o convertir las lecturas a valores de 0 a 255.

// Re-mapeando el valor de la frecuencia al Modelo RGB de 0 a 255
frequency = map(frequency, 25, 70, 255, 0);

El valor de 70 se mapeará a 0, y el valor de 25 a 255. El mismo procedimiento va para los otros dos colores.

Aquí está el código fuente final para este ejemplo:

/* Tutorial Arduino Detección de Color 
 * by Dejan Nedelkovski, www.HowToMechatronics.com 
 */
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8
int frequency = 0;
void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  // Establecer escalado de frecuencia al 20%
  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);
  Serial.begin(9600);
}
void loop() {
  // Configurar fotodiodos con filtro rojo para ser leídos
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  frequency = pulseIn(sensorOut, LOW);
  // Re-mapeando el valor de la frecuencia al Modelo RGB de 0 a 255
  frequency = map(frequency, 25, 72, 255, 0);
  Serial.print("R= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
  // Configurar fotodiodos con filtro verde para ser leídos
  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, 30, 90, 255, 0);
  Serial.print("G= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
  // Configurar fotodiodos con filtro azul para ser leídos
  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, 25, 70, 255, 0);
  Serial.print("B= ");
  Serial.print(frequency);
  Serial.println(" ");
  delay(100);
}Lenguaje: Arduino (arduino)

Ten en cuenta que los colores no son tan precisos, pero son lo suficientemente buenos para proyectos simples. Como otro ejemplo del sensor de color TCS230, en mi próximo video aprenderemos a hacer una Máquina Clasificadora Automática de Colores con Arduino.

Domina la detección de color con Arduino y sensores TCS230/TCS3200 – Guía paso a paso

Siéntete libre de hacer cualquier pregunta en la sección de comentarios a continuación y no olvides revisar mi colección de Proyectos Arduino.


Proceso de manufactura

  1. Tutorial sensor de luz Raspberry Pi: cablear LDR y leer niveles de luz con Python
  2. Crea un Cerrojo RFID Seguro con Arduino – Guía Paso a Paso
  3. Sensor K30 CO₂: Monitorización en tiempo real de la calidad del aire interior
  4. Construye un estadiómetro digital: Controla tu altura con Arduino y sensor láser
  5. Integración del sensor de huella capacitivo DFRobot (ID809) con Arduino o ESP8266
  6. Construye una Torre de Sensores con Arduino Cloud: Temperatura, Movimiento y Gas
  7. Mezclador de Colores RGB con Arduino – Proyecto DIY para Principiantes
  8. Construye un Mezclador de Colores RGB con Arduino – Tutorial Paso a Paso
  9. Ilumina tu Año Nuevo con Luces LED Musicales Dinámicas
  10. Proyecto Sensor de Huella Dactilar con Arduino Nano – Tutorial Paso a Paso
  11. Tutorial Arduino para Principiantes 01: Inicia tu Primer Proyecto