12
Sensor de Color TC3200 by Leandro | Novedades , Sensores | 0 comments 3 Shares 2 1 DESCRIPCIÓN Este sensor esta basado en el TCS3200. Es un convertidor de luz a frecuencia programable, puede filtrar los datos RGB de la fuente de luz y convertirlo en una onda cuadrada (duty cycle 50%) con frecuencia directamente proporcional a la intensidad de luz (irradiacion). La escala de frecuencia de salida se puede manejar mediante los dos pines S0 y S1 (Selectable Options 2%, 20%, 100% frequency). Los pines S2, S3 controlan el filtro rgb. Todos los pines digitales I/O se pueden conectar directamente al micro ya que trabajan en el mismo voltaje. Output enable (OE) coloca la salida en estado de alta impedancia para el intercambio de unidades múltiples de una línea de entrada del microcontrolador. Por último, el usuario puede calcular el color de la luz por los valores RGB.

Sensor de Color TC3200

Embed Size (px)

DESCRIPTION

TC3200

Citation preview

Sensor de Color TC3200byLeandro|Novedades,Sensores|0 comments3Shares 2

1

DESCRIPCINEste sensor esta basado en el TCS3200. Es un convertidor de luz a frecuencia programable, puede filtrar los datos RGB de la fuente de luz y convertirlo en una onda cuadrada (duty cycle 50%) con frecuencia directamente proporcional a la intensidad de luz (irradiacion). La escala de frecuencia de salida se puede manejar mediante los dos pines S0 y S1 (Selectable Options 2%, 20%, 100% frequency). Los pines S2, S3 controlan el filtro rgb. Todos los pines digitales I/O se pueden conectar directamente al micro ya que trabajan en el mismo voltaje.Output enable (OE) coloca la salida en estado de alta impedancia para el intercambio de unidades mltiples de una lnea de entrada del microcontrolador. Por ltimo, el usuario puede calcular el color de la luz por los valores RGB.

CARACTERSTICAS TCNICAS High-Resolution Conversion of LightIntensity to Frequency Programmable Color and Full-Scale OutputFrequency Communicates Directly With a Microcontroller Single-Supply Operation (2.7 V to 5.5 V) Power Down Feature Nonlinearity Error Typically 0.2% at 50 kHz Stable 200 ppm/C Temperature Coefficient Low-Profile Surface-Mount PackageCONEXIONADO

CDIGO DE PROGRAMACINEn primer lugar tenemos que descargar libreria haciendo click aqui.#include

#define OUT 8#define S2 9#define S3 10#define S0 11#define S1 12#define OE 13

#define Filters_R 0#define Filters_G 1#define Filters_B 2

int Count[3] = {0};int G_flag = 1;

void setup(){ TCS230_init(); Select_Filters(3); //default, no fiter Timer1.initialize(); // default 1S Timer1.attachInterrupt(callback); Serial.begin(9600);}

void TCS230_init(){ pinMode(OUT, INPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(OE, OUTPUT); digitalWrite(S0, LOW); // 2% of Output Frequence digitalWrite(S1, HIGH); digitalWrite(OE, LOW);}

void Select_Filters(int RGB){ switch(RGB) { case Filters_R: //Red digitalWrite(S2, LOW); digitalWrite(S3, LOW); Serial.println("-----select Red color"); break; case Filters_G: //Green digitalWrite(S2, HIGH); digitalWrite(S3, HIGH); Serial.println("-----select Green color"); break; case Filters_B: //Blue digitalWrite(S2, LOW); digitalWrite(S3, HIGH); Serial.println("-----select Blue color"); break; default: //Clear(no filter) digitalWrite(S2, HIGH); digitalWrite(S3, LOW); Serial.println("-----no filter"); break; }}

void Measure_Count(int RGB ) //For white balance correction{ int tmp = 0; while(1) { if(digitalRead(OUT) == 1) { if(G_flag == 0) { Count[RGB] = tmp; Serial.print("tmp="); Serial.println(tmp); break; } tmp++; } }}

void callback(){ G_flag = 0;}

void loop(){ Timer1.restart(); for(int i=0; i