آموزش کنترل LED با ریموت کنترل مادون قرمز برد آردوینو
محتویات
در این پروژه شما از یک گیرنده مادون قرمز (IR) و یک آردوینو برای کنترل 3 LED با یک کنترل از راه دور استفاده خواهید کرد. این پروژه برای استفاده مجدد از کنترل های از راه دور قدیمی یا دادن مقداری عملکردی به برخی از دکمه های کنترل از راه دور مفید است.
این پروژه به دو بخش تقسیم می شود:
- رمز گشایی سیگنال های IR ارسالی از کنترل
- انجام کار با سینگال های رمزگشایی شده
شما سیگنال های IR ارسال شده توسط کنترل از راه دور خود را رمزگشایی خواهید کرد
قطعات مورد نیاز
برای اجرای مرحله به مرحله این پروژه به قطعات زیر نیاز دارید.
- Arduino UNO
- برد بورد
- ریموت کنترل
- گیرنده IR (من از TSOP4838 استفاده خواهم کرد)
- 3 ال ای دی
- 3 مقاومت 220 اهم
- سیم های جامپر
معرفی گیرنده مادون قرمز (IR)
گیرنده مادون قرمز قطعه ای است که در شکل زیر نشان داده شده است. این قطعه TSOP4838 است.
پین های گیرنده مادون قرمز:
- پین اول: Vout
- پین دوم: GND
- پین سوم: Vcc
هنگامی که کنترل از راه دور خود را فشار می دهید، کنترل سیگنال های مدوله شده مادون قرمز ارسال می کند. این سیگنال ها حاوی اطلاعاتی هستند که گیرنده شما آن ها را جمع آوری می کند.
هر دکمه اطلاعات خاصی را ارسال می کند. بنابراین، ما می توانیم آن اطلاعات را به یک دکمه خاص اختصاص دهیم.
رمز گشایی سیگنال کنترل مادون قرمز
در این قسمت از پروژه باید سیگنال های IR مرتبط با هر دکمه را رمزگشایی کنید.
گیرنده IR را مطابق شماتیک زیر وصل کنید.
برای کنترل گیرنده IR، باید کتابخانه IRremote را در Arduino IDE نصب کنید.
به Sketch > Include Library > Manage Libraries بروید. سپس IRremote را جستجو کنید.
کتابخانه ای که توسط shirriff ساخته شده است را نصب کنید.
کد زیر را در آردوینو IDE خود کپی کرده و در برد آردوینو خود آپلود کنید. مطمئن شوید که برد و پورت COM مناسب را انتخاب کرده اید.
#include <IRremote.h> const int RECV_PIN = 11; void setup() { Serial.begin(9600); IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // تعریف گیرنده } void loop() { if (IrReceiver.decode()) { // بررسی وجود دیتا جدید // فیلتر کردن پروتکل های نامربوط if (IrReceiver.decodedIRData.protocol == UNKNOWN) { IrReceiver.resume(); // ادامه دریافت اطلاعات return; // خروج از حلقه } // چاپ کردن داده های معتبر IrReceiver.printIRResultShort(&Serial); // چاپ کردن اطلاعات کامل IrReceiver.resume(); // ادامه دریافت اطلاعات } delay(100); }
بعد از آپلود این کد، سریال مانیتور را با نرخ باود 9600 باز کنید.
در این پروژه شما می خواهید 3 ال ای دی را کنترل کنید. 6 کلید روی کنترل از راه دور برای کارهای زیر انتخاب کنید:
- LED1 – روشن
- LED1 – خاموش
- LED2 – روشن
- LED2 – خاموش
- LED3 – روشن
- LED3 – خاموش
به عنوان مثال، دکمه شماره 1 کنترل از راه دور خود را فشار دهید. شما باید اطلاعاتی در مورد آن کلید در مانیتور سریال دریافت کنید. مقدار “command” را برای آن کلید ذخیره کنید.
همین کار را برای دکمه های دیگر انجام دهید.
کد مربوط به هر دکمه را یادداشت کنید، زیرا بعداً به آن اطلاعات نیاز خواهید داشت.
مدار نهایی کنترل LED با کنترل IR
در این قسمت مدار را با سه LED می سازید که با ریموت کنترل می شود.
تمام قطعات را با دنبال کردن شماتیک های زیر مونتاژ کنید.
کد کامل آردوینو کنترل GPIO با ریموت
اکنون، مقادیر دستوری را که در مرحله قبل گرفتهاید، برای هر دکمه وارد کنید. باید آنها را در کد کامل جایگذاری کنید. کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است.
برای تغییر کد متناسب با کنترل خود، مقادیر بدست آورده شده در قسمت قبلی را در قسمت case های مختلف جایگزین کنید. به عنوان مثال من برای کلید خاموش کردن LED1 مقدار 0x02 را دریافت کردم. بنابراین این مقدار را به این شکل به کد اضافه میکنم.
case 0x02: // کد خاموش کردن LED1 digitalWrite(greenPin, HIGH); Serial.println("LED OFF"); break;
پس از افزودن دستورات برای هر کلید در کد کامل، می توانید آن را در Arduino IDE خود آپلود کنید. در پایان می توانید هر LED را به صورت جداگانه با استفاده از دکمه های کنترل از راه دور کنترل کنید.
این یک پروژه عالی برای یادگیری در مورد گیرنده IR است. امکانات بی پایانی برای کارهایی که می توانید با آن انجام دهید وجود دارد.
به عنوان مثال، می توانید آن LED ها را با یک رله برای کنترل لوازم خانه خود جایگزین کنید. یا یک دکمه برای خاموش یا روشن کردن همه LED ها به طور همزمان و … اختصاص بدهید.
خیلی از کنترل ها دارای دکمه های خیلی زیادی هستند که از آنها استفاده نمیکنید، پس میتوانید آن ها را برای یک کار مفید اختصاص بدهید!
موارد موجود در فایل : سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود