آردوینو - آموزش آردوینو-Arduinoتازه ها

راه اندازی ماژول تشخیص رنگ TCS3200 با آردوینو

این ماژول یکی از بهترین ماژول های تشخیص رنگ بوده که از سنسور TCS3200 استفاده می کند. در واقع این ماژول یک مبدل رنگ به فرکانس می باشد. جهت تشخیص رنگ بایستی با میکروکنترلر فرکانس پین خروجی سنجیده شود.با توجه به اینکه خروجی ماژول از نوع فرکانس می باشد امکان راه اندازی با هر نوع میکروکنترلری وجود دارد بدین منظور کافیست تعداد پالس های دریافتی در مدت زمان یک ثانیه را دریافت کنید که با توجه به رنگ محیط مقدار این رابطه که همان فرکانس می باشد تغییر می کند.

ویژگی ها:

  • رزولوشن بالا
  • تبدیل نور به فرکانس
  • قابلیت تنظیم خروجی رنگ و محدوده ی خروجی
  • قابلیت اتصال به میکروکنترلر به صورت مستقیم
  • تغذیه 2.7 الی 5.5 ولت
  • خطا 0.2% در فرکانس 50KHz
  • پایداری ضریب دمایی 200ppm/C

مشخصات فیزیکی:

  • طول و عرض: 33.2X33.2 mm
  • ارتفاع: 25mm
  • محدوده دمای کاری: 85+ ~ 40-

ابزار لازم برای راه اندازی پروژه

  • ماژول تشخیص رنگ TCS3200
  • آردوینو UNO یا برد های مشابه
  • سیم برد بردی
  • برد برد

نحوه ترتیب پایه ها مطابق با شکل و جدول زیر است:

نحوه اتصال ماژول تشخیص رنگ 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);
 }

برای دیدن خروجی برنامه سریال مانیتور برنامه آردوینو را باز کنید.

 

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا