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

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

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

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

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

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

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

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

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

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

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

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

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

امواج فروسرخ یا 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 انجام دهد.
امیدواریم که این آموزش هم موردنظر شما مخاطبین سیسوگی عزیز قرار گرفته باشد.

حمایت از BLO OM

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

BLO OM
BLO OM

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

دیدگاه ها

29 دیدگاه

  • حسین
    ۱۳ دی ۱۴۰۰

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

    • Zeus ‌
      Zeus
      ۲۶ دی ۱۴۰۰

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

      • حسین
        ۲۶ دی ۱۴۰۰

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

        • Zeus ‌
          Zeus ‌
          ۲۴ بهمن ۱۴۰۰

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

  • ahmad
    ۱ مهر ۱۴۰۰

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

    • Zeus ‌
      Zeus
      ۲۵ مهر ۱۴۰۰

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

  • ابوالفضل
    ۲۷ اردیبهشت ۱۴۰۰

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

    • Zeus ‌
      zeus
      ۴ خرداد ۱۴۰۰

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

  • 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’

    • Zeus ‌
      zeus
      ۵ اردیبهشت ۱۴۰۰

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

  • مهدی
    ۲۴ فروردین ۱۴۰۰

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

    • Zeus ‌
      zeus
      ۵ خرداد ۱۴۰۰

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

    • abolfazl
      ۱۶ فروردین ۱۴۰۱

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

  • سعید
    ۹ بهمن ۱۳۹۹

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

  • محمد هادی
    ۱۴ مهر ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۲۳ آبان ۱۳۹۹

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

  • عرفان
    ۱ مرداد ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۲ مرداد ۱۳۹۹

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

  • MK
    ۲۵ تیر ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۲۸ تیر ۱۳۹۹

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

  • امیر
    ۱۴ اردیبهشت ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۲۷ اردیبهشت ۱۳۹۹

      خوب برای این کار حتی نیاز به آردوینو ندارید 🙂
      پروژه ای هست که با استفاده از خروجی هدفون گوشی میتونید این کار رو انجام بدید به سادگی
      https://www.youtube.com/watch?v=xyeFf42uE9M

  • hamed
    ۸ فروردین ۱۳۹۹

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

    • Zeus ‌
      زئوس Zeus
      ۹ فروردین ۱۳۹۹

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

  • محمدرضا
    ۱۵ اسفند ۱۳۹۸

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

    • Zeus ‌
      زئوس Zeus
      ۱۶ اسفند ۱۳۹۸

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

  • َAmir
    ۴ شهریور ۱۳۹۸

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

    • BLO OM
      BLO OM
      ۴ شهریور ۱۳۹۸

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

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

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

      موفق باشید.

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

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

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

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

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

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

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک