پروژه های آردینو

تشخیص رنگ با استفاده از Arduino Uno

تشخیص رنگ با استفاده از Arduino Uno

تشخیص رنگ با استفاده از Arduino Uno

تشخیص رنگ با استفاده از Arduino Uno در این پروژه ما قصد داریم حسگر رنگ TCS3200 را با Arduino UNO واسط کنیم.

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

TCS3200 شامل آرایه های RGB (قرمز سبز آبی) است.

همانطور که در شکل در سطح میکروسکوپی نشان داده شده است ، می توان جعبه های مربع شکل داخل حسگر چشم را مشاهده کرد.

این جعبه های مربعی آرایه هایی از ماتریس RGB هستند.

هر یک از این جعبه ها دارای سه سنسور است ، یکی برای سنجش شدت نور RED ، یکی برای سنجش شدت نور GREEN و آخرین مورد برای سنجش شدت نور BLUE.

تشخیص رنگ با استفاده از Arduino Uno

 

بخوانید : پروگرام آردوینو با بلوتوث

 

 

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

از این رو به عنوان سنسور قابل برنامه ریزی شناخته می شود.

ماژول می تواند رنگ خاص را حس کند و دیگران را ترک کند.

این فیلترها برای آن منظور انتخاب شده است.

حالت چهارم وجود دارد که حالت فیلتر ندارد.

بدون حالت فیلتر سنسور نور سفید را تشخیص می دهد.

 

لوازم مورد نیاز

سخت افزار

 

نرم افزار

  •  ARDUINO IDE

 

بخوانید : کنترل ماتریس 8×8 با آردوینو

نمودار مدار و توضیحات کار

در LCD 16×2 بک لایت 16 پین وجود دارد ، در صورت عدم وجود چراغ عقب 14 پین وجود دارد.

می توان پایه های نور پشت را تأمین یا ترک کرد.

اکنون در 14 پایه 8 پایه داده 7-14 یا D0-D7 ، 2 پایه منبع تغذیه 1 و 2 یا VSS و VDD یا GND و + 5v ، پایه 3 برای کنترل کنتراست وجود دارد (VEE کنترل می کند که شخصیت ها چقدر ضخیم نشان داده شوند  ، و 3 پایه کنترل (RS & RW & E)

 

بخوانید : ساخت رسیور IR با استفاده از آردوینو

در مدار می توانید مشاهده کنید که من فقط دو پایه کنترل گرفته ام.

از بیت کنتراست و READ / WRITE اغلب استفاده نمی شود تا بتوان آنها را کوتاه کرد.

این LCD را در بالاترین حالت کنتراست و خواندن قرار می دهد.

ما فقط باید پین های ENABLE و RS را کنترل کنیم تا متناسب با آن کاراکتر و داده ارسال کنیم.

 

اتصالات انجام شده برای LCD در زیر آورده شده است

 

PIN1 or VSS to ground

PIN2 or VDD or VCC to +5v power

PIN3 or VEE to ground (gives maximum contrast best for a beginner)

PIN4 or RS (Register Selection) to PIN8 of ARDUINO UNO

PIN5 or RW (Read/Write) to ground (puts LCD in read mode eases the communication for user)

PIN6 or E (Enable) toPIN9 of ARDUINO UNO

PIN11 or D4 to PIN7 of ARDUINO UNO

PIN12 or D5 to PIN11 of ARDUINO UNO

PIN13 or D6 to PIN12 of ARDUINO UNO

PIN14 or D7 to PIN13 of ARDUINO UNO

The connections which are done for color sensor are given below:

VDD to +5V

GND to GROUND

OE (output Enable) to GND

S0 to UNO pin 2

S1 to UNO pin 3

S2 to UNO pin 4

S3 to UNO pin 5

OUT to UNO pin 10

تشخیص رنگ با استفاده از Arduino Uno

 

 

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

 

رنگی که باید توسط سنسور رنگ حس شود با دو پایه S2 و S3 انتخاب می شود.

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

بگویید ما باید شدت رنگ RED را حس کنیم که باید هر دو پایه را روی LOW قرار دهیم.

پس از انجام این سنسور شدت را تشخیص داده و مقدار آن را به سیستم کنترل داخل ماژول می فرستد.

تشخیص رنگ با استفاده از Arduino Uno

 

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

شدت نور اندازه گیری شده توسط آرایه به مبدل جریان به فرکانس ارسال می شود.

کاری که انجام می شود این است که یک موج مربعی را بیرون می آورد که فرکانس آن نسبت به جریان ارسالی توسط ARRAY است.

 

 

بنابراین ما سیستمی داریم که یک موج مربعی را می فرستد که فرکانس آن به شدت نور رنگی که توسط S2 و S3 انتخاب می شود بستگی دارد.

فرکانس سیگنال ارسالی توسط ماژول بسته به نوع استفاده قابل تنظیم است.

می توانیم پهنای باند فرکانس سیگنال خروجی را تغییر دهیم.

 

 

بخوانید : آشکارساز حرکت با استفاده از سنسور PIR

مقیاس گذاری

مقیاس گذاری فرکانس توسط دو بیت S0 و S1 انجام می شود.

برای راحتی کار ، ما مقیاس بندی فرکانس را به 20٪ محدود می کنیم.

این کار با تنظیم S0 روی بالا و S1 روی LOW انجام می شود.

این ویژگی زمانی به کار می آید که ما از ماژول روی سیستم با ساعت کم استفاده می کنیم.

حساسیت آرایه به رنگ در شکل زیر نشان داده شده است.

 

 

اگرچه رنگهای مختلف حساسیت متفاوتی دارند ، اما برای استفاده معمول تفاوت چندانی نخواهد داشت.

UNO در اینجا سیگنال را به ماژول می فرستد تا رنگ ها را تشخیص دهد و داده های دریافت شده توسط ماژول در LCD 16 * 2 متصل به آن نشان داده می شود.

سه شدت رنگ را جداگانه تشخیص می دهد و آنها را بر روی LCD نشان می دهد.

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

با فرکانس موجود می توانیم آن را با حسگر رنگ مطابقت دهیم

همانطور که با شرایط فوق ، UNO مدت زمان پالس را روی 10 پین UNO می خواند و مقدار آن را در عدد صحیح “فرکانس” ذخیره می کند.

ما قصد داریم این کار را برای هر سه رنگ برای تشخیص رنگ انجام دهیم.

هر سه شدت رنگ توسط فرکانس ها در LCD 16×2 نشان داده می شود.

 

بخوانید : کنترل آردوینو با رزبری پای pyFirmata

 

کد برنامه :  تشخیص رنگ با استفاده از Arduino Uno

int OutPut= 10;//naming pin10 of uno as output

unsigned int frequency = 0;

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(8, 9, 7, 11, 12, 13);//RS,EN,D4,D5,D6,D7

void setup()

{

                // set up the LCD’s number of columns and rows

                lcd.begin(16, 2);

                pinMode(2, OUTPUT);

                pinMode(3, OUTPUT);//PINS 2, 3,4,5 as OUTPUT

                pinMode(4, OUTPUT);

                pinMode(5, OUTPUT);

                pinMode(10, INPUT);//PIN 10 as input

                digitalWrite(2,HIGH);

                digitalWrite(3,LOW);//setting frequency selection to 20%

}

void loop()

{

                lcd.print(“R=”);//printing name

                digitalWrite(4,LOW);

                digitalWrite(5,LOW);//setting for RED color sensor

                frequency = pulseIn(OutPut, LOW);//reading frequency

                lcd.print(frequency);//printing RED color frequency

                lcd.print(”  “);

                lcd.setCursor(7, 0);//moving courser to position 7

                delay(500);

               lcd.print(“B=”);// printing name

                digitalWrite(4,LOW);

                digitalWrite(5,HIGH);// setting for BLUE color sensor

                frequency = pulseIn(OutPut, LOW);// reading frequency

                lcd.print(frequency);// printing BLUE color frequency

                lcd.print(”  “);

                lcd.setCursor(0, 1);

                delay(500);

               lcd.print(“G=”);// printing name

                digitalWrite(4,HIGH);

                digitalWrite(5,HIGH);// setting for GREEN color sensor

                frequency = pulseIn(OutPut, LOW);// reading frequency

                lcd.print(frequency);// printing GREEN color frequency

                lcd.print(”    “);

                lcd.setCursor(0, 0);

                delay(500);

}

این پروژه توسط گروه وی تات انجام شده wetat.ir

کپی با دکر منبع بلامانع است

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

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

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