در این پست از سایت اِمیک, ماژول سنسور فرستنده و گیرنده مادون قرمز (IR) را راه اندازی خواهیم کرد. این پروژه بسیار ساده می باشد ولی می تواند بسیار کاربردی باشد و همچنین این پروژه می تواند به عنوان بخشی از یک پروژه بزرگتر کاربرد داشته باشد.
سنسور مادون قرمز چیست؟ سنسورهای مادون قرمز IR شکل ظاهری آنها شبیه به یک LED می باشد و تقریبا همان ساختار LED را دارند با این تفاوت که نور آن مادون قرمز می باشد. این سنسورها به طور کلی به دو دسته تقسیم می شوند که یکی فرستنده و دیگری گیرنده می باشد. از سنسور IR استفاده های زیادی می شود که از جمله ی آن استفاده در انکودرهای نوری, رباتهای مسیریاب , کنترل تلویزیون و… می باشد.
همانطور که گفته شد ما در این پست ماژول فرستنده و گیرنده IR را راه اندازی می کنیم که تصویر یک نمونه از این ماژولها را در زیر مشاهده می کنید. این ماژول کار را برای راه اندازی سنسورهای مادون قرمز بسیار راحت تر می کند.
این ماژول دارای دو سنسور فرستنده و گیرنده مادون قرمز می باشد. محدوده فاصله قابل تشخیص برابر با 1cm تا 5cm می باشد، که با استفاده از پتانسیومتر موجود بر روی ماژول قابل تنظیم است. ولتاژ کاری نیز برابر با 3.3 ولت تا 5 ولت بوده و خروچی این ماژول نیز به صورت دیجیتال می باشد.
همانطور که مشاهده می کنید این ماژول 3 پین دارد که دوتای ان برای تغذیه ماژول است و با نام های VCC (اتصال به مثبت تغذیه) و GND (اتصال به منفی تغذیه) مشخص شده و پایه سوم خروجی ماژول می باشد که با OUT مشخص شده و به صورت دیجیتال است (یا صفر منطقی است یا یک منطقی) , در ادامه برخی از مشخصات این ماژول گفته شده است:
- ولتاژ کاری 3.3 ولت تا 5 ولت
- جریان مصرفی در 5 ولت حدود 30 میلی آمپر
- فاصله قابل تشخیص 1cm تا 5cm
- دارای پتانسیومتر برای تتظیم حداکثر فاصله قابل تشخیص
- درای آپ-امپ LM393
- دارای LED نمایش دهنده تشخیص موانع
- دارای LED نمایش دهنده وصل بودن تغذیه
- دارای خروجی دیجیتال قابل اتصال مستقیم به Arduino و انواع میکروکنترلر
توجه: خروجی این ماژول در حالتی که جسمی را تشخیص داده برابر 0 منطقی است و درحالتی که جسمی را تشخیص ندهد خروجی ان 1 منطقی می باشد.
پروژه راه اندازی ماژول سنسور مادون قرمز با میکروکنترلر AVR :
اتصال ماژول IR به میکروکنترلر بسیار ساده می باشد. با توجه به اینکه خروجی این ماژول به صورت دیجیتال است، لذا تنها کاری که لازم است انجام دهیم این است که همواره چک کنیم پین خروجی ماژول در چه حالتی قرار دارد. در ادامه شماتیک این پروژه را مشاهده می کنید:
عملکرد این پروژه به این صورت می باشد که میکروکنترلر همواره خروجی ماژول را چک کرده و در صورتی که ماژول جسمی را تشخیص دهد یک LED متصل به پین 14 را روشن می کند و همچنین روی 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 29 30 31 32 33 |
////////// WWW.EMIC.IR ////////// #include <mega16a.h> #include <alcd.h> #include <delay.h> void main(void) { int IR ; //int از نوع IR تعريف متغير با نام// DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0); PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (1<<DDD0); PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); lcd_init(16); while (1) { IR=~PINA.0; //قرار داده ايم A را برابر نقيض (برعکس) پين 0 از پورت IR متغير// PORTD.0=IR; //قرار داده ايم IR را برابر متغير D پين 0 از پورت// lcd_clear(); // پاک کردن ال سي دي کاراکتري // lcd_gotoxy(0,0); //رفتن به سطر و ستون 0 از ال سي دي کاراکتري// if(IR==1) //(ميشود if ميشود(يا به عبارت ديگر در صورتي که سنسور جسمي را تشخيص داد برنامه وارد if برابر 1 منطقي شد وارد شرط IR در صورتي که متغير// { lcd_putsf("object detected"); //روي ال سي دي object detected نوشتن عبارت// }else { lcd_putsf("Not detected"); } //را روي ال سي دي نمايش مي دهد Not detected برابر 1 نبود متن IR در صورتي که متغير// delay_ms(300); // ايجاد تاخير به مدت 300 ميلي ثانيه // } } |
توضیحات قسمت های مهم برنامه نوشته شده, فقط توجه کنید همانطور که در بالا گفته شد خروجی ماژول برعکس است یعنی در حالتی که ماژول جسمی را تشخیص داده خروجی ان برابر 0 منطقی است و درحالتی که جسمی را تشخیص ندهد خروجی ان 1 منطقی می باشد,به همین دلیل در ابتدای برنامه خروجی ماژول که به پین 0 از پورت A (پایه 40 میکرو) متصل است را نقیض کرده ایم. اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
سلام
این تنظیمات کد ویزارد کدویژن برای این ماژول مثل سنسور التراسونیک تنظیمات خاصی داره یا فقط باید درکل چندتا پایه رو خروجی کنی؟
سلام, تنظیمات خاصی ندارد پایه 40 ورودی شده و بقیه پایه های استفاده شده خروجی شده اند
با عرض سلام و خسته نباشید
بابت سایت کاربردیتون ازتون ممنونم.اگر امکانش هست لطفا لینک خرید pcb این پروژه رو قرار بدید
سپاسگزارم
سلام
اگه بخوام بین فرستنده و گیرنده ارتباط مستقیم بر قرار باشه
مثل کنترل تلویزیون و خود تلویزیون ،چطور باید بین فرستند و میکرو و گیرنده ارتباط برقرار کنم؟
سلام جناب مهندس خسته نباشید میخواستم اگه میشه پروژه ی شمارش افراد با استفاده از سنسور گیرنده و فرستنده مادون قرمز با استفاده از AVR را آموزشش را در سایت قرار دهید با تشکر
با استفاده از یک کلید لاجیک که به پایه تست وصل میشود به راحتی میتوان مدار را تست کرد.
سلام روی برد من سنسور گیرنده و فرستنده روبه روی هم بسته شده و دوپایه R T ازش خارج شده
VCC GR هم به درستی بسته شده این کد روی برد من کار نکرد و دقیقا نمیدونم این ماژول چجوری ران میشه
فرستنده و گیرنده روبه روی هم هستند و یه LM358N هم کنارش هست
سلام, اگر سنسورها روبروی هم هستند احتمالا ماژول شما اپتوکانتر هست و برای شمارش دور موتور و… استفاده میشه و من نمیدونم خروجی ماژول شما به چه صورت است که راهنمایتون کنم
سلام
میشه ی ایدی یا هرچیزی دیگ ای بدین باهاتون درارتباط باشم
این مدارشو جمع کردم ولی جواب نمیده
سلام, ایمیل : emic1395@gmail.com
ببخشید فایل های انتهای مطلب ینی چی؟!
متوجه منظورتون نشدم
میشه ادرس دقیق تر بدین
در انتهای مطلب زیر کلیپ تست عملی پروژه یک دکمه هست که نوشته شده “دانلود فایل ها” که فایل هگز در این فایل ها می باشد
سلام میشه فایلhex این برنامه رو بزارید.باتشکر
سلام, در فایل های انتهای مطلب فایل هگز موجود هست
با سلام
من میخاستم اینو درست کنم
ایا احتمال جواب گرفتن از این پروژه هست یا نه؟!
ممنون میشم ک جوابگو باشید
سلام, این یک پروژه ساده هست و تست شده می باشد. کلیپ تست عملی پروژه در انتهای پست قرار داده شده
سلام ممنون ازسایت خوبتون،ببخشیدبرای ماژول باید برنامه ای جدانوشت ؟اخه توپروتئوس که شبیه سازی کردم جواب ندادمیگه برنامه ای برای ماژول تعریف نشده،ممنون میشم جواب بدین
سلام, خیر ماژول نیاز به برنامه ندارد. باید بصورت عملی تست کنید امکان شبیه سازی وجود ندارد
میشه بگین ماژول دقیقا چجوری ب پایه ۴۰ وصله تو فیلم ک سیم خروجی از ماژول مشخص نیست
شماتیک در بالا قرار داده شده طبق اون باید پروژه را انجام بدید. ماژول سه پایه دارد که یکی باید به vcc و یکی دیگه به gnd و پایه سوم که خروجی هست به پین 40 میکرو متصل میشه