آردوینو Arduinoمطالب علمی
راه اندازی ماژول تشخیص رنگ TCS3200 با آردوینو
این ماژول یکی از بهترین ماژول های تشخیص رنگ بوده که از سنسور TCS3200 استفاده می کند. در واقع این ماژول یک مبدل رنگ به فرکانس می باشد. جهت تشخیص رنگ بایستی با میکروکنترلر فرکانس پین خروجی سنجیده شود.با توجه به اینکه خروجی ماژول از نوع فرکانس می باشد امکان راه اندازی با هر نوع میکروکنترلری وجود دارد بدین منظور کافیست تعداد پالس های دریافتی در مدت زمان یک ثانیه را دریافت کنید که با توجه به رنگ محیط مقدار این رابطه که همان فرکانس می باشد تغییر می کند.
ویژگی ها:
- رزولوشن بالا
- تبدیل نور به فرکانس
- قابلیت تنظیم خروجی رنگ و محدوده ی خروجی
- قابلیت اتصال به میکروکنترلر به صورت مستقیم
- تغذیه 2.7 الی 5.5 ولت
- خطا 0.2% در فرکانس 50KHz
- پایداری ضریب دمایی 200ppm/C
مشخصات فیزیکی:
- طول و عرض: 33.2X33.2 mm
- ارتفاع: 25mm
- محدوده دمای کاری: 85+ ~ 40-
ابزار لازم برای راه اندازی پروژه
نحوه ترتیب پایه ها مطابق با شکل و جدول زیر است:
نحوه اتصال ماژول تشخیص رنگ TCS3200 به آردوینو
نمونه برنامه برای راه اندازی ماژول تشخیص رنگ TCS3200 با آردوینو
int s0=3,s1=4,s2=5,s3=6; int out=2; int flag=0; byte counter=0; byte countR=0,countG=0,countB=0; void setup() { Serial.begin(115200); pinMode(s0,OUTPUT); pinMode(s1,OUTPUT); pinMode(s2,OUTPUT); pinMode(s3,OUTPUT); } void TCS() { flag=0; digitalWrite(s1,HIGH); digitalWrite(s0,HIGH); digitalWrite(s2,LOW); digitalWrite(s3,LOW); attachInterrupt(0, ISR_INTO, CHANGE); timer0_init(); } void ISR_INTO() { counter++; } void timer0_init(void) { TCCR2A=0x00; TCCR2B=0x07; //the clock frequency source 1024 points TCNT2= 100; //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 { TCNT2=100; flag++; if(flag==1) { countR=counter; Serial.print("red="); Serial.println(countR,DEC); digitalWrite(s2,HIGH); digitalWrite(s3,HIGH); } else if(flag==2) { countG=counter; Serial.print("green="); Serial.println(countG,DEC); digitalWrite(s2,LOW); digitalWrite(s3,HIGH); } else if(flag==3) { countB=counter; Serial.print("blue="); Serial.println(countB,DEC); Serial.println("\n"); digitalWrite(s2,LOW); digitalWrite(s3,LOW); } else if(flag==4) { flag=0; } counter=0; } void loop() { TCS(); while(1); }
برای دیدن خروجی برنامه سریال مانیتور برنامه آردوینو را باز کنید.
سلام، ببخشید این سنسور فقط رنگ رو نشان میده یعنی زمانی که به اردو اینو متصل میشه فقط رنگ رو نمایان میکنه ؟؟
ومیشه دربارش یکم بیشتر توضیح بدین ،
ممنون