سنسور رنگ مدل TCS230، فتودیودهای سیلیکونی قابل تنظیم را با یک مبدل جریان به فرکانس ترکیب کرده و آن را در یک مدار مجتمع CMOS به شکل یک ماژول یکپارچه ارائه می نماید. فرکانس خروجی full-scale این سنسور را می توان توسط یکی از سه مقدار از پیش تعیین شده از طریق پین های ورودی کنترلی، درجه بندی نمود. این سنسور شامل ورودی و خروجی دیجیتال است که امکان ارتباط مستقیم با برد آردوینو . یا سایر میکروکنترلرها و مدارات منطقی را فراهم می نماید.
خروجی این سنسور یک موج مربعی (50% duty cycle) می باشد و فرکانس آن مستقیماً با شدت (درخشندگی) نور متناسب است.
مشخصات:
- تراشه : TCS230
- ولتاژ عملیاتی: 3 ولت ~ 5 ولت
- بهترین محدوده تشخیص: 10 میلی متر
- تبدیل شدت نور به فرکانس با وضوح بسیار بالا
- ارتباط مستقیم با میکروکنترلر
- اندازه PCB: تقریباً. 1.2 در 0.95 اینچ
کاربرد:
نحوه عملکرد:
این سنسور، رنگ جسمی که در مقابل آن قرار دارد را تحلیل کرده و فرکانس هر یک از سه رنگ قرمز (R)، سبز(G) و آبی (B) موجود در آن را، به صورت عددی در محدوده 0 تا 255 اعلام می نماید.
شماتیک مدار:
مثال آردوینو:
کد:
/*
# Be name Khoda!
# Example code for the TCS230 Color sensor
# Company : AftabRayaneh
# Website : http://shop.aftabrayaneh.com
# Editor : Elham Rasekh
# Date : 31.08.2013
# Version : 2.0
# s0 -> digital pin 3
# s1 -> digital pin 4
# s2 -> digital pin 5
# s3 -> digital pin 6
# out-> digital pin 2
# OE -> digital pin GND
*/
int tcs_s0 = 3, tcs_s1 = 4, tcs_s2 = 5, tcs_s3 = 6;
int tcs_out = 2;
int flag = 0;
int my_timer = 0;
byte counter = 0;
byte countR = 0, countG = 0, countB = 0;
void setup()
{
Serial.begin(9600);
pinMode(tcs_s0,OUTPUT);
pinMode(tcs_s1,OUTPUT);
pinMode(tcs_s2,OUTPUT);
pinMode(tcs_s3,OUTPUT);
}
void TCS()
{
flag=0;
digitalWrite(tcs_s1,HIGH);
digitalWrite(tcs_s0,HIGH);
digitalWrite(tcs_s2,LOW);
digitalWrite(tcs_s3,LOW);
attachInterrupt(0, ISR_INTO, LOW);
timer0_init();
}
void ISR_INTO()
{
counter++;
}
void timer0_init(void)
{
TCCR2A=0x00;
TCCR2B=0x07; //the clock frequency source 1024 points
TCNT2= 10000; //10 ms overflow again
TIMSK2 = 0x01; //allow interrupt
}
int i=0;
ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function
{
if (my_timer > 100)
{
Serial.print("red=");
Serial.println(countR,DEC);
Serial.print("green=");
Serial.println(countG,DEC);
Serial.print("blue=");
Serial.println(countB,DEC);
Serial.println("\n");
my_timer=0;
}
my_timer++;
TCNT2=100;
flag++;
if(flag==1)
{
countR=counter;
digitalWrite(tcs_s2,HIGH);
digitalWrite(tcs_s3,HIGH);
}
else if(flag==2)
{
countG=counter;
digitalWrite(tcs_s2,LOW);
digitalWrite(tcs_s3,HIGH);
}
else if(flag==3)
{
countB=counter;
digitalWrite(tcs_s2,LOW);
digitalWrite(tcs_s3,LOW);
}
else if(flag==4)
{
flag=0;
}
counter=0;
}
void loop()
{
TCS();
while(1);
}
جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.