ماژول فرستنده گیرنده IR یکی از پر استفاده ترین ماژولهای الکترونیکی است که به راحتی میتوانید با استفاده از آن ارتباط بین دستگاههای الکترونیکی خود و یا کنترل از راه دور داشته باشید. این ماژول دارای دو قسمت فرستنده و گیرنده است که به طور جداگانه عمل میکنند. ماژول فرستنده IR، اطلاعات را از طریق نور قرمز فرستاده و ماژول گیرنده IR این اطلاعات را دریافت میکند و سپس با تجزیه و تحلیل آن، دستورات مربوط به کنترل دستگاهها را اجرا میکند. در این آموزش ۴ پروژه ساده و کاربردی را با ماژول فرستنده گیرنده مادون قرمز IR و آردوینو پیاده سازی میکنیم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
ماژول مادون قرمز فرستنده گیرنده
سنسورهای مادون قرمز Infrared sensors به عنوان یکی از محبوبترین انواع سنسورهای الکترونیکی، در بسیاری از دستگاههای الکترونیکی و خودروها استفاده میشوند. این سنسورها از اشعه مادون قرمز برای تشخیص و اندازهگیری مسافت و یا شناسایی اشیا استفاده میکنند. در سنسورهای مادون قرمز، با استفاده از دیودهایی که قادر به تولید اشعه مادون قرمز هستند، پس از ایجاد این اشعهها، با استفاده از یک فرستنده و یک گیرنده، تابش این اشعهها تشخیص داده میشود. سپس این سیگنالها به میکروکنترلر یا پردازنده دیگری ارسال میشود تا اطلاعات لازم برای کاربرد خاصی که قرار است سنسور در آن محیط استفاده شود، استخراج شود. از ماژول فرستنده و گیرنده مادون قرمز میتوان به ماژول تشخیص شعله که یک گیرنده مادون قرمز است، اشاره کرد. فرکانس کاری ماژول فرستنده گیرنده IR بسته به نوع مصرف در محدودههای مختلفی است. موارد استفاده در رباتهای مسیریاب و تعقیب خط است.
پروژه ۱: کنترل یک LED با کنترل از راه دور
در این پروژه، با استفاده از ماژول فرستنده گیرنده IR، میتوانید یک LED را به صورت بیسیم روشن و خاموش کنید. برای این منظور، ابتدا یک LED به پین ۱۳ میکروکنترلر متصل کنید. سپس کد زیر را در محیط آردوینو نوشته و روی میکروکنترلر آپلود کنید.
#include <IRremote.h> int receiver = 2; int LED = 13; IRrecv irrecv(receiver); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(LED, OUTPUT); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == 0xFFA25D) { digitalWrite(LED, HIGH); } else if (results.value == 0xFF629D) { digitalWrite(LED, LOW); } irrecv.resume(); } }
در این کد، ماژول گیرنده IR به پین ۲ متصل شده است و LED به پین ۱۳. با اجرای کد، ماژول گیرنده IR منتظر دریافت دستور از ماژول فرستنده است. در صورتی که دستوری با مقدار ۰xFFA25D دریافت شود، LED روشن میشود و در صورتی که دستوری با مقدار ۰xFF629D دریافت شود، LED خاموش میشود. حال برای فرستادن دستور از راه دور، میتوانید از یک کنترلکننده IR مانند کنترلکننده تلویزیون استفاده کنید. با فشردن کلید مناسب برروی کنترلکننده، دستور مربوطه به ماژول گیرنده ارسال شده و بسته به دستور دریافت شده، LED روشن یا خاموش میشود.
پروژه ۲: کنترل سرو موتور با کنترل از راه دور
در این پروژه، با استفاده از ماژول فرستنده گیرنده IR، میتوانید یک سروموتور را به صورت بیسیم کنترل کنید. برای این منظور، ابتدا یک سروموتور را به میکروکنترلر متصل کنید. سپس کد زیر را در محیط آردوینو نوشته و روی میکروکنترلر آپلود کنید.
#include <IRremote.h> #include <Servo.h> int receiver = 2; int servoPin = 9; IRrecv irrecv(receiver); decode_results results; Servo myservo; void setup() { Serial.begin(9600); irrecv.enableIRIn(); myservo.attach(servoPin); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == 0xFFA857) { myservo.write(0); } else if (results.value == 0xFFE01F) { myservo.write(90); } else if (results.value == 0xFF906F) { myservo.write(180); } irrecv.resume(); } }
در این کد، ماژول گیرنده IR به پین ۲ متصل شده است و سروموتور به پین ۹. با اجرای کد، ماژول گیرنده IR منتظر دریافت دستور از ماژول فرستنده است. در صورتی که دستوری با مقدار ۰xFFA857 دریافت شود، سروموتور به زاویه ۰ درجه، در صورتی که دستوری با مقدار ۰xFFE01F دریافت شود، سروموتور به زاویه ۹۰ درجه و در صورتی که دستوری با مقدار ۰xFF906F دریافت شود، سروموتور به زاویه ۱۸۰ درجه میرود. حال برای فرستادن دستور از راه دور، میتوانید از کنترلکننده IR استفاده کنید. با فشردن کلید مناسب برروی کنترلکننده، دستور مربوطه به ماژول گیرنده ارسال شده و سروموتور بسته به دستور دریافت شده حرکت میکند.
پروژه ۳: کنترل لامپ با کنترل از راه دور
در این پروژه، با استفاده از ماژول فرستنده گیرنده IR، میتوانید یک لامپ را به صورت بیسیم کنترل کنید. برای این منظور، ابتدا یک لامپ را به میکروکنترلر متصل کنید. سپس کد زیر را در محیط آردوینو نوشته و روی میکروکنترلر آپلود کنید.
#include <IRremote.h> int receiver = 2; int ledPin = 13; IRrecv irrecv(receiver); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(ledPin, OUTPUT); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == 0xFF629D) { digitalWrite(ledPin, HIGH); } else if (results.value == 0xFF22DD) { digitalWrite(ledPin, LOW); } irrecv.resume(); } }
در این کد، ماژول گیرنده IR به پین ۲ متصل شده است و لامپ به پین ۱۳. با اجرای کد، ماژول گیرنده IR منتظر دریافت دستور از ماژول فرستنده است. در صورتی که دستوری با مقدار ۰xFF629D دریافت شود، لامپ روشن میشود و در صورتی که دستوری با مقدار ۰xFF22DD دریافت شود، لامپ خاموش میشود. حال برای فرستادن دستور از راه دور، میتوانید از کنترلکننده IR استفاده کنید. با فشردن کلید مناسب برروی کنترلکننده، دستور مربوطه به ماژول گیرنده ارسال شده و لامپ بسته به دستور دریافت شده روشن یا خاموش میشود.
پروژه ۴: کنترل دستگاه الکتریکی با ریموت IR
در این پروژه، با استفاده از ماژول فرستنده گیرنده IR، میتوانید دستگاههای الکتریکی خود را به صورت بیسیم کنترل کنید. برای این منظور، ابتدا دستگاه الکتریکی مورد نظر خود را به یک رله متصل کنید. سپس کد زیر را در محیط آردوینو نوشته و روی میکروکنترلر آپلود کنید.
#include <IRremote.h> int receiver = 2; int relayPin = 8; IRrecv irrecv(receiver); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(relayPin, OUTPUT); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == 0xFF10EF) { digitalWrite(relayPin, HIGH); } else if (results.value == 0xFF5AA5) { digitalWrite(relayPin, LOW); } irrecv.resume(); } }
در این کد، ماژول گیرنده IR به پین ۲ متصل شده است و رله به پین ۸. با اجرای کد، ماژول گیرنده IR منتظر دریافت دستور از ماژول فرستنده است. در صورتی که دستوری با مقدار ۰xFF10EF دریافت شود، رله روشن میشود و در صورتی که دستوری با مقدار ۰xFF5AA5 دریافت شود، رله خاموش میشود. حال برای فرستادن دستور از راه دور، میتوانید از کنترلکننده IR استفاده کنید. با فشردن کلید مناسب روی کنترلکننده، دستور مربوطه به ماژول گیرنده ارسال شده و دستگاه الکتریکی بسته به دستور دریافت شده روشن یا خاموش میشود.
وسایل مورد نیاز
ماژول فرستنده گیرنده مادون قرمز IR-FC51
برد آردوینو ARDUINO UNO R3 با تراشه R3 اورجینال
جمع بندی
در این مقاله، از ماژول فرستنده گیرنده IR برای کنترل دستگاههای الکتریکی استفاده کردیم. با استفاده از این ماژول، میتوانید به صورت بیسیم دستگاههای الکتریکی خود را کنترل کنید. همچنین، با ارتباط دادن این ماژول با میکروکنترلر، میتوانید دستگاههای الکتریکی خود را به صورت اتوماتیک و بدون نیاز به دسترسی فیزیکی به دستگاه، کنترل کنید. از آنجا که این ماژول به راحتی قابل استفاده است و میتواند به عنوان یک راهحل ساده و ارزان جهت کنترل دستگاههای الکتریکی استفاده شود، توصیه میشود تا در پروژههای الکترونیکی خود از این ماژول استفاده کنید. درضمن این ماژول در سایر پروژههای رباتیک، کنترل دستگاههای تهویه، کنترل اتومبیلهای برقی و … قابل استفاده است. در صورت تمایل به توسعه پروژههای بیشتر با استفاده از این ماژول، میتوانید به منابع آموزشی موجود در اینترنت مراجعه کنید. همچنین، با مطالعه دیتاشیت این ماژول، میتوانید به صورت دقیقتر با عملکرد آن آشنا شوید و از این ماژول بهره بیشتری ببرید.