Proyecto 24: Sensor de color + LED RGB
Introducción:
En este proyecto utilizaremos un sensor de color y duplicaremos el color muestreado en el LED RGB.
Hardware a utilizar:
Placa Arduino
Sensor de color TCS230 TCS3200
LED RGB
3 Resistencias 330 ohms
Protoboard
Cables
Diagrama de conexiones:
Las conecciones para el módulo sensor de color son las siguientes:
Nota acerca de los sensores de color:En mi experiencia he visto que los sensores a veces no tienen el escudo de plástico negro que no permite que la luz de los LEDs iluminen directamente el sensor, cuando esto sucede el sensor solo ve el color BLANCO, el sensor debe leer la luz que rebota del objeto, no la luz directa de los LEDs, si tu módulo sensor de color no tiene el escudo negro debes improvisar uno.
Para mejorar el efrecto de color en el LED RGB utilicéuna pelota de Ping-Pong blanca como lámpara.
Así es como el módulo sensor de color funciona, haremos tres lecturas distintas una por cada color R Red G Green y B Blue, para que el módulo lea cada color es necesario mandar los voltajes de señal en distintos ordenes, como se aprecia en la siguiente tabla
Sketch de ejemplo:
/////
int redPin=11;
int bluePin=6;
int greenPin=10;
int S2=7;
int S3=8;
int outPin=4;
unsigned intpulseWidth;
intrColorStrenght;
intbColorStrenght;
intgColorStrenght;
void setup()
{
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(outPin, INPUT);
}
void loop()
{
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
pulseWidth = pulseIn(outPin, LOW);
rColorStrenght = (pulseWidth/400)-1;
rColorStrenght = (255- rColorStrenght);
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
pulseWidth = pulseIn(outPin, LOW);
gColorStrenght = (pulseWidth/400)-1;
gColorStrenght = (255- gColorStrenght);
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
pulseWidth = pulseIn(outPin, LOW);
bColorStrenght = (pulseWidth/400)-1;
bColorStrenght = (255- bColorStrenght);
if(rColorStrenght > gColorStrenght&& gColorStrenght > bColorStrenght)
{
rColorStrenght= 255;
gColorStrenght= gColorStrenght/2;
bColorStrenght= 0;
}
if(rColorStrenght > bColorStrenght&& bColorStrenght > gColorStrenght)
{
rColorStrenght= 255;
bColorStrenght= bColorStrenght/2;
gColorStrenght= 0;
}
if(gColorStrenght > rColorStrenght&& rColorStrenght > bColorStrenght)
{
gColorStrenght= 255;
rColorStrenght= rColorStrenght/2;
bColorStrenght= 0;
}
if(gColorStrenght > bColorStrenght&& bColorStrenght > rColorStrenght)
{
gColorStrenght= 255;
bColorStrenght= bColorStrenght/2;
rColorStrenght= 0;
}
if(bColorStrenght> rColorStrenght&& rColorStrenght > gColorStrenght)
{
bColorStrenght= 255;
rColorStrenght= rColorStrenght/2;
gColorStrenght= 0;
}
if(bColorStrenght > gColorStrenght&& gColorStrenght > rColorStrenght)
{
bColorStrenght= 255;
gColorStrenght= gColorStrenght/2;
rColorStrenght= 0;
}
analogWrite(redPin, rColorStrenght);
analogWrite(bluePin, bColorStrenght);
analogWrite(greenPin, gColorStrenght);
Serial.print(rColorStrenght);
Serial.print("," );
Serial.print(bColorStrenght);
Serial.print("," );
Serial.print(gColorStrenght);
Serial.print("," );
delay(500);
}
/////
Revisa y sube tu sketch a tu placa Arduino, acerca objetos de diferentes colores al sensor, observa como se genera un color aproximado en el LED RGB.
********************************************************************************
Problemas escribiendo el código? descarga los ejemplos desde mi carpeta compartida en Dropbox:
https://www.dropbox.com/sh/w5h38cdrynqdwhf/AABP7b9T3ADbO4KqiPm4pO-9a?dl=0
Introducción:
En este proyecto utilizaremos un sensor de color y duplicaremos el color muestreado en el LED RGB.
Hardware a utilizar:
Placa Arduino
Sensor de color TCS230 TCS3200
LED RGB
3 Resistencias 330 ohms
Protoboard
Cables
Diagrama de conexiones:
Las conecciones para el módulo sensor de color son las siguientes:
Nota acerca de los sensores de color:En mi experiencia he visto que los sensores a veces no tienen el escudo de plástico negro que no permite que la luz de los LEDs iluminen directamente el sensor, cuando esto sucede el sensor solo ve el color BLANCO, el sensor debe leer la luz que rebota del objeto, no la luz directa de los LEDs, si tu módulo sensor de color no tiene el escudo negro debes improvisar uno.
Para mejorar el efrecto de color en el LED RGB utilicéuna pelota de Ping-Pong blanca como lámpara.
Así es como el módulo sensor de color funciona, haremos tres lecturas distintas una por cada color R Red G Green y B Blue, para que el módulo lea cada color es necesario mandar los voltajes de señal en distintos ordenes, como se aprecia en la siguiente tabla
Sketch de ejemplo:
/////
int redPin=11;
int bluePin=6;
int greenPin=10;
int S2=7;
int S3=8;
int outPin=4;
unsigned intpulseWidth;
intrColorStrenght;
intbColorStrenght;
intgColorStrenght;
void setup()
{
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(outPin, INPUT);
}
void loop()
{
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
pulseWidth = pulseIn(outPin, LOW);
rColorStrenght = (pulseWidth/400)-1;
rColorStrenght = (255- rColorStrenght);
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
pulseWidth = pulseIn(outPin, LOW);
gColorStrenght = (pulseWidth/400)-1;
gColorStrenght = (255- gColorStrenght);
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
pulseWidth = pulseIn(outPin, LOW);
bColorStrenght = (pulseWidth/400)-1;
bColorStrenght = (255- bColorStrenght);
if(rColorStrenght > gColorStrenght&& gColorStrenght > bColorStrenght)
{
rColorStrenght= 255;
gColorStrenght= gColorStrenght/2;
bColorStrenght= 0;
}
if(rColorStrenght > bColorStrenght&& bColorStrenght > gColorStrenght)
{
rColorStrenght= 255;
bColorStrenght= bColorStrenght/2;
gColorStrenght= 0;
}
if(gColorStrenght > rColorStrenght&& rColorStrenght > bColorStrenght)
{
gColorStrenght= 255;
rColorStrenght= rColorStrenght/2;
bColorStrenght= 0;
}
if(gColorStrenght > bColorStrenght&& bColorStrenght > rColorStrenght)
{
gColorStrenght= 255;
bColorStrenght= bColorStrenght/2;
rColorStrenght= 0;
}
if(bColorStrenght> rColorStrenght&& rColorStrenght > gColorStrenght)
{
bColorStrenght= 255;
rColorStrenght= rColorStrenght/2;
gColorStrenght= 0;
}
if(bColorStrenght > gColorStrenght&& gColorStrenght > rColorStrenght)
{
bColorStrenght= 255;
gColorStrenght= gColorStrenght/2;
rColorStrenght= 0;
}
analogWrite(redPin, rColorStrenght);
analogWrite(bluePin, bColorStrenght);
analogWrite(greenPin, gColorStrenght);
Serial.print(rColorStrenght);
Serial.print("," );
Serial.print(bColorStrenght);
Serial.print("," );
Serial.print(gColorStrenght);
Serial.print("," );
delay(500);
}
/////
Revisa y sube tu sketch a tu placa Arduino, acerca objetos de diferentes colores al sensor, observa como se genera un color aproximado en el LED RGB.
********************************************************************************
Problemas escribiendo el código? descarga los ejemplos desde mi carpeta compartida en Dropbox:
https://www.dropbox.com/sh/w5h38cdrynqdwhf/AABP7b9T3ADbO4KqiPm4pO-9a?dl=0