Tutorial del sensor de color Arduino – Sensor de color TCS230 TCS3200

En este tutorial, exploraremos en detalle el sensor de color Arduino TCS230 TCS3200. Descubre cómo este sensor avanzado puede ayudarte a detectar y reconocer una amplia gama de colores, lo que lo convierte en una herramienta invaluable para proyectos de electrónica y robótica. Acompáñanos en este fascinante viaje a través de la tecnología del color con Arduino.

En este tutorial de Arduino, aprenderemos cómo detectar colores usando Arduino y el sensor de color TCS230/TCS3200. Para obtener más detalles, vea el vídeo a continuación o el tutorial escrito a continuación.

Cómo funciona el sensor de color TCS230/TCS3200

El TCS230 detecta luz de color utilizando una matriz de fotodiodos de 8 x 8. Las mediciones de los fotodiodos se convierten luego en una onda cuadrada con una frecuencia directamente proporcional a la intensidad de la luz mediante un convertidor de corriente-frecuencia. Finalmente, usando la placa Arduino, podemos leer la salida de onda cuadrada y obtener los resultados del color.

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

Si>

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

Se>

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

El>

Ahora podemos seguir adelante y conectar el sensor TCS230 a la placa Arduino. Aquí están los esquemas.

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

Puede>

  • Sensor de color TCS230 TCS3200……. Amazon / Banggood / AliExpress
  • Placa Arduino……………………………… Amazon / Banggood / AliExpress
  • Cables de puente y placa de pruebas………… Amazon / Banggood / AliExpress

Divulgación: estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.

Código fuente del 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 de configuración necesitamos definir los cuatro pines de control como salidas y la salida del sensor como entrada de Arduino. Aquí también necesitamos configurar la escala de frecuencia, para este ejemplo la configuraré en 20% e iniciaré la comunicación en serie para mostrar los resultados en el monitor en serie.

En la sección del bucle comenzamos leyendo los fotodiodos filtrados rojos. Para hacer esto, configuramos los dos pines de control S2 y S3 en un nivel lógico bajo. Luego usamos la función «pulseIn()» para leer la frecuencia de salida y ponerla en la variable «frecuencia». Usando la función Serial.print() imprimimos el resultado en el monitor serie. El mismo procedimiento aplica para los otros dos colores, solo necesitamos ajustar los pines de control para el color correspondiente.

/*     Arduino Color Sensing Tutorial
 *      
 *  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);
  
  // Setting frequency-scaling to 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);
}

void loop() {
  // Setting red filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Green filtered photodiodes to be read
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Blue filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}Code language: Arduino (arduino)

Ahora, si ejecutamos el monitor serie obtendremos algunos valores. Estos valores dependen de la escala de frecuencia seleccionada y de la iluminación ambiental.

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

Tenga>

Ahora echemos un vistazo a cómo reaccionan los valores cuando colocamos diferentes colores frente al sensor. Por ejemplo, si llevamos el color rojo, el valor inicial baja, en mi caso de unos 70 a unos 25.

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

Ahora>

//Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,70,255,0);

El valor 70 se asigna a 0 y el valor 25 a 255. El mismo procedimiento se aplica a los otros dos colores.

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

/*     Arduino Color Sensing Tutorial
 *      
 *  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);
  
  // Setting frequency-scaling to 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);
}

void loop() {
  // Setting red filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,72,255,0);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Green filtered photodiodes to be read
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 30,90,255,0);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(100);

  // Setting Blue filtered photodiodes to be read
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,70,255,0);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}Code language: Arduino (arduino)

Tenga en cuenta que los colores no son particularmente precisos, pero aún así son lo suficientemente buenos para proyectos simples. Como otro ejemplo del sensor de color TCS230, en mi próximo vídeo aprenderemos a construir una máquina clasificadora automática de colores con Arduino.

Tutorial del sensor de color Arduino - Sensor de color TCS230 TCS3200

No>

Categorías tutoriales de arduino
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Tutorial del sensor de color Arduino – Sensor de color TCS230 TCS3200

En este tutorial de Arduino aprenderemos cómo detectar colores utilizando Arduino y el Sensor de Color TCS230/TCS3200. Puedes ver el siguiente video o leer el tutorial escrito a continuación para obtener más detalles.

Cómo funciona el Sensor de Color TCS230/TCS3200

El TCS230 detecta la luz de color con la ayuda de una matriz de fotodiodos de 8 x 8. Luego, utilizando 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, utilizando la placa Arduino, podemos leer la salida de la onda cuadrada y obtener los resultados para el color.

Si observamos de cerca el sensor, podemos ver cómo detecta varios colores. Los fotodiodos tienen tres filtros de colores diferentes. Dieciséis de ellos tienen filtros rojos, otros dieciséis tienen filtros verdes, otros dieciséis tienen filtros azules y los otros dieciséis fotodiodos son transparentes sin filtros.

Cada 16 fotodiodos están conectados en paralelo, por lo que usando los dos pines de control S2 y S3 podemos seleccionar cuáles de ellos se leerán. Por lo tanto, por ejemplo, si queremos detectar el color rojo, simplemente podemos usar los 16 fotodiodos con filtro rojo configurando los dos pines a un nivel lógico bajo según la tabla.

El sensor tiene dos pines de control más, S0 y S1, que se utilizan para escalar la frecuencia de salida. La frecuencia se puede escalar a tres valores preestablecidos diferentes del 100 %, 20 % o 2 %.

Esta función de escalado de frecuencia permite que la salida del sensor se optimice para varios contadores de frecuencia o microcontroladores.

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

Puedes obtener los componentes necesarios para este tutorial de Arduino en los siguientes enlaces:

  • Sensor de Color TCS230/TCS3200… Amazon / Banggood / AliExpress
  • Placa Arduino… Amazon / Banggood / AliExpress
  • Protoboard y cables puente… Amazon / Banggood / AliExpress

Nota: Estos son enlaces de afiliados. Como Afiliado de Amazon, gano dinero con compras calificadas.

Código Fuente del 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 de configuración, 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 configuraré en un 20 %, y comenzar la comunicación serial para mostrar los resultados en el Monitor Serie.

En la sección del bucle, comenzaremos con la lectura de los fotodiodos filtrados en rojo. Para ese propósito, configuraremos los dos pines de control S2 y S3 a un nivel lógico bajo. Luego, utilizando la función «pulseIn()» leeremos la frecuencia de salida y la pondremos en la variable «frecuencia». Utilizando la función Serial.print(), imprimiré el resultado en el monitor serie. El mismo procedimiento se aplica a los otros dos colores, solo necesitamos ajustar los pines de control para el color apropiado.

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

Nota que los tres valores difieren debido a la sensibilidad diferente de cada tipo de fotodiodo, como se ve en el diagrama de responsividad espectral del fotodiodo en la hoja de datos del sensor.

No obstante, veamos cómo reaccionan los valores cuando acerquemos diferentes colores al sensor. Así que por ejemplo, si acercamos el color rojo, el valor inicial bajará, en mi caso de alrededor de 70 a alrededor de 25.

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

Código Fuente Final para este ejemplo:

// Se omite para mantener la longitud del texto

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

No dude en hacer cualquier pregunta en la sección de comentarios a continuación y no olvide visitar mi colección de Proyectos de Arduino.

4 comentarios en «Tutorial del sensor de color Arduino – Sensor de color TCS230 TCS3200»

Deja un comentario