آردوینو, آموزش, توصیه شده, مقاله های سیسوگ

راه‌اندازی ریموت با آردوینو

راه‌اندازی ماژول IR Receiver با آردوینو

مطمئنا تا به حال با کنترل‌های تلوزیون کار کرده‌اید و حداقل چندین کلید را فشرده‌اید ( وجدانن شوخیشم قشنگ نیست بگید اصلا کار نکردیم) و هر کلید هم کار خاص خودش را انجام می‌دهد به طور مثال اگر کلید افزایش صدا را انتخاب کرده باشید، قاعدتا باید صدای تلوزیون زیاد شود و یا اگر کلید شماره 3 را انتخاب کنید باید شبکه 3 را نمایش دهد و به عبارت دیگر هر کدام از این کلید‌ها یک عمل خاص را انجام می‌دهند.

اگر بخواهیم به صورت کلی‌تر به موضوع نگاه کنیم می‌توانیم بگوییم که این کنترل‌ها، جهت برقراری ارتباط از راه دور با دستگاه موردنظر هستند که در اینجا دستگاه موردنظر ما تلوزیون است اما اگر کمی گسترده‌تر به داستان نگاه کنیم می‌توانیم کاربرد‌های بیشتری را برای این کنترل‌ها ذکر کنیم به طور مثال کنترل ضبط‌ های ماشین، کنترل پنکه‌های دستی و خود تلوزیون‌ها و …

در این مقاله می‌خواهیم ابتدا به تعریف مادون‌قرمز بپردازیم و در نهایت یک کنترل تلوزیون را برداریم و ببینیم که چه کد‌هایی ارسال می‌کند و آیا می‌توانیم ما هم از این کنترل برای کار‌های الکترونیکی خود استفاده کنیم یا خیر؟ با ما همراه باشید.

منظور از کار‌های الکترونیکی راه‌اندازی انواع سنسور‌ها و ماژول‌ها و … است که در ادامه با یک‌دیگر به این موضوع خواهیم پرداخت.

شاید برای شما مفید باشد: راه اندازی ریموت کد لرن

مادون قرمز (IR) چیست؟

“Infrared” یا اشعه مادون قرمز، یك تابش الكترومغناطیسی با طول موج بیشتر از امواج مرئی و كوتاهتر از امواج رادیویی است.

انتقال داده‌ها از طریق امواج فروسرخ نیز در ابعاد مكانی كوچك و بین دستگاههای كامپیوتری دیجیتال و تلفن‌های همراه مورد استفاده قرار می‌گیرد. این گونه دستگاه‌ها خود را با استانداردها و قوانینی كه توسط “انجمن داده‌های اینفرارد( IrDA )” تطبیق می‌دهند و كار می‌كنند.

كنترل‌های از راه‌دور و دستگاههای مطابق با استانداردهای IrDA از دیودهای ساطع‌كننده‌ی نور یا LED برای ساطع كردن امواج فروسرخ كه توسط یك لنز پلاستیكی داخل نورافكنی كوچك و نازك كارگذاشته شده‌اند استفاده می‌شوند. این نورافكنها، نوسان‌بندی شدند و وقتی روشن و خاموش می‌شوند، به تناسب، داده‌ها را رمزگذاری می‌نمایند.

دستگاه دریافت‌كننده‌ی امواج فروسرخ، از یك فتودیود با جنس سیلیكون استفاده می‌كند تا موج اینفرارد را به جریان الكتریكی تبدیل سازد. دستگاه دریافت‌كننده‌ی امواج، تنها به سیگنالهای پالس‌دهنده‌ایی كه مدام توسط فرستنده یا Transmitter ساخته می‌شوند، پاسخ می‌دهد و امواج فروسرخی كه به آرامی از نورهای محدود و كوچكی تغییر حالت می‌دهند را از صافی مخصوص خود می‌گذرانند.

فناوری اینفرارد در ارتباطات برای استفاده در محل‌های كوچكی كه تراكم افراد و جمعیت در آنها بالا است و بلوتوث یا سایر فناوری‌ها قادر به انتقال داده به شكلی مناسب نیستند بسیار مفید به نظر می‌رسد. ( کار ما هم دقیقا همینه جایی که استفاده از سایر پروتکل‌ها خیلی مناسب نیست از این تکنولوژی می‌خواهیم استفاده کنیم)

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

