مدارهای کنترل، مصارف مختلفی دارند. خصوصا اینکه طی چند دهه گذشته استفاده از مدارهای کنترل از راه دور بسیار افزایش یافته است. انواع پروتکلهای انتقال از جمله مادون قرمز IR و یا رادیویی در باندهای فرکانسی مختلف و حتی امواج وای فای مورد استفاده هستند. در این پروژه یک مدار خیلی باحال با برد آردوینو Arduino طراحی میکنیم. به این صورت که یک ریموت مادون قرمز IR با کد تعریف شده به مدار فرمان میدهد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.
هدف پروژه در بازکن با ریموت IR
مطلبی شبیه به ادامه این پست قبلا در سایت دیجی اسپارک منتشر شده است. اما تفاوت این پروژه در تعریف رمز عبور یا pin برای ارسال فرمان به مدار است. سوال اینجاست؛ چرا به جای ریموت و گیرنده مادون قرمز از keypad استفاده نکردیم؟؟ اگر از keypad استفاده کنیم ابزار وارد کردن رمز یا پین برای سارق یا کسی که قصد ورود غیر مجاز دارد مهیاست. شخص سوم با دانستن رمز میتواند از در ورودی عبور کند. اما در این پروژه به دو پارامتر نیازمند هستیم. اول دانستن رمز عبور و دوم هم دسترسی به ریموت Remote مخصوص میباشد. ریموت مادون قرمز IR در واقع حکم یک کلید را دارد. البته برای نمایش پیامها به یک LCD کاراکتری هم نیاز است. نکته قابل توجه استفاده از شیلد ال سی دی کاراکتری LCD 2×16 Shield در این پروژه است. این روش باعث کاهش سیم کشی در پروژه خواهد شد.
ماژول گیرنده مادون قرمز Infrared
ماژول گیرنده مادون قرمز Infrared دارای فرکانس ۳۷٫۹ کیلوهرتز یا ۳۸ کیلوهرتز میباشد. گیرنده مادون قرمز دارای سنسور TL1838 اینفرارد گیرنده مادون قرمز است. ابعاد سنسور ۱۸۳۸، ۷٫۳ میلی متر است. محدوده پاسخگویی سنسور با توجه به اطلاعات گفته شده در دیتاشیت ۱۸ متر است. ولی با توجه به تستی که در طول پروژه انجام شد، بیشتر از ۷ متر سنسور پاسخگو نیست. ولتاژ کاری ماژول گیرنده مادون قرمز بین ۲٫۷ تا ۵٫۵ ولت است. همچنین زاویه دید ماژول گیرنده مادون قرمز ۹۰ درجه است. سنسوری بسیار سبک و تا حدود ۳ گرم میباشد. ماژول گیرنده مادون قرمز به تربیت دارای سه پایه Signal, VCC, GND میباشد. ابعاد ماژول گیرنده مادون قرمز ۲٫۵ * ۱٫۵ * ۱٫۵ سانتی متر است. در ادامه به بررسی و نحوه ی عملکرد سنسور گیرنده اینفرارد میپردازیم.
اینفرارد Infrared
اشعه مادون قرمز یا به عبارتی (Infrared Radiation (IR یک نوع اشعه الکترومغناطیسی میباشد. اشعه هایی مانند امواج رادیویی، اشعه ماورابنفش، اشعه ایکس و مایکروویو ها از این دسته میباشند. اشعه مادون قرمز قابل رویت برای چشم انسان نیست و تنها از طریق گرما حس میشود. اشعه مادون قرمز به صورت متمرکز، منعکس کننده و پلاریزه است. طول موج طیف مادون قرمز بین ۷۵۰ نانومتر تا ۱ میلی متر است. مادون قرمز اینفرارد Infrared در ریموتهای IR مانند ریموت تلویزیون، ریموت تهویه و یا ریموت درب استفاده شده است که با روشن و خاموش کردن هریک از کلید های ریموت پالس به گیرنده ارسال شده و ماژول گیرنده پس از پردازش فرکانس و دامنه پالس، فرمان را اجرا خواهد کرد.
اتصالات پروژه در بازکن برقی
- پایه S گیرنده مادون قرمز را به پین شماره ۲ آردوینو متصل کنید.
- پایه IN در رله را به پین شماره ۳ آردوینو متصل کنید.
- الباقی اتصالات مربوط به تغذیه VCC و اتصالات GND مدار میباشد.
فراخوانی کتابخانه ماژول مادون قرمز
در آموزش آموزش ساخت در بازکن برقی با ریموت مادون قرمز و گیرنده ۳۸KHz برای راه اندازی ریموت IR نیاز به کتابخانه IRRemote داریم. پیش از این همکارم در پست مدیریت وسایل با ریموت مادون قرمز، موارد برای استفاده از کتابخانه را توضیح دادهاند. برای نصب به همان پست مراجعه کنید.
کد پروژه در بازکن با ریموت مادون قرمز
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
وسایل مورد نیاز:
ماژول فرستنده گیرنده IR با ریموت کنترل مادون قرمز
شیلد ال سی دی آردوینو Arduino Shield 2*16 LCD
ماژول رله تک کانال Relay Module 5V
چند رشته سیم
دریافت کد ریموت IR در سریال مانیتور
البته به جای ریموت مادون قرمز بکار رفته در این پروژه، امکان استفاده از ریموتهای دیگر موجود در بازار وجود دارد. دقت داشته باشید که دارای فرکانس کاری ۳۸Khz باشند. در آن صورت باید قبل از کامپایل کردن این کدها بر روی برد آردوینو Arduino، ابتدا باید با برنامه دیگری مقدار HEX ریموت را بدست آوریم. منظور این است که با تحریک هر کدام از دکمههای ریموت مادون قرمز IR کد یکتای آن را بدست آورده و در این پروژه جایگزین کنید. میتوانید از کدی که در خط بالای switch به صورت کامنت در آوردهام استفاده کنید. کافی است آن خط را از حالت کامنت خارج کنید و سپس کدها را بر روی برد کامپایل کنید. با باز کردن سریال مانیتور و فشار دادن هر کلید ۲ خط از اعداد و کاراکتر در سریال مانیتور نمایش داده میشود. خط اول مقدار HEX کلید مربوطه و خط دوم عبارت Other button را مشاهده میکنید. کافیست چند عدد خط اول را با اضافه کردن ۰x در سمت چپ آن، در کد مربوطه جاگزین کنید. برای مثال اگر کلید ۱ در ریموت کنترل را فشار دادید و در خط اول سریال مانیتور عدد ۱۶۲۱۲۱۲۷ نمایش داده شد آن را با اضافه کردن ۰x به این صورت ۰x16212127 در case مربوطه جایگزین کنید.
چند نکته در بازکن برقی با ریموت IR
- در این پروژه امکان استفاده از ماژول buzzer برای هشدار دادن به صورت پیشفرض وجود ندارد. زیرا کتابخانه IRremote و تابع tone که برای buzzer استفاده میشود هر دو از تایمر ۲ میکرو کنترلر استفاده میکنند. برای رفع این مشکل باید تغییراتی در کتابخانه IRremote ایجاد کنید.
- اگر از رله در حالت عادی استفاده کنیم. یعنی جریان برق در ورودی را به کانال NC یا همان normally close متصل کنیم. با HIGH کردن رله جریان برق در ورودی وصل و با LOW کردن جریان قطع میشود. اما مشکل اینجاست که با قطع برق میکرو کنترلر، رله جریان برق درب را تا زمان راه اندازی مجدد میکرو وصل نگه میدارد. به همین دلیل از رله در حالت معکوس استفاده میکنیم. یعنی برق ۱۲ ولت در را به کانال NO یا normally open متصل میکنیم و با high کردن رله جریان برق در قطع و با LOW کردن وصل میشود. در این حالت حتی با قطع جریان برق میکرو خیالمان راحت است که در ناخواسته باز نمیشود.
- با آپلود کردن کدهای بالا و امتحان پروژه متوجه خواهید شد که با فشار دادن هر عدد، مقدار همان عدد در LCD نمایش داده میشود. این از لحاظ امنیتی درست نیست. ممکن است شخص غیر مجاز پسورد را روی LCD ببیند. برای اینکه کاراکترهای وارد شده به صورت * روی LCD نمایش داده شوند. از خط ۴۲ تا خط ۵۳ به جای تمام کاراکترهای c که داخل پرانتز نوشته شدهاند از کاراکتر * که در داخل کوتیشن قرار داده شده استفاده کنید. به این صورت ‘*’
- رمز ورود یا Pin را در رشته pin بریزید. در بخش کدها با کامنت مشخص شده است.
بعضی از کلیدهای ریموت در این پروژه بدون استفاده هستند مانند کلیدهای up ، down و left . میتوانید با استفاده از این کلیدها و کلیدهای دیگر با کمی خلاقیت یک منو برای تغییر رمز و ذخیره آن در حافظه EEPROM ایجاد کنید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
با سلام کد بالا ایراد دارد
در اجرا ارور های مختلف می دهد.
از دستور switch استفاده نشده لطف میکنید تصحیح کنید؟
سلام. ممنون از توجه شما.
به علت تاخیر در پاسخگویی پوزش میطلبم.
بله حق با شماست. ظاهرا هنگام کپی پیست کردن کدها مشکلی به وجود آمده و چند خط از کدها حذف شده اند. این موضوع بررسی شده و به زودی تصحیح میشود.
سلام ، خسته نباشید . کد ها درست شدند یا خیر ؟
با سلام
ضمن عذرخواهی بابت تاخیر در پاسخگویی، بله موارد به روز شده اند.
سلام
چرا نمیشه زیر بعضی پست ها نظر داد؟
با سلام
لطفا لینک پستها را ارسال کنید تا بررسی شود.
سلام
موقع کامپایل کردن ارور میده
با سلام
لطفا ارور دریافتی را از همین طریق ارسال بفرمایید.
سلام
آیا راهی هست که بشه در باز کن بالا رو بهش چیزی وصل کرد تا با ریموت یا بلوتوث یا هردو از پایین در باز کرد
با سلام
بله به چندین روش قابل اجرا است.
سلام، من اشتراک اسپاکر پلاس خریداری کردم اما هیچ دسترسی به کد پروژه ندارم اگر امکانش هست برام ایمیل کنید.
با سلام
کاربر گرامی جهت پیگیری از طریق پرتال پشتیبانی اقدام فرمایید.
سلام متاسفانه بنده بدلیل کاری مدت یکماهه که میخوام با زبان بسکام، اعداد دکمه های همین ریموت رو روی سون سگمنت نمایش بدم اابته کدهای هگز و دسیمال ریموت رو دیکد کردم ولی نمیشه که نمیشه جناب آقای افشار عزیز میخواستم بدونم آیا کسی رو سراغ ندارید که بتونه توی سورس عملی راه اندازی این ریموتها (چینی با نام NEC) کمکم کنه ?ممنون میشم راهنمایی بفرمایید
با سلام
کاربر گرامی این مورد توسط بنده تست نشده است. پیام شما منتشر خواهد شد.