در این پست از سایت اِمیک, ماژول سنسور فرستنده و گیرنده مادون قرمز (IR) را با استفاده از برد اردوینو راه اندازی خواهیم کرد. این پروژه بسیار ساده می باشد ولی می تواند بسیار کاربردی باشد و همچنین این پروژه می تواند به عنوان بخشی از یک پروژه بزرگتر کاربرد داشته باشد. قبلا این پروژه را با استفاده از میکروکنترلر AVR انجام داده بودیم که این پست را می توانید در اینجا مشاهده کنید.
سنسور مادون قرمز چیست؟ سنسورهای مادون قرمز IR شکل ظاهری آنها شبیه به یک LED می باشد و تقریبا همان ساختار LED را دارند با این تفاوت که نور آن مادون قرمز می باشد. این سنسورها به طور کلی به دو دسته تقسیم می شوند که یکی فرستنده و دیگری گیرنده می باشد. این سنسورها هم مانند LED ها دارای پلاریته (مثبت و منفی) می باشند که هنگام استفاده از انها باید به این نکته دقت شود. از سنسور IR استفاده های زیادی می شود که از جمله ی آن استفاده در انکودرهای نوری, رباتهای مسیریاب , کنترل تلویزیون و… می باشد. در شکل زیر یک نمونه از این سنسورها را مشاهده می کنید:

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

این ماژول دارای دو سنسور فرستنده و گیرنده مادون قرمز می باشد. محدوده فاصله قابل تشخیص برابر با 1 سانتیمتر تا 5 سانتیمتر می باشد، که با استفاده از پتانسیومتر موجود بر روی ماژول قابل تنظیم است. ولتاژ کاری نیز برابر با 3.3 ولت تا 5 ولت بوده و خروچی این ماژول نیز به صورت دیجیتال می باشد.
همانطور که در تصویر بالا مشاهده می کنید این ماژول دارای 3 پین است که دوتای ان برای تغذیه ماژول می باشد و با نام های VCC (اتصال به مثبت تغذیه) و GND (اتصال به منفی تغذیه) مشخص شده و پایه سوم خروجی ماژول است که با OUT مشخص شده و به صورت دیجیتال است (یا صفر منطقی است یا یک منطقی) , در ادامه برخی از مشخصات این ماژول گفته شده است:
- ولتاژ کاری 3.3 ولت تا 5 ولت
- جریان مصرفی در 5 ولت حدود 30 میلی آمپر
- فاصله قابل تشخیص 1 سانتیمتر تا 5 سانتیمتر
- دارای پتانسیومتر برای تتظیم حداکثر فاصله قابل تشخیص
- دارای ای سی آپ-امپ LM393
- دارای LED نمایش دهنده تشخیص موانع
- دارای LED نمایش دهنده وصل بودن تغذیه
- دارای خروجی دیجیتال قابل اتصال مستقیم به برد اردوینو (Arduino) و انواع میکروکنترلر
توجه: خروجی این ماژول در حالتی که جسمی را تشخیص داده برابر 0 منطقی است و درحالتی که جسمی را تشخیص ندهد خروجی ان 1 منطقی می باشد.
پروژه راه اندازی ماژول سنسور مادون قرمز با آردوینو :
در ادامه شماتیک این پروژه را مشاهده می کنید, ما در این پروژه از برد اردوینو UNO و همچنین یک ال سی دی کاراکتری 2*16 برای نمایش متن استفاده کرده ایم

اتصال ماژول مادون قرمز IR به برد اردوینو بسیار ساده می باشد. با توجه به اینکه خروجی این ماژول به صورت دیجیتال است، لذا تنها کاری که لازم است انجام دهیم این است که همواره چک کنیم پین خروجی ماژول در چه حالتی قرار دارد. در ادامه شماتیک این پروژه را مشاهده می کنید:

