Cómo conectar sensor de color TCS230 Arduino

El sensor de color Arduino TCS230 es capaz de reconocer 4 colores y convierte la intensidad del espectro de color en una señal de diferentes frecuencias. Vamos a ver el dispositivo del sensor de color rgb, el diagrama de conexión a Arduino Uno y presentar algunos bocetos con ejemplos del uso del sensor de color y la salida de la información del espectro de color (color del objeto) al puerto serie del Arduino IDE y con LEDs.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • módulo sensor de color TCS230;
  • LEDs y resistencias de 220 Ohm;
  • protoboard;
  • cables de conexion.

Módulo de sensor de color TCS230 Arduino

En la paleta de colores RGB, cualquier color puede representarse como una combinación de los tres colores primarios: rojo (R), verde (G) y azul (B). Por lo tanto, es necesario medir el espectro rojo, azul y verde para determinar el color. El sensor utilizado es el tcs230, que consta de una matriz de fotodiodos de 8×8: 16 fotodiodos para tres colores y 16 fotodiodos sin filtro. La tensión de alimentación del módulo tcs230 es de 2,7 a 5,5 voltios.

Sensor de color TCS230 Arduino pinout, datasheet
Sensor de color TCS230 Arduino pinout, datasheet

Características módulo sensor de color TCS230:

  • Alimentación: de 2.7 a 5.5V
  • Conversión de alta resolución de Luz a frecuencia
  • Modo de bajo consumo de energía
  • Leds incluidos en el PCB para iluminar el objeto a reconocer
  • Se puede comunicar con el micro controlador con solamente un pin

El sensor sirve para detectar el color de un objeto a una distancia máxima de 10 mm. Está equipado con cuatro diodos emisores de luz (LED) que iluminan el lugar de medición. En la parte posterior del sensor hay almohadillas con contactos. El sensor TCS230 se conecta al Arduino a través de estos contactos. Los contactos «S0» y «S1» se utilizan para escalar la frecuencia de impulsos en la salida «OUT» del módulo sensor de color tcs230.

Conectar sensor de color TCS230 Arduino

Conexión módulo sensor de color tcs230 Arduino
Conexión módulo sensor de color tcs230 Arduino

La calibración del sensor tcs230 Arduino debe realizarse con buena luz y a la misma distancia del sujeto. Si cambia la luz ambiental o la distancia al sujeto, se pueden desactivar todos los ajustes. Tenga en cuenta que el sensor detecta fácilmente el rojo, pero no distingue bien el azul y el verde. Para enviar la información al puerto serie de Arduino IDE, monta el circuito y carga el programa en la microcontrolador Arduino.

Programa Arduino para sensor de color TCS230

#define s2  2
#define s3  3
#define out 4

byte red = 0;
byte green = 0;
byte blue = 0;

void setup() {
 Serial.begin(9600);
 
 pinMode(s2, OUTPUT);
 pinMode(s3, OUTPUT);
 pinMode(out, INPUT);
} 
 
void loop() { 
 color();

 Serial.print(" RED: " + String(red));
 Serial.print(" GREEN: " + String(green));
 Serial.println(" BLUE: " + String(blue));
 
 delay(500);
}
 
void color() {
 digitalWrite(s2, LOW);
 digitalWrite(s3, LOW);
 red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 digitalWrite(s3, HIGH);
 blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 digitalWrite(s2, HIGH);
 green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}

Explicación del código para módulo TCS230 Arduino:

  1. el procedimiento void color() se utiliza para consultar el sensor de color;
  2. en el procedimiento void loop() los datos recibidos se emiten por el puerto serie.

Reconocer colores con el módulo TCS230 Arduino

Reconocer colores con el módulo TCS230 Arduino
Reconocer colores con el módulo TCS230 Arduino

Cuando arranquemos el programa para reconocer colores con el módulo tcs30 y abramos el puerto serie, veremos los valores para cada uno de los tres colores y el mensaje indicando qué color se ha seleccionado, cuando llevemos la muestra al sensor. Hay que tener en cuenta que si el mensaje de color no se corresponde con el color real, es necesario modificar los valores de frecuencia en el programa, ajustándolos a los valores RGB.

Programa Arduino para sensor de colores con TCS230

#define s2  2
#define s3  3
#define out 4

byte red = 0;
byte green = 0;
byte blue = 0;

void setup() {
 Serial.begin(9600);
 
 pinMode(10, OUTPUT);
 pinMode(11, OUTPUT);
 pinMode(12, OUTPUT);
 
 pinMode(s2, OUTPUT);
 pinMode(s3, OUTPUT);
 pinMode(out, INPUT);
} 
 
void loop() { 
 color();

 Serial.print(" RED: " + String(red));
 Serial.print(" GREEN: " + String(green));
 Serial.println(" BLUE: " + String(blue));

 if(red > 60 && blue > 90 && green > 90) {
   Serial.println("RED COLOR");
   digitalWrite(10, HIGH);
   digitalWrite(11, LOW);
   digitalWrite(12, LOW);
   }

 if(red > 60 && blue > 90 && green > 90) {
   Serial.println("GREEN COLOR");
   digitalWrite(10, LOW);
   digitalWrite(11, HIGH);
   digitalWrite(12, LOW);
   }

 if(red > 60 && blue > 90 && green > 90) {
   Serial.println("BLUE COLOR");
   digitalWrite(10, LOW);
   digitalWrite(11, LOW);
   digitalWrite(12, HIGH);
   }
 
 delay(500);
}
 
void color() {
 digitalWrite(s2, LOW);
 digitalWrite(s3, LOW);
 red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 digitalWrite(s3, HIGH);
 blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 digitalWrite(s2, HIGH);
 green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}

Explicación del código para sensor de colores Arduino TCS230:

  1. según el color del objeto, se enciende un LED determinado;
  2. utilizando sentencias if adicionales en el programa del sensor de color, puede especificar más de tres colores a ajustar.

Conclusión. La clasificación por colores tiene muchas aplicaciones en la vida real, y creemos que es muy útil cuando puede hacerse con una solución barata como la plataforma Arduino. El módulo sensor de color TCS2300 será útil en proyectos en los que sea necesario el reconocimiento del color, por ejemplo, para la correspondencia de tintes, la clasificación por colores, la detección del color de las tiras reactivas, etc.


Deja una respuesta

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