امواج فروسرخ یا Infrared از دیوارها عبور نمی‌كنند و در نتیجه در كار سایر دستگاههای اتاقهای مجاور دخالت نمی‌نمایند. اینفرارد رایج‌ترین فناوری استفاده‌شده در كنترلهای از راه دور دستگاههای مختلف است.

امواج اینفرارد، نور لازم برای ارتباطات فیبر نوری را فراهم می‌كنند. این امواج، طول موجی با حداقل میزان انتشار ۱.۳۳ نانومتر و حداكثر میزان پراكنش نور ۱.۵۵ نانومتر دارند و در سیمهای سیلیسیومی بسیار استفاده می‌شوند

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

دستگاه اینفرارد شما را قادر میسازد تا حداکثر به فاصله 20-30 سانتی متری با دستگاهی که دارای اینفرارد است ارتباط برقرار کند . ذکر این نکته ضروریست که تکنولوژی اینفرارد یک تکنولوژی Face to Face بوده ( روبروی هم ) و همانند کنترل های دستگاههای صوتی و تصویری که از فناوری اینفرارد بهره می برند عمل میکند . فاصله برد آن برای گوشی های موبایل حداکثر 30 سانتی متر است.

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

وسایل موردنیاز جهت انجام پروژه راه‌اندازی ماژول IR RECEIVER

  • کنترل( هر کنترلی که مدنظرتان است چه کنترل ضبط ماشین، تلوزیون و …)
  • آردوینو( هر مدلی که در دسترس است اصلا نوع آن مهم نیست)
  • سه  یا 4 عدد LED (اینم اگه در دسترس نبود اشکالی نداره)

شماتیک راه‌اندازی ماژول IR RECEIVER با آردوینو

راه‌اندازی ماژول IR Receiver با آردوینو

خب پس از اینکه مدار را به صورت بالا متصل کردیم نیاز است که آن را برنامه‌نویسی کنیم برای این کار باید به صورت زیر عمل کنیم.

برنامه‌نویسی ماژول IR RECEIVER با آردوینو

این بخش شامل سه قسمت می‎‌یاشد.

قسمت اول: نصب کتابخانه IRremote

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

قسمت سوم: تنظیم کد‌های هگز بدست آمده جهت انجام کار موردنظر.

 

قسمت اول: برای این قسمت باید به به صورت تصاویری که در ادامه قرار می‌دهیم عمل کنیم.

 

نصب کتابخانه IRremote

نصب کتابخانه IRremote برای آردوینو

پس از اینکه نصب کتابخانه به اتمام رسید نوبت به انجام قسمت دوم است.

کد قسمت دوم:

عملکرد این کد به گونه‌ای است که در واقع هر کنترلی را به سمت IR RECEIVER بگیرید و کلید‌های مدنظرتان را انتخاب کنید، کدهگز کلید فشرده را خواهید دید. به طور مثال بنده تصویر کنترلی را که در ادامه می‌بینید استفاده کرده‌ام و در ادامه می‌خواهم که از کلید های خاموش کردن، 1، 2، 3، 4، 5، 6، و Enter استفاده کنم. برای این کار قاعدتا باید اول از همه کد هگز‌ کلید‌های خواسته شده را در بیاورم پس برای این کار کد بالا را روی آردوینو آپلود می‌کنم و در نهایت نتیجه به صورت زیر خواهد بود.

کنترل استفاده شده در پروژه (حقیقتا خودمم نمیدونم کنترل چه تلوزیونیه ولی جواب کار ما رو میده)

کنترل تلوزیون اردوینو

کد‌های هگز بدست آمده از کنترل مورد‌نظر:

خب پس از اینکه کد‌های هگز موردنظر را در آوردیم نوبت به نوشتن کد موردنظرمان است که در قسمت دوم به آن می‌پردازیم.

کد قسمت دوم:

اگر به کد دقت کنید اصل کد در ساختار Switch/ Case نوشته شده است که در واقع عملکرد آن به این نحو است که اگر کدهگز مورد نظر جز یکی از Case باشد کار مربوط به آن Case را انجام می‌دهد در غیر اینصورت کار خاصی را انجام نمی‌دهد.

ساختار کلی برنامه به این نحو است که اگر:

  • کلید 1 انتخاب شود یک LED روشن می‌شود.
  • اگر کلید 2 انتخاب شود LED شماره دو روشن می‌شود.
  • اگر کلید 3 انتخاب شود LED شماره سه روشن می‌شود.
  • اگر کلید شماره 4 انتخاب شود تابع LED_Strip1 فراخوانی شده و عمل می‌کند.
  • اگر کلید شماره 5 انتخاب شود تابع LED_Strip2 فراخوانی شده و عمل می‌کند.
  • اگر کلید شماره 6 انتخاب شود تابع LED_Strip3 فراخوانی شده و عمل می‌کند.
  • و در نهایت اگر کلید خاموش شدن انتخاب شود تمامی LED ها خاموش می‌شوند.

شاید برای شما مفید باشد: ریموت هاپینگ

راه‌اندازی ماژول IR RECEIVER با آردونیو

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

تمرین: به عنوان تمرین می‌توانید یک OLED را راه‌اندازی و سپس توسط کلید‌های کنترل تلوزیون خود یک منو درست کنید که با زدن هر کلید یک عمل خاصی را روی OLED انجام دهد.
امیدواریم که این آموزش هم موردنظر شما مخاطبین سیسوگی عزیز قرار گرفته باشد.

author-avatar

درباره BLO OM

«السَّلَامُ عَلَیْکَ یَا أَبَا عَبْدِ اللَّهِ، السَّلَامُ عَلَیْکَ وَ رَحْمَهُ اللَّهِ وَ بَرَکَاتُهُ».

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

30 دیدگاه در “راه‌اندازی ریموت با آردوینو

  1. Avatar for احسان احسان گفت:

    درود.
    در پاسخ به دوستمون که دنبال دیتابیس برای ریموتهای IR می گشت:
    https://files.remotecentral.com/

  2. Avatar for حسین حسین گفت:

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

    1. Avatar for Zeus Zeus گفت:

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

      1. Avatar for حسین حسین گفت:

        این چیزی که میخواستم نبود من میخوام آردوینو رو تبدیل به ریموت کنم نه اینکه باهاش گیرنده بسازم درواقع میخوام کنترل tv باهاش درست کنم

        1. Avatar for Zeus ‌ Zeus ‌ گفت:

          آها خوب اول باید ببینید چه پروتکلی رو میخواد پیاده سازی کنید
          بعد بر اون اساس تصمیم بگیرید که از چه راهی برید
          مثلا برای همین پروتکل RC5 کتابخانه آماده وحود داره که فرستنده هستند ولی ما مطلبش رو کار نکردیم/.

  3. Avatar for ahmad ahmad گفت:

    سلام کتابخانه یا دیتابیس کدهای hex مربوط به ریموت های مختلف که در بازار وجود داره رو از جایی میشه پیدا کرد؟

    1. Avatar for Zeus Zeus گفت:

      من توی اینرنت پروژه هایی رو دیدم که کدهای چند تا ریموت رو گذاشتن ولی چیزی که جامع باشه رو ندیدم

  4. Avatar for ابوالفضل ابوالفضل گفت:

    با سلام برای من این بخشو irrecv.blink13(true); داره اشتباه میگیره ممنونمیشم اگر کمک کنید

    1. Avatar for zeus zeus گفت:

      سلام دوست عزیز
      برای این که بتونیم کمکتون کنیم نیازه متن خطا رو بذارید که بتونیم بفهمیم چه خطایی داره میده

  5. Avatar for erfan erfan گفت:

    سلام این ارور برای چیه ؟
    C:\Users\moota\Desktop\آردویینو\ir.recive\remote-start\remote-start.ino: In function ‘void setup()’:
    remote-start:10:10: error: ‘class IRrecv’ has no member named ‘blink13’
    Multiple libraries were found for “IRremote.h”
    Used: C:\Users\moota\Documents\Arduino\libraries\IRremote
    Not used: C:\Users\moota\Documents\Arduino\libraries\Arduino-IRremote-master
    exit status 1
    ‘class IRrecv’ has no member named ‘blink13’

    1. Avatar for zeus zeus گفت:

      فکر میکنم اول لازم باشه توی میسر پروژه از اسم فارسی برای پوشه خودداری کنید
      البته خطایی که دارید دریافت میکنید داره میگه از چند کتابخانه به این اسم دارید

  6. Avatar for مهدی مهدی گفت:

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

    1. Avatar for zeus zeus گفت:

      شاید کدینگ ارسالی ریموتی که استفاده میکنید متفاوت هست

    2. Avatar for abolfazl abolfazl گفت:

      کد های کنترلتون رو با کد های برنامه عوض کردید؟

  7. Avatar for سعید سعید گفت:

    سلام خسته نباشید.
    ممنون از مطالب مفیدتون.
    کتابخونه IRremote رو از کجا میتونم دانلود کنم؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      از لینک زیر میتونید دانلود کنید
      https://github.com/Arduino-IRremote/Arduino-IRremote

  8. Avatar for محمد هادی محمد هادی گفت:

    سلام. مطالبی بسیار خوبی بود.حالا من بخوام برای tiny13استفاده کنم باید چکار کنم؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      احتمالا با توجه به محدودیت حافظه پیاده سازی این پروژه بسیار چالشی باشه و ساده نباشه :/
      شاید بتونید پرتکل هایی مثل rc5 رو به شکل اسمبلی پیاده سازی کنید

  9. Avatar for عرفان عرفان گفت:

    سلام من IRدوپایه دارم میشه بگید طوری باید به بورد اردوینو متصل بشه

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      اون چیزی که شما دارد دیود IR هست – حالا ممکنه گیرنده یا فرستنده باشه
      اگر گیرنده باشه برای اتصال اون نیاز به مدار تقویت کننده دارید که با سه جستجوی ساده میتونید مدار موردنیازش رو پیدا کنید

  10. Avatar for MK MK گفت:

    سلام وقتتون بخیر
    این برنامه رو میتوان برای میکروهای stm32F103 هم اجرا کرد؟؟ کد هگز ها رو میتوان بدست آورد؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

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

  11. Avatar for امیر امیر گفت:

    سلام خسته نباشید میخواستم اموزش کنترل تلوزیون dvd player و کولر رو با گوشی انجام بدم مثلا کد های ریموت رو تو اردونیو سوار کنم و با گوشی خودم مثلا با بلوتوث و ماژول ir receiver این کارو انجام بدم

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      خوب برای این کار حتی نیاز به آردوینو ندارید 🙂
      پروژه ای هست که با استفاده از خروجی هدفون گوشی میتونید این کار رو انجام بدید به سادگی

  12. Avatar for hamed hamed گفت:

    سلام
    تشکر میکنم از مطالب خوبتون و همچنین سایت عالیتون
    یه سوال داشتم
    اگه کد یکی از دکمه های کنترل را که روبروی سنسور گرفتیم و بدست آوردیم، (مثلا اگه کد دکمه ی خاموش، 6583529838 باشه) را بدست آوردیم و حالا بخواهیم با فرستنده ی مادون قرمز همون کد را بفرستیم و مثلا در همین گیرنده ای که در این آموزش ازش استفاده کردیم، دریافتش کنیم، باید چه کدی برای فرستادن اون کد بدست اومده با فرستنده انجام بدیم؟
    ممنون

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      همین کتابخانه کلاسی داره تحت عنوان irSend که میتونید با استفاده از اون داده ها رو ارسال کنید.

  13. Avatar for محمدرضا محمدرضا گفت:

    سلام
    ببخشید چطری می شه کد های هگز را به دست بیاریم؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      توی متن مقاله کد قسمت دوم رو ببینید
      با این کد میتونید داده های هگز رو به دست بیارید

  14. Avatar for َAmir َAmir گفت:

    سلام
    این مادون قرمز ها خوبی که دارن اینه که نویزی نیستن (یا حداقل من ندیدم که اینجوری باشه)… البته کدهای هگز متفاوت هم مزیدبرعلت هست…
    اما فکر نمی کنم که بیشتر از 10 متر جواب بدن … شما تست کردی چقدر برد داره ؟

    1. Avatar photo BLO OM گفت:

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

      حداکثرش 10 متره فکر کنم البته مطالبی رو که خوندم عرض میکنم وگرنه از لحاظ تست عملی که بخواید جواب بگیرید کمتره

      حداقل خودم برای همین پروژه باید حتما نزدیکش میگرفتم ( تقریبا زیر 1 متر در نظر بگیرید ) تا کار کنه.

      موفق باشید.

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

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