سنسور Infrared Obstacle Avoidance که در شکل زیر نشان داده شده است، به عنوان یک سنسور مادون قرمز برای تشخیص موانع استفاده می شود. به طوری که اگر شی یا مانعی در مقابل سنسور قرار نگرفته باشد، گیرنده مادون قرمز نمی تواند سیگنالی را دریافت کند و برعکس همین قضیه هم ممکن است اتفاق بیافتد یعنی اگر یک جسم یا شی در مقابل سنسور قرار گیرد؛ گیرنده سنسور مادون قرمز سیگنال دریافت می کند.
ماژول فرستنده و گیرنده مادون قرمز
ماژول مادون قرمز عمدتا شامل یک فرستنده سیگنال، یک گیرنده و یک پتانسیومتر که وظیفه کالیبره کردن را بر عهده دارد به وجود آمده است. همانطور که گفتیم اگر یک شی در مقابل ماژول قرار بگیرد فرستنده اقدام به ارسال موج یا سیگنال می کند و گیرنده ماژول این موج یا سیگنال را دریافت می کند در این حالت ولتاژ به برد آردوینو ارسال می شود و در حالتی که شی یا وسیله ای در مقابل این ماژول قرار نگیرد، سیگنالی در خروجی نمایش داده نمی شود. البته لازم به ذکر است که ماژول Avoid با سنسور فرستنده و گیرنده مادون قرمز توانایی دریافت داده های آنالوگ را ندارد، در نتیجه مقادیر فقط به صورت 0 و 1 از ماژول Avoid با سنسور فرستنده گیرنده IR قابل دریافت است.
ویژگی ماژول فرستنده و گیرنده مادون قرمز
1. ولتاژ کاری بین 3.3ولت تا 5ولت
2. محدوده کاری دما بین 10-درجه سانتیگراد تا 50+درجه سانتی گراد
3. محدوده فاصله قابل شناسایی توسط سنسور 2سانتی متر تا 40سانتی متر(فاصله قابل تنظیم توسط پتانسیومتر)
4. زاویه موثر کار 35± درجه
5. حداکثر وزن 9گرم
6. خروجی به صورت 0 و 1
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول مادون قرمز TCRT5000 | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال ماژول به برد آردوینو بسیار راحت است به طوری که باید پایه زمین یا GND را به پین GND آردوینو اتصال دهید. در ادامه پایه Vcc ماژول مادون قرمز را به پین 5 ولت آردوینو متصل کنید و در نهایت پایه خروجی یا OUT را به یکی از پین های دیجیتال آردوینو اتصال دهید که ما در این پروژه به پایه D8 اتصال داده ایم.
برنامه نویسی پروژه
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#define ledPin 13 #define avoidPin 8 void setup() { pinMode(ledPin, OUTPUT); pinMode(avoidPin, INPUT); } void loop() { int avoidVal = digitalRead(avoidPin); if(avoidVal == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } |