SENSOR DE COLOR TCS230
DESCRIPCIÓN:
PROGRAMA:
// Programa para el funcionamiento del sensor TCS230
// Para detectar los colores básicos de un led RGB
//DESARROLLO
//Declaramos pines de conexión
const int s0 = 8;
const int s1 = 9;
const int s2 = 12;
const int s3 = 11;
const int out = 10;
//Decalramos lo pines para los leds
int pinoledverm = 2;
int pinoledverd = 3;
int pinoledazul = 4;
//Variables inicializadas en cero con los colores del RGB
int red = 0;
int green = 0;
int blue = 0;
void setup()
{
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
pinMode(pinoledverm, OUTPUT);
pinMode(pinoledverd, OUTPUT);
pinMode(pinoledazul, OUTPUT);
Serial.begin(9600);
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
}
void loop()
{
color();
Serial.print("Vermelho :");
Serial.print(red, DEC);
Serial.print(" Verde : ");
Serial.print(green, DEC);
Serial.print(" Azul : ");
Serial.print(blue, DEC);
Serial.println();
//Verifica el color rojo
if (red < blue && red < green && red > 50)
{
Serial.println("Vermelho");
digitalWrite(pinoledverm, HIGH);
//Acende o led verde
digitalWrite(pinoledverd, LOW);
digitalWrite(pinoledazul, LOW);
}
//Verifica el color azul
else if (blue < red && blue < green)
{
Serial.println("Azul");
digitalWrite(pinoledverm, LOW);
digitalWrite(pinoledverd, LOW);
digitalWrite(pinoledazul, HIGH);
//Acende o led azul
}
//Verifica el color verde
else if (green < red && green < blue)
{
Serial.println("Verde");
//enciende el led rojo
digitalWrite(pinoledverm, LOW);
//Enciende el led verde
digitalWrite(pinoledverd, HIGH);
//Enciende el led azul
digitalWrite(pinoledazul, LOW);
}
Serial.println();
//Aguarda 2 segundos, apaga los leds y reinicia el proceso
delay(2000);
digitalWrite(pinoledverm, LOW);
digitalWrite(pinoledverd, LOW);
digitalWrite(pinoledazul, LOW);
}
void color()
{
//Rutina de valores para mostrar el color
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
//count OUT, pRed, RED
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s3, HIGH);
//count OUT, pBLUE, BLUE
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s2, HIGH);
//count OUT, pGreen, GREEN
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}
BIBLIOGRAFÍA
Web Grafía
DESCRIPCIÓN:
El sensor de color con integrado TCS230 puede filtrar los datos RGB
de la fuente de luz y la convierten en una onda cuadrada (50% ciclo de
trabajo) con una frecuencia directamente proporcional a la intensidad de
la luz de radiación. La frecuencia de salida se puede escalar por uno
de los tres valores preestablecidos a través de dos pines de control de
entrada SO y SI, con opciones seleccionables del 2%, 20% y 100% de
frecuencia; los pines S2 y S3 sirven para controlar el filtro de RGB.
Los pines de entradas y salida permiten ser conectados directamente a un microcontrolador o circuito lógico.
CARACTERISTICAS:
- Escala la frecuencia de salida.
- Opera desde una sola fuente de alimentación de 2.7 a 5.5V.Pin de apagado de funciones.
- Error no lineal de 0.2% a 50 kHz.
- Alta resolución de conversión dela intensidad de luz a frecuencia.
- Módo de bajo consumo de energía.
- Leds incluidos en el PCB para iluminar el objeto a reconocer.
- Se comunica directamente con un microcontrolador (PIC, Arduino, etc.
- Arduino
- Un Protoboard
- Un led RGB
- Sensor de Color TCS230
- Cables
- 3 Resistencias de 230 Ohm
PROGRAMA:
// Programa para el funcionamiento del sensor TCS230
// Para detectar los colores básicos de un led RGB
//DESARROLLO
//Declaramos pines de conexión
const int s0 = 8;
const int s1 = 9;
const int s2 = 12;
const int s3 = 11;
const int out = 10;
//Decalramos lo pines para los leds
int pinoledverm = 2;
int pinoledverd = 3;
int pinoledazul = 4;
//Variables inicializadas en cero con los colores del RGB
int red = 0;
int green = 0;
int blue = 0;
void setup()
{
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
pinMode(pinoledverm, OUTPUT);
pinMode(pinoledverd, OUTPUT);
pinMode(pinoledazul, OUTPUT);
Serial.begin(9600);
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
}
void loop()
{
color();
Serial.print("Vermelho :");
Serial.print(red, DEC);
Serial.print(" Verde : ");
Serial.print(green, DEC);
Serial.print(" Azul : ");
Serial.print(blue, DEC);
Serial.println();
//Verifica el color rojo
if (red < blue && red < green && red > 50)
{
Serial.println("Vermelho");
digitalWrite(pinoledverm, HIGH);
//Acende o led verde
digitalWrite(pinoledverd, LOW);
digitalWrite(pinoledazul, LOW);
}
//Verifica el color azul
else if (blue < red && blue < green)
{
Serial.println("Azul");
digitalWrite(pinoledverm, LOW);
digitalWrite(pinoledverd, LOW);
digitalWrite(pinoledazul, HIGH);
//Acende o led azul
}
//Verifica el color verde
else if (green < red && green < blue)
{
Serial.println("Verde");
//enciende el led rojo
digitalWrite(pinoledverm, LOW);
//Enciende el led verde
digitalWrite(pinoledverd, HIGH);
//Enciende el led azul
digitalWrite(pinoledazul, LOW);
}
Serial.println();
//Aguarda 2 segundos, apaga los leds y reinicia el proceso
delay(2000);
digitalWrite(pinoledverm, LOW);
digitalWrite(pinoledverd, LOW);
digitalWrite(pinoledazul, LOW);
}
void color()
{
//Rutina de valores para mostrar el color
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
//count OUT, pRed, RED
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s3, HIGH);
//count OUT, pBLUE, BLUE
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s2, HIGH);
//count OUT, pGreen, GREEN
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}
BIBLIOGRAFÍA
Web Grafía
Arduino, C. (2015). Sensor de Recohencimento de col TCS230. Recuperado de: http://www.arduinoecia.com.br/2014/02/sensor-de-reconhecimento-de-cor-tcs230.html {25/10/2015}