عملکرد این پروژه به این صورت می باشد که برد اردوینو همواره خروجی ماژول را چک کرده و در صورتی که ماژول جسمی را تشخیص داده باشد یک LED متصل به پین 0 از برد اردوینو را روشن می کند و همچنین روی LCD کاراکتری عبارت “object detected” را نمایش می دهد.
در صورتی که ماژول حرکتی را تشخیص نداده باشد, در این حالت LED خاموش و روی LCD متن “Not detected” نمایش داده می شود.
پتانسیومتر RV1 برای تنظیم کنتراست LCD کاراکتری می باشد, در صورتی که پتانسیومتر نداشتید می تونید پین 3 ال سی دی کاراکتری را به زمین (منفی تغذیه) متصل کنید.
برنامه :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> /* lcd معرفي کتابخانه */ /*متصل شود LCD تابع زیر مشخص می کند که کدام پین های اردوینو به*/ LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); void setup() { pinMode(A0, INPUT); /*اردوینو A0 ورودی کردن پین*/ pinMode(0, OUTPUT); /*خروجی کردن پین 0 اردوینو*/ lcd.begin(16, 2); /*(LCD بررسي اتصال) LCD پيکره بندي */ } void loop() { int IR ; /*int از نوع IR تعريف متغير با نام*/ IR = digitalRead(A0); /*اردوینو می کنیم A0 را برابر پین IR متغیر*/ lcd.clear(); /* LCD پاک کردن */ lcd.setCursor(0, 0); /* رفتن به ستون 0 و سطر 0 */ if (IR == 0) /*می شود if می شود یا به عبارت دیگر در صورتی که سنسور جسمي را تشخيص داد برنامه وارد شرط if برابر 0 منطقی شد وارد شرط IR در صورتی که متغیر*/ { lcd.print("object detected"); /*روی ال سی دی object detected نوشتن عبارت*/ digitalWrite(0, 1); /*پین 0 از برد اردوینو یک شود*/ } else { lcd.print("Not detected"); /*را روی ال سی دی نمایش می دهد Not detected برابر 0 نبود متن IR در صورتی که متغیر*/ digitalWrite(0, 0); /*پین 0 از برد اردوینو صفر شود*/ } delay(300); /*ايجاد تاخير به مدت 300 ميلي ثانيه */ } |
توضیحات قسمت های مهم برنامه نوشته شده, فقط توجه کنید همانطور که در بالا گفته شد خروجی ماژول برعکس است یعنی در حالتی که ماژول جسمی را تشخیص داده خروجی ان برابر 0 منطقی است و درحالتی که جسمی را تشخیص ندهد خروجی ان 1 منطقی می باشد,به همین دلیل در ابتدای برنامه خروجی ماژول که به پین A0 از برد اردوینو یونو متصل است را نقیض کرده ایم. اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…





سلام.ببخشید چطور می شه کاری کرد که این سنسور خط سیاه رو دنبال کنه؟ با تشکر
کتابخانه پروتئس رو برای تست ندارم، وقتی در پروتئوس اجرا میکنم خطای زیر رو میده
No model specified for IR SENSOR.
فقط برای نمایش نحوه اتصالات ماژول را در پروتئوس طراحی کردم و قابل شبیه سازی نیست باید به صورت عملی ببندید
ببخشید شما میتونید این برنامه ای گفتم بهش بدید ،ممنونتون میشم برام انجامش بدید
در حال حاظر بدلیل مشغله این امکان وجود ندارد. در اینده اگر وقت شد حتما در سایت قرار میدم
سلام خسته نباشید ،شما میتونید روی همین پروژه برنامه ای طراحی کنید که با رد شدن همون خط کش شماره بندازه ،منظورم روی صفحه نمایش تعداد رد شدن خط کش رو بشمره
سلام, بله میشه پروژه بالا به منظور اشنایی شما با نحوه استفاده و راه اندازی سنسور می باشد. شما به دلخواه می توانید پروژه را با توجه به نیاز خود تغییر دهید.
سلام خسته نباشید یه ماژول فرستنده و گیرنده اردینو که بتونم پالس های سنسور های ماشین رو تفکیک کنم که بتونم مقداری از سیم کشی هایی که ماشین داره خلاصه کنم ایا امکانش هست؟
سلام, سوالتون خیلی کلی هست. بستگی به نوع خروجی سنسورتون داره و از ماژول های RF باید استفاده کنید
سلام علیکم ممنون از پاسخ شما ولی RF نمیخواستم استفاده کنم میخواستم IR استفاده کنم