آردوینوالکترونیکپروژه آردوینو

راه اندازی سنسور تشخیص رنگ دقیق و کاربردی به کمک آردوینو

مقدمه

راه اندازی سنسور تشخیص رنگ: امروزه رنگ ها تاثیر بسزایی در زندگی ما دارند. از ست کردن رنگ یک خانه گرفته تا تلویزیون و گوشی موبایل که معمولا تا ۱۶ میلیون رنگ را ساپورت می کنند. اما تشخیص این رنگ ها کار دشواریست بخصوص زمانی که بخواهیم آن را به میکروکنترلر یا برد آموزشی ای مثل آردوینو بفهمانیم. 

نمایی از ماژول TCS230
نمایی از ماژول TCS230

 معرفی ماژول TCS230

امروز قرار است ماژولی را به شما معرفی کنیم که می تواند به راحتی و با دقت قابل قبولی این کار را انجام دهد. ماژولی به نسبت ارزان اما کاربردی با راه اندازی ساده. نام این ماژول TCS230 می باشد. طریقه کار این ماژول بدین گونه است که در هر پیکسل ۳ فتودیود وجود دارد که هر یک از آن ها سه رنگ قرمز، سبز و آبی را تشخیص می دهد. 

نوع رنگ بندی و رنگ ها دیود های نورانی این ماژول
نوع رنگ بندی و رنگ ها دیود های نورانی این ماژول

جدول مقدار دهی پین ها S1 تا S4

انتخاب رنگ فتودیودها S4 S3 نسبت فرکانس سیگنال خروجی S1 S0 
قرمز خاموش 
آبی ۲% 
بدون فیلتر ۲۰% 
سبز ۱۰۰% 
جدول مقدار دهی

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

برد آردوینو UNO 

ماژول TCS230 

سیم هدر برای اتصالات 

یکم انرژی! 

نحوه اتصالات: راه اندازی سنسور تشخیص رنگ

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

VCC: اتصال به منبع تغذیه ۲.۷ تا ۵.۲ ولت 

GND: اتصال به زمین مدار 

Out: سیگنال خروجی به صورت موج مربعی 

OE: پایه فعالسازی سیگنال (با اتصال به زمین فعال و با اتصال به VCC غیر فعال میشود) 

S1: پایه نسبت فرکانس خروجی 

S2: پایه نسبت فرکانس خروجی 

S3: پایه انتخاب رنگ برای بررسی 

S4: پایه انتخاب رنگ برای بررسی 

اگر احساس می کنید که پایه ها نامفهومند، نگران نباشید. داخل کد های آردوینو توضیح داده خواهد شد. 

کد برنامه در راه اندازی سنسور تشخیص رنگ

در کد آردوینو زیر ما قرار است مقدار خوانده شده از هر یک از سه فتودیود قرمز، سبز و آبی را در سریال مانیتور نمایش دهیم: 

const int s0 = 5;   
const int s1 = 4;   
const int s2 = 7;   
const int s3 = 6;   
const int out = 8;    

تعریف پایه های ماژول TCS230 برای آردوینو 

int red = 0;   
int green = 0;   
int blue = 0; 

تعریف متغییر های رنگ ها 

void setup()    
{   
  Serial.begin(9600);  

راه اندازی سریال 

  pinMode(s0, OUTPUT);   
  pinMode(s1, OUTPUT);   
  pinMode(s2, OUTPUT);   
  pinMode(s3, OUTPUT);   

تعریف پایه های S0 تا S4 به عنوان خروجی 

 pinMode(out, INPUT);

تعریف پایه OUT به عنوان ورودی 

  digitalWrite(s0, HIGH);   
  digitalWrite(s1, HIGH);   

با HIGH کردن این دو پایه فرکانس خروجی به نسبت ۵۰ ۵۰ خروجی می دهد 

}   
void loop()  
{   
  digitalWrite(s2, LOW);   
  digitalWrite(s3, LOW); 

ابتدا S2 و S3 را LOW می کنیم تا بتوانیم فقط رنگ قرمز را تشخیص دهیم 

red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 

با استفاده از تابع pulseIn مقدار خروجی را می خوانیم و متغییر رنگ مربوطه (در اینجا قرمز) را مقدار دهی می کنیم توجه کنید که آرگمان دوم شرطی را بررسی کرده که طی آن اگر مقدار out برابر با HIGH بود مقدار LOW را به تابع pulseIn می دهد و در غیر اینصورت مقدار HIGH را می دهد 

 digitalWrite(s3, HIGH);

حال  مقدار S3 را HIGH می کنیم تا بتوانیم رنگ آبی را بررسی کنیم  

blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

همانند بالا

 digitalWrite(s2, HIGH);

حال مقدار S2 را HIGH می کنیم تا بتوانیم رنگ سبز را بررسی کنیم

 green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 

همانند بالا 

  Serial.print("R Intensity:");   
  Serial.print(red, DEC);   
  Serial.print(" G Intensity: ");   
  Serial.print(green, DEC);   
  Serial.print(" B Intensity : ");   
  Serial.print(blue, DEC);   
  Serial.println();   

 مقادیر بدست آمده را چاپ می کنیم

delay(300);

تاخیر به مدت ۳۰۰ میلی ثانیه (می توانید این مقدار را کم یا زیاد کنید)

}

خروجی کد سه متغییر رنگ می دهد که بین ۰ تا ۲۵۵ عددی را به شما می دهند با استفاده از آن ها می توانید رنگ را تشخیص دهید مثلا اگر متغییر قرمز ۲۵۵ و بقیه متغییر ها مقداری نزدیک به صفر داشتند آن رنگ قرمز است. همچنین با ترکیب این سه رنگ می توانید هر رنگی که دلتان می خواهد را دریافت و چه بسا با استفاده از مثلا ال ای دی سه رنگ آن رنگ را دوباره تولید کنید. 

سخن پایانی

امیدوارم از این آموزش لذت برده باشید. لطفا نظرات انتقادات و پیشنهادات خود را برای من در زیر همین پست ارسال کنید. 

شما می توانید دیتاشیت سنسور این ماژول را از اینجا دانلود کنید. 

نمایش بیشتر

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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