¿Alguna vez has querido experimentar con el sensor de color TCS230/TCS3200 y Arduino pero no sabes por dónde empezar? ¡No te preocupes! En este artículo te proporcionaremos todas las instrucciones necesarias para que puedas comenzar a trabajar con este fascinante dispositivo. Descubrirás cómo conectarlo a tu placa Arduino y cómo programarla para obtener lecturas precisas de color. ¡No te lo pierdas!
Esta publicación le mostrará cómo usar Arduino para reconocer colores. TCS230/Sensor de color TCS3200.
El sensor de color TCS3200 puede detectar una variedad de colores según su longitud de onda. Este sensor es particularmente útil para proyectos de reconocimiento de colores, como igualación de colores, clasificación de colores, lectura de tiras reactivas y mucho más.
introducción
El sensor de color TCS3200 (que se muestra a continuación) utiliza un chip sensor TAOS TCS3200 RGB para el reconocimiento de colores. También contiene cuatro LED blancos que iluminan el objeto que tiene delante.
Especificaciones
Aquí están las especificaciones del sensor:
- Potencia: 2,7 V a 5,5 V
- Tamaño: 28,4 x 28,4 mm (1,12 x 1,12 pulgadas)
- Interfaz: TTL digital
- Conversión de alta resolución de intensidad de luz en frecuencia.
- Color programable y frecuencia de salida completa
- Se comunica directamente con el microcontrolador.
¿Donde comprar?
tu puedes el TCS3200 o un sensor de color TCS230 En Asesor de creadores y encuentra el mejor precio.
¿Cómo funciona el sensor TCS3200?
El TCS3200 presenta una gama de fotodiodos con 4 filtros diferentes. Un fotodiodo es simplemente un dispositivo semiconductor que convierte la luz en electricidad. Las características del sensor:
- 16 fotodiodos con filtro rojo – sensibles a la longitud de onda roja
- 16 fotodiodos con filtro verde – sensibles a la longitud de onda verde
- 16 fotodiodos con filtro azul – sensibles a la longitud de onda azul
- 16 fotodiodos sin filtros
Si miras de cerca el chip TCS3200, puedes ver los diferentes filtros.
Al elegir selectivamente las lecturas del filtro de fotodiodo, puede ver la intensidad de diferentes colores. El sensor tiene un convertidor de corriente-frecuencia que convierte las lecturas de los fotodiodos en una onda cuadrada con una frecuencia proporcional a la intensidad de la luz del color seleccionado. Luego, el Arduino lee esta frecuencia; esto se muestra en la siguiente figura.
Configuración de pines
Aquí está el pinout del sensor:
Nombre del pin | E/S | Descripción |
masa (4) | Tierra de la fuente de alimentación | |
Equipo original (3) | I | Habilitar para frecuencia de salida (Activo Bajo) |
APAGADO (6) | oh | Frecuencia de salida |
S0, S1 (1, 2) | I | Entradas de selección para escalar la frecuencia de salida. |
T2, T3 (7, 8) | I | Entradas para seleccionar el tipo de fotodiodo. |
VDD (5) | Fuente de alimentación |
Selección de filtro
Para seleccionar el color leído por el fotodiodo, utilice los pines de control S2 y S3. Dado que los fotodiodos están conectados en paralelo, puede seleccionar diferentes fotodiodos configurando S2 y S3 en BAJO y ALTO en diferentes combinaciones. Consulte la siguiente tabla:
Tipo de fotodiodo | temporada 2 | T3 |
Rojo | BAJO | BAJO |
Azul | BAJO | ALTO |
Sin filtro (eliminar) | ALTO | BAJO |
Verde | ALTO | ALTO |
Escalado de frecuencia
Los pines S0 y S1 se utilizan para escalar la frecuencia de salida. Se puede escalar a los siguientes valores preestablecidos: 100%, 20% o 2%. El escalado de frecuencia de salida es útil para optimizar los valores del sensor para diferentes contadores de frecuencia o microcontroladores. Eche un vistazo a la siguiente tabla:
Escalado de la frecuencia de salida | S0 | temporada 1 |
Fallo de alimentación | METRO | METRO |
2% | METRO | h |
20% | h | METRO |
100% | h | h |
Con Arduino es común utilizar un escalado de frecuencia del 20%. Entonces configura el pin S0 en ALTO y el pin S1 en BAJO.
Reconocimiento de color con Arduino y TCSP3200
En este ejemplo, detectará colores utilizando Arduino y el sensor de color TCSP3200. Este sensor no es muy preciso, pero es bueno para la detección de color en proyectos sencillos.
Piezas requeridas
Aquí están las piezas necesarias para este proyecto:
- Sensor de color TCSP3200 o TCS230
- Arduino UNO – leer Los mejores kits de inicio de Arduino
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Esquema
Cablear el sensor TCSP3200 a su Arduino es bastante sencillo. Simplemente siga el siguiente diagrama de circuito.
Aquí están las conexiones entre el TCSP3200 y el Arduino:
- S0: pin digital 4
- temporada 1: pin digital 5
- VCC: 5V
- T3: pin digital 6
- Temporada 4: pin digital 7
- FUERA DE: pin digital 8
código
Para este proyecto necesitarás dos bocetos:
- Lectura y visualización de la frecuencia de salida en el monitor serie.. En esta parte tienes que anotar los valores de frecuencia cuando sostienes diferentes colores frente al sensor.
- Distinguir entre diferentes colores.. En esta sección insertarás los valores de frecuencia previamente seleccionados en tu código para que tu sensor pueda distinguir entre diferentes colores. Reconocemos los colores rojo, verde y azul.
1. Lectura de la frecuencia de salida
Sube el siguiente código a tu placa Arduino.
/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/
// TCS230 or TCS3200 pins wiring to Arduino
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8
// Stores frequency read by the photodiodes
int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;
void setup() {
// Setting the outputs
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
// Setting the sensorOut as an input
pinMode(sensorOut, INPUT);
// Setting frequency scaling to 20%
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
// Begins serial communication
Serial.begin(9600);
}
void loop() {
// Setting RED (R) filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
// Reading the output frequency
redFrequency = pulseIn(sensorOut, LOW);
// Printing the RED (R) value
Serial.print("R = ");
Serial.print(redFrequency);
delay(100);
// Setting GREEN (G) filtered photodiodes to be read
digitalWrite(S2,HIGH);
digitalWrite(S3,HIGH);
// Reading the output frequency
greenFrequency = pulseIn(sensorOut, LOW);
// Printing the GREEN (G) value
Serial.print(" G = ");
Serial.print(greenFrequency);
delay(100);
// Setting BLUE (B) filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,HIGH);
// Reading the output frequency
blueFrequency = pulseIn(sensorOut, LOW);
// Printing the BLUE (B) value
Serial.print(" B = ");
Serial.println(blueFrequency);
delay(100);
}
Abra el monitor serie con una velocidad de 9600 baudios.
Coloque un objeto azul a diferentes distancias frente al sensor. Debes guardar dos mediciones: cuando el objeto está lejos del sensor y cuando el objeto está cerca del sensor.
Verifique los valores que se muestran en el monitor serial. La frecuencia azul (B) debe ser la más baja en comparación con los valores de frecuencia rojo (R) y verde (G); consulte la imagen a continuación.
Cuando colocamos el objeto azul frente al sensor, los valores de frecuencia azul (B) oscilan entre 59 Y 223 (ver valores resaltados).
Nota: No puede utilizar estos valores de frecuencia (59 y 223) en su código. Debes medir los colores de tu objeto específico utilizando tu propio sensor de color. Luego guarde sus límites de frecuencia superior e inferior para el color azul, ya que los necesitará más adelante.
Repita este proceso con objetos verdes y rojos, observando los límites de frecuencia superior e inferior para cada color.
2. Distinguir entre diferentes colores
El siguiente boceto asigna los valores de frecuencia a valores RGB (entre 0 y 255).
En el paso anterior, con el azul al máximo obtuvimos una frecuencia de 59, y con el azul a mayor distancia obtuvimos 223.
Así, 59 corresponde en frecuencia a 255 (en RGB) y 223 en frecuencia corresponde a 0 (en RGB). Esto lo hacemos con el Arduino. Mapa() Función. En el Mapa() función necesita reemplazar XX parámetros con sus propios valores.
/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/
// TCS230 or TCS3200 pins wiring to Arduino
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8
// Stores frequency read by the photodiodes
int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;
// Stores the red. green and blue colors
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
void setup() {
// Setting the outputs
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
// Setting the sensorOut as an input
pinMode(sensorOut, INPUT);
// Setting frequency scaling to 20%
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
// Begins serial communication
Serial.begin(9600);
}
void loop() {
// Setting RED (R) filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
// Reading the output frequency
redFrequency = pulseIn(sensorOut, LOW);
// Remaping the value of the RED (R) frequency from 0 to 255
// You must replace with your own values. Here's an example:
// redColor = map(redFrequency, 70, 120, 255,0);
redColor = map(redFrequency, XX, XX, 255,0);
// Printing the RED (R) value
Serial.print("R = ");
Serial.print(redColor);
delay(100);
// Setting GREEN (G) filtered photodiodes to be read
digitalWrite(S2,HIGH);
digitalWrite(S3,HIGH);
// Reading the output frequency
greenFrequency = pulseIn(sensorOut, LOW);
// Remaping the value of the GREEN (G) frequency from 0 to 255
// You must replace with your own values. Here's an example:
// greenColor = map(greenFrequency, 100, 199, 255, 0);
greenColor = map(greenFrequency, XX, XX, 255, 0);
// Printing the GREEN (G) value
Serial.print(" G = ");
Serial.print(greenColor);
delay(100);
// Setting BLUE (B) filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,HIGH);
// Reading the output frequency
blueFrequency = pulseIn(sensorOut, LOW);
// Remaping the value of the BLUE (B) frequency from 0 to 255
// You must replace with your own values. Here's an example:
// blueColor = map(blueFrequency, 38, 84, 255, 0);
blueColor = map(blueFrequency, XX, XX, 255, 0);
// Printing the BLUE (B) value
Serial.print(" B = ");
Serial.print(blueColor);
delay(100);
// Checks the current detected color and prints
// a message in the serial monitor
if(redColor > greenColor && redColor > blueColor){
Serial.println(" - RED detected!");
}
if(greenColor > redColor && greenColor > blueColor){
Serial.println(" - GREEN detected!");
}
if(blueColor > redColor && blueColor > greenColor){
Serial.println(" - BLUE detected!");
}
}
Para distinguir entre diferentes colores se deben cumplir tres condiciones:
- Cuando R alcanza el valor máximo (en parámetros RGB), sabemos que tenemos un objeto rojo.
- Si G es el valor máximo, sabemos que tenemos un objeto verde.
- Si B es el valor máximo, sabemos que tenemos un objeto azul.
Ahora coloque algo delante del sensor. Debería imprimir el color detectado en su monitor serie: rojo, verde o azul.
Consejo: Con declaraciones if adicionales, su sensor también puede reconocer otros colores.
Envolver
En esta publicación, aprendió a reconocer colores con el sensor de color TCSP3200.
Puede construir fácilmente una máquina clasificadora de colores simplemente agregando un servomotor.
¿Tiene ideas de proyectos sobre clasificación de colores?
Háganos saber publicando un comentario a continuación.
Si te gusta esta publicación, probablemente también te gustarán estas publicaciones:
- 21 módulos Arduino que puedes comprar por menos de $2
- Instrucciones para el Módulo de Reloj en Tiempo Real (RTC) con Arduino (DS1307 y DS3231)
- Instrucciones para pantalla OLED de 0,96 pulgadas con Arduino
- 20 guías gratuitas para módulos y sensores Arduino
- Instrucciones para el sensor de humedad y temperatura DHT11/DHT22 con Arduino
Gracias por leer,
rui y sara
Instrucciones para el sensor de color TCS230/TCS3200 con Arduino
En este post aprenderás cómo detectar colores con Arduino utilizando el sensor de color TCS230/TCS3200.
Introducción
El sensor de color TCS3200 puede detectar una amplia variedad de colores en base a su longitud de onda. Este sensor es particularmente útil para proyectos de reconocimiento de color como emparejamiento de colores, clasificación de colores, lectura de tiras de prueba, entre otros.
Especificaciones
Algunas especificaciones del sensor son:
- Potencia: 2.7V a 5.5V
- Tamaño: 28.4 x 28.4mm
- Interfaz: TTL digital
- Conversión de alta resolución de la intensidad de luz a frecuencia
- Frecuencia de salida y color programables
- Comunicación directa con un microcontrolador
¿Dónde comprarlo?
Puedes revisar el TCS3200 o un sensor de color TCS230 en Maker Advisor y encontrar el mejor precio.
¿Cómo funciona el sensor TCS3200?
El TCS3200 tiene una matriz de fotodiodos con 4 filtros diferentes. Los fotodiodos convierten la luz en corriente. El sensor cuenta con fotodiodos sensibles a rojo, verde, azul y sin filtro, lo que permite detectar la intensidad de los diferentes colores.
¿Cómo usar el sensor con Arduino?
Para utilizar el sensor con Arduino, es necesario realizar conexiones según el esquemático proporcionado. También se requiere cargar el código necesario para leer y diferenciar entre los colores detectados. Este proceso implica medir las frecuencias para los colores rojo, verde y azul, y luego mapear esos valores a valores RGB utilizando Arduino.
Conclusión
Este post te ha enseñado cómo utilizar el sensor de color TCS3200 con Arduino para detectar colores. Con este conocimiento, puedes construir una máquina de clasificación de colores o explorar otros proyectos relacionados con el reconocimiento de colores.
Si te gustó este post, también podrías estar interesado en estos artículos:
- 21 Módulos de Arduino que puedes comprar por menos de $2
- Guía para Módulo de Reloj en Tiempo Real (RTC) con Arduino (DS1307 y DS3231)
- Guía para Pantalla OLED de 0.96 pulgadas con Arduino
- 20 Guías gratuitas para Módulos y Sensores de Arduino
- Guía para Sensor de Humedad y Temperatura DHT11/DHT22 con Arduino
¡Gracias por leer!
Me encantó cómo detallaste paso a paso cómo utilizar el sensor de color TCS230/TCS3200 con Arduino. ¡Muy fácil de seguir! ¡Gracias!
Wow, qué genial que hayan compartido estas instrucciones. ¡Definitivamente voy a probarlo en mi siguiente proyecto! ¡Gracias por la ayuda!
Me fascinó lo fácil que hiciste parecer el uso del sensor de color TCS230/TCS3200 con Arduino. ¡Voy a probarlo en mi próximo proyecto! ¡Gracias por la guía!
¡Qué buen tutorial! Gracias por explicar de manera clara y sencilla cómo utilizar el sensor de color TCS230/TCS3200 con Arduino. ¡Definitivamente lo aplicaré en mis próximos proyectos! ¡Gran aporte!
Gracias por compartir esto, muy útil para mis proyectos con Arduino. ¡Excelente explicación!