آموزش آردوینوپروژه های آردوینو

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

ارتباطا مادون قرمز (IR) یک فناوری بی سیم پر استفاده و آسان برای پیاده سازی است که کاربردهای مفید زیادی دارد. برجسته ترین نمونه استفاده از مادون قرمز در زندگی روزمره ما، کنترل از راه دور تلویزیون/فیلم، سنسورهای حرکتی و دماسنج های مادون قرمز هستند.

پروژه های جالب آردوینو زیادی وجود دارد که از ارتباطات IR استفاده می کنند. با یک فرستنده و گیرنده مادون قرمز ساده، می توانید ربات های کنترل از راه دور، سنسورهای فاصله، مانیتور ضربان قلب، کنترل از راه دور دوربین DSLR، کنترل از راه دور تلویزیون و بسیاری موارد دیگر بسازید.

در این آموزش ابتدا توضیح خواهم داد که مادون قرمز چیست و چگونه کار می کند. سپس به شما نشان خواهم داد که چگونه یک گیرنده IR و ریموت را به آردوینو متصل کنید. من همچنین به شما نشان خواهم داد که چگونه از کنترل از راه دور مادون قرمز (مانند کنترل تلویزیون خود) برای کنترل چیزهای متصل به آردوینو استفاده کنید

قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

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

تابش مادون قرمز شکلی از نور است که شبیه نوری است که در اطراف خود می بینیم. تنها تفاوت بین نور IR و نور مرئی در فرکانس و طول موج است. تابش مادون قرمز خارج از محدوده نور مرئی قرار دارد، بنابراین انسان نمی تواند آن را ببیند:

آموزش آردوینو IR - نمودار طیف الکترومغناطیسی

از آنجایی که IR نوعی نور است، ارتباط IR نیاز به یک خط دید از گیرنده به فرستنده دارد. این نور نمی تواند از طریق دیوارها یا سایر مواد مانند WiFi یا بلوتوث منتقل شود.

ریموت و گیرنده مادون قرمز چطور کار میکنند؟

یک سیستم ارتباطی معمولی مادون قرمز به یک فرستنده IR و یک گیرنده IR نیاز دارد. فرستنده درست مانند یک LED استاندارد به نظر می رسد، با این تفاوت که به جای طیف مرئی، نور را در طیف IR تولید می کند. اگر نگاهی به جلوی کنترل تلویزیون بیندازید، LED فرستنده IR را خواهید دید:

ریموت و گیرنده مادون قرمز چطور کار میکنند؟

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

آموزش راه دور IR آردوینو - دو دیود گیرنده IR

مدولاسیون سیگنال مادون قرمز

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

در مدولاسیون سیگنال IR، یک رمزگذار روی کنترل از راه دور IR یک سیگنال باینری را به یک سیگنال الکتریکی مدوله شده تبدیل می کند. این سیگنال الکتریکی به LED فرستنده ارسال می شود. LED فرستنده سیگنال الکتریکی مدوله شده را به سیگنال نور مادون قرمز مدوله شده تبدیل می کند. سپس گیرنده IR سیگنال نور مادون قرمز را دمدوله کرده و قبل از ارسال اطلاعات به میکروکنترلر، آن را به باینری تبدیل می کند:

مدولاسیون سیگنال مادون قرمز

سیگنال IR مدوله شده مجموعه ای از پالس های نور مادون قرمز است که با فرکانس بالا به نام فرکانس حامل روشن و خاموش می شوند. فرکانس حامل مورد استفاده توسط اکثر فرستنده ها 38 کیلوهرتز است، زیرا در طبیعت نادر است و بنابراین می توان آن را از نویز محیط متمایز کرد. به این ترتیب گیرنده IR متوجه می شود که سیگنال 38 کیلوهرتز از فرستنده ارسال شده است و از محیط اطراف دریافت نشده است.

دیود گیرنده تمام فرکانس های نور IR را تشخیص می دهد، اما دارای یک فیلتر باند گذر است که تنها فرکانس 38 کیلوهرتز را عبور می دهد. سپس سیگنال مدوله شده را با یک پیش تقویت کننده تقویت می کند و قبل از ارسال آن به میکروکنترلر، آن را به سیگنال باینری تبدیل می کند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

اتصال گیرنده مادون قرمز به آردوینو

انواع مختلفی از گیرنده های IR وجود دارد، برخی به صورت جداگانه هستند و برخی بر روی یک برد نصب می شوند. ما از گیرنده IR HX1838 استفاده میکنیم. تمام گیرنده های IR دارای سه پایه هستند: سیگنال، زمین و Vcc.

اتصال گیرنده مادون قرمز به آردوینو

برای اتصال دیود گیرنده، آن را به شکل زیر به آردوینو متصل کنید.

اتصال گیرنده مادون قرمز به آردوینو

برنامه نویسی گیرنده IR

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

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

برای نصب کتابخانه از فایل ZIP، نرم افزار Arduino IDE را باز کنید، سپس به Sketch > Include Library > Add .ZIP Library بروید، سپس فایل ZIP IRremote را که از لینک بالا دانلود کرده اید انتخاب کنید.

برای پیدا کردن کد هر دکمه کنترل، کد زیر را در برد آردوینو آپلود کنید. سریال مانیتور را باز کنید و هر دکمه را فشار دهید کد مخصوص آن در سریال مانیتور چاپ میشود.

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irrecv.blink13(true);
}

void loop(){
  if (irrecv.decode(&results)){
        Serial.println(results.value, HEX);
        irrecv.resume();
  }
}

گیرنده IR از راه دور آردوینو - یافتن کدهای HEX از راه دور

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

 Key  Code
 CH-  0xFFA25D
 CH  0xFF629D
 CH+  0xFFE21D
 <<  0xFF22DD
 >>  0xFF02FD
 >||  0xFFC23D
 –  0xFFE01F
 +  0xFFA857
 EQ  0xFF906F
 100+  0xFF9867
 200+  0xFFB04F
 0  0XFF6897
 1  0xFF30CF
 2  0xFF18E7
 3  0xFF7A85
 4  0xFF10EF
 5  0xFF38C7
 6  0xFF5AA5
 7  0xFF42BD
 8  0xFF4AB5
 9  0xFF52AD

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

اکنون به شما یک نمایش ساده از نحوه استفاده از ریموت کنترل IR برای کنترل پین های آردوینو را نشان خواهم داد. در این مثال، هنگامی که دکمه خاصی فشار داده می شود، یک LED روشن می کنیم. شما می توانید به راحتی هر کد را برای انجام کارهایی مانند کنترل سروو موتور ها یا فعال کردن رله ها اختصاص دهید.

مدار مثال دارای گیرنده IR متصل به آردوینو است که در آن یک LED قرمز به پایه 10 و یک LED سبز به پایه 11 متصل است:

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

کد این پروژه با فشردن دکمه «5» به مدت 2 ثانیه پین ​​دیجیتال 10 را HIGH و با فشار دادن دکمه «2» پین دیجیتال 11 را HIGH میکند.کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است.

تا اینجا به خواص تابش مادون قرمز و چگونگی ارتباط بین فرستنده و گیرنده پرداخته ایم. ما دیدیم که چگونه کدهای کلید IR را برای یک کنترل از راه دور شناسایی کنیم. در نهایت به شما نشان دادم که چگونه خروجی آردوینو را با یک ریموت، کنترل کنید. اگر سوالی دارید یا مشکلی در تنظیم این پروژه دارید حتما در نظرات به ما اطلاع دهید!

موارد موجود در فایل : فایل سورس کامل

4.4 (12 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

17 نظر

  1. سلام این ارور رو میده sketch_nov۱۹b.ino:1:22: fatal error: IRremote.h: No such file or directory

    1. سلام عزیز
      کتابخانه را نصب کنید.

  2. سلام من دقیقا از همون مدل کنترل شما استفاده کردم ولی همش مقدار FFFFFFFF دریافت می کنم مشکل چیه ؟

    1. منم همینطور
      یا برای یک دکمه کد های مختلفی میاد یا یا همش fffffffff

  3. من دقیقا همین کار هایی که گفتید رو انجام دادم مرحله به مرحله اما هرچقدر دکمه های روی ریموت رو میزنم کد مربوط به ان دکمه بر روی سریال مونیتور برای من نمیاد گیرنده ام مدلش vs1838B هست آیا ربطی به این موضوع داره؟

    1. سلام عزیز
      ارور دریافتی را ارسال کنید.

    1. سلام عزیز
      توضیحات پروژه درخواستی را در انجمن اعلام کنید

  4. سلام استاد کدی هست که آردوینو به عنوان فرستنده عمل کنه نه گیرنده؟

    1. سلام عزیز
      بله میشه هرکاری با آردوینو انجام بدید

  5. سلام با توجه به تغییر کتابخانه من از این کد استفاده کردم اما صفر فقط مشاهده میشه
    #include

    int IRpin = 7;
    IRrecv irrecv(IRpin);

    void setup()
    {
    Serial.begin(9600);
    irrecv.enableIRIn(); // Start the receiver
    }

    void loop()
    {
    if (irrecv.decode())
    {
    Serial.println(irrecv.decodedIRData.decodedRawData); // Print the Serial
    irrecv.resume(); // Receive the next value
    }
    }

  6. سلام ، ‌‌ ‌‌‌‌‌‌خسته نباشید.
    من سریال مانیتور رو که باز می کنم دکمه ی کنترل رو می زنم دو الی سه تا کد دریافت می کنم .
    وکد ها هم متغیر هست یعنی همون دکمه باز دفعه ی کد متفاوتی داره .

    1. سلام عزیز
      بسیار عالی، ممنون از اطلاع رسانی شما

  7. این کد پایه هاشو عوض کنم و روی برد nodemcu اپلود کنم کار میکنه؟

    1. سلام عزیز
      تست نکردیم باید خودتون تست کنید

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

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