ماژول گیرنده مادون قرمز
(Infrared Receiver Module)
تشخیص سیگنالهای ریموت کنترل
ماژول گیرنده مادون قرمز (IR Receiver Module) – رمزگشایی سیگنالهای ریموت کنترل
ماژول گیرنده مادون قرمز (IR Receiver Module) یک سنسور هوشمند برای دریافت و رمزگشایی سیگنالهای مادون قرمز است. این ماژول با فیلترینگ پیشرفته و مدار دمودولاتور داخلی، امکان دریافت دقیق سیگنالهای ریموت کنترل با فرکانس 38kHz را فراهم میکند. این ماژول مستقیماً سیگنال دیجیتال قابلخواندن توسط میکروکنترلرها تولید میکند و برای پروژههای کنترل از راه دور، اتوماسیون خانگی و سیستمهای ارتباط بیسیم ایدهآل است.
ویژگیهای کلیدی و مزایا
-
دمودولاسیون داخلی: خروجی سیگنال دیجیتال تمیز بدون نیاز به مدار اضافه
-
فیلترینگ هوشمند: مقاوم در برابر نور محیط و نویزهای الکتریکی
-
سازگاری جهانی: پشتیبانی از اکثر ریموتهای کنترلی بازار
-
حساسیت بالا: دریافت سیگنال از فاصله تا 10 متر
-
مصرف انرژی بسیار پایین: فقط 0.5mA تا 1.5mA جریان مصرف
-
نصب فوقالعاده آسان: تنها 3 پین ساده
-
قیمت بسیار مقرون به صرفه: ارزانترین راه برای افزودن قابلیت IR
-
سازگاری کامل: کار با آردوینو، رزبری پای، ESP، STM32 و …
مشخصات فنی کامل
| پارامتر | مشخصات فنی |
|---|---|
| مدلهای متداول | VS1838B، TSOP1738، TSOP38238، TSOP4838 |
| ولتاژ کاری | 2.7V تا 5.5V DC (بهینه 5V) |
| جریان مصرف | 0.35mA تا 1.5mA (بسته به مدل) |
| فرکانس مرکزی | 38kHz (معمولاً 36kHz تا 40kHz قابل تشخیص) |
| پینهای خروجی | 3 پین: OUT، VCC، GND |
| نوع خروجی | دیجیتال (Active LOW) |
| فاصله دریافت | تا 12 متر (در شرایط ایدهآل) |
| زاویه دریافت | ±45 درجه |
| زمان پاسخ | کمتر از 100 میکروثانیه |
| دمای کاری | -25 تا +85 درجه سانتیگراد |
| طول موج بهینه | 940 نانومتر |
| پکیج | 3-Pin SIP (Through-hole یا SMD) |
| ابعاد ماژول | 18mm × 10mm × 7mm (با PCB) |
پینهای ماژول گیرنده IR
| پین ماژول | نام | رنگ استاندارد | عملکرد | نکات اتصال |
|---|---|---|---|---|
| 1 (پین 1) | OUT | زرد/سبز | خروجی دیجیتال | به پین دیجیتال میکروکنترلر |
| 2 (پین 2) | GND | سیاه/آبی | زمین (منفی) | به GND سیستم |
| 3 (پین 3) | VCC | قرمز/نارنجی | تغذیه مثبت | به 3.3V یا 5V |
نحوه کارکرد ماژول گیرنده IR
مراحل پردازش داخلی:
-
دریافت نور: گیرنده نور مادون قرمز را از طریق لنز پلاستیکی دریافت میکند.
-
فیلتر نوری: فیلتر IR-Pass فقط نور با طول موج 940nm را عبور میدهد.
-
فوتودیود: نور به سیگنال الکتریکی ضعیف تبدیل میشود.
-
پیشتقویت: سیگنال توسط آمپلیفایر داخلی تقویت میشود.
-
دمودولاتور: مدار Tuned به 38kHz سیگنال مدوله شده را دمودوله میکند.
-
فیلتر AGC: کنترل Gain خودکار برای تطبیق با شدت سیگنال.
-
مقایسهگر: سیگنال با آستانه مقایسه و به دیجیتال تبدیل میشود.
-
خروجی: سیگنال دیجیتال Active-LOW تولید میشود.
وضعیت خروجی:
-
بدون سیگنال: خروجی HIGH (ولتاژ نزدیک به VCC)
-
دریافت سیگنال: خروجی LOW (ولتاژ نزدیک به 0V)
-
پالسهای خروجی: دقیقاً معکوس سیگنال ارسالی
اتصال به آردوینو (پایهای)
سیمکشی ساده:
گیرنده IR پین 1 (OUT) ---> آردوینو D11 گیرنده IR پین 2 (GND) ---> آردوینو GND گیرنده IR پین 3 (VCC) ---> آردوینو 5V
کد پایه برای تست عملکرد:
// تست پایه گیرنده IR const int irReceiverPin = 11; // پین متصل به خروجی گیرنده void setup() { pinMode(irReceiverPin, INPUT); Serial.begin(9600); Serial.println("تست گیرنده IR"); Serial.println("-------------"); Serial.println("یک ریموت را به سمت گیرنده بگیرید"); Serial.println("و دکمهای را فشار دهید..."); } void loop() { int irState = digitalRead(irReceiverPin); if (irState == LOW) { Serial.println("سیگنال IR دریافت شد!"); // شمارش مدت زمان LOW بودن unsigned long pulseTime = 0; while (digitalRead(irReceiverPin) == LOW) { pulseTime++; delayMicroseconds(10); } Serial.print("مدت پالس: "); Serial.print(pulseTime * 10); Serial.println(" میکروثانیه"); Serial.println("-------------"); delay(200); // جلوگیری از تشخیص تکراری } delay(50); }
استفاده با کتابخانه IRremote (حرفهای)
نصب کتابخانه:
-
در Arduino IDE به Sketch > Include Library > Manage Libraries بروید
-
IRremote را جستجو و نصب کنید
-
یا از https://github.com/Arduino-IRremote/Arduino-IRremote دانلود کنید
کد کامل رمزگشایی ریموت:
// گیرنده IR با کتابخانه IRremote #include <IRremote.h> const int RECV_PIN = 11; // پین گیرنده IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); Serial.println("گیرنده IR با رمزگشایی آماده است"); Serial.println("--------------------------------"); Serial.println("دکمههای ریموت را فشار دهید..."); Serial.println(""); irrecv.enableIRIn(); // شروع دریافت irrecv.blink13(true); // چشمک LED پین 13 هنگام دریافت } void loop() { if (irrecv.decode(&results)) { // نمایش در سریال مانیتور serialPrintUint64(results.value, HEX); Serial.print(" ("); Serial.print(results.bits); Serial.println(" bits)"); // نمایش نوع پروتکل printProtocolType(results.decode_type); // نمایش اطلاعات RAW (برای تحلیل پیشرفته) if (results.decode_type == UNKNOWN) { Serial.println("پروتکل ناشناخته - نمایش داده RAW:"); Serial.print("تعداد نمونهها: "); Serial.println(results.rawlen); for (int i = 1; i < results.rawlen; i++) { Serial.print(results.rawbuf[i] * USECPERTICK, DEC); Serial.print(" "); } Serial.println(); } Serial.println("--------------------------------"); irrecv.resume(); // آمادهسازی برای دریافت بعدی } delay(100); } // تابع نمایش نوع پروتکل void printProtocolType(decode_type_t type) { Serial.print("پروتکل: "); switch(type) { case NEC: Serial.println("NEC (پرکاربردترین)"); break; case SONY: Serial.println("SONY"); break; case RC5: Serial.println("RC5 (Philips)"); break; case RC6: Serial.println("RC6"); break; case DISH: Serial.println("DISH"); break; case SHARP: Serial.println("SHARP"); break; case JVC: Serial.println("JVC"); break; case SAMSUNG: Serial.println("SAMSUNG"); break; case LG: Serial.println("LG"); break; case WHYNTER: Serial.println("WHYNTER"); break; case PANASONIC: Serial.println("PANASONIC"); break; case DENON: Serial.println("DENON"); break; case UNKNOWN: Serial.println("ناشناخته"); break; } }
کاربردهای عملی ماژول گیرنده IR
۱. کنترل از راه دور لوازم خانگی:
-
کنترل TV، کولر، DVD پلیر با آردوینو
-
ساخت ریموت کنترل جهانی
-
اتوماسیون سیستمهای صوتی-تصویری
۲. سیستمهای امنیتی و کنترل دسترسی:
-
ریموت کنترل دربهای گاراژ
-
سیستمهای آلارم شخصی
-
کنترل دسترسی با کارت IR
۳. رباتیک و کنترل حرکت:
-
کنترل ربات با ریموت TV
-
سیستمهای ریموت کنترل صنعتی
-
کنترل خودروهای اسباببازی
۴. اتوماسیون خانگی هوشمند:
-
کنترل روشنایی هوشمند
-
پردههای برقی کنترل از راه دور
-
سیستم آبیاری برنامهریزی شده
۵. پروژههای آموزشی و آزمایشگاهی:
-
آموزش اصول ارتباط دیجیتال
-
آزمایشهای رمزگشایی سیگنال
-
کارگاههای الکترونیک عملی
۶. صنعت و نمایشگاهها:
-
کنترل تجهیزات نمایشگاهی
-
سیستمهای ارائه تعاملی
-
کنترل دستگاههای تبلیغاتی
پروژه عملی: کنترل ۸ کانال با ریموت TV
قطعات مورد نیاز:
-
گیرنده IR ماژول
-
آردوینو Uno
-
ماژول رله ۸ کانال
-
ریموت کنترل TV (هر برندی)
-
برد بورد و سیمهای جامپر
-
منبع تغذیه 5V 2A
کد کنترل رله با ریموت:
// کنترل ۸ رله با ریموت TV #include <IRremote.h> const int RECV_PIN = 11; const int relayPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; const int numRelays = 8; IRrecv irrecv(RECV_PIN); decode_results results; // کدهای دکمههای ریموت (با توجه به ریموت شما تنظیم شود) unsigned long buttonCodes[] = { 0x00FF6897, // دکمه 0 - تمام رلهها خاموش 0x00FF30CF, // دکمه 1 - رله 1 0x00FF18E7, // دکمه 2 - رله 2 0x00FF7A85, // دکمه 3 - رله 3 0x00FF10EF, // دکمه 4 - رله 4 0x00FF38C7, // دکمه 5 - رله 5 0x00FF5AA5, // دکمه 6 - رله 6 0x00FF42BD, // دکمه 7 - رله 7 0x00FF4AB5, // دکمه 8 - رله 8 0x00FF52AD // دکمه 9 - تمام رلهها روشن }; void setup() { Serial.begin(9600); // تنظیم پینهای رله به عنوان خروجی for (int i = 0; i < numRelays; i++) { pinMode(relayPins[i], OUTPUT); digitalWrite(relayPins[i], HIGH); // رلهها معمولاً با LOW فعال میشوند } irrecv.enableIRIn(); Serial.println("سیستم کنترل رله با ریموت آماده"); Serial.println("از دکمههای 0-9 ریموت استفاده کنید"); Serial.println("----------------------------------"); } void loop() { if (irrecv.decode(&results)) { unsigned long receivedCode = results.value; Serial.print("کد دریافتی: 0x"); Serial.println(receivedCode, HEX); // بررسی کد دریافتی bool codeFound = false; // دکمه 0: تمام رلهها خاموش if (receivedCode == buttonCodes[0]) { allRelaysOff(); Serial.println("همه رلهها خاموش شدند"); codeFound = true; } // دکمه 9: تمام رلهها روشن else if (receivedCode == buttonCodes[9]) { allRelaysOn(); Serial.println("همه رلهها روشن شدند"); codeFound = true; } // دکمههای 1-8: کنترل تکی رلهها else { for (int i = 1; i <= 8; i++) { if (receivedCode == buttonCodes[i]) { toggleRelay(i - 1); // اندیس آرایه Serial.print("رله "); Serial.print(i); Serial.println(" تغییر وضعیت داد"); codeFound = true; break; } } } if (!codeFound) { Serial.println("کد نامعتبر است"); } Serial.println("----------------------------------"); irrecv.resume(); } delay(100); } // توابع کمکی void allRelaysOff() { for (int i = 0; i < numRelays; i++) { digitalWrite(relayPins[i], HIGH); // رله غیرفعال } } void allRelaysOn() { for (int i = 0; i < numRelays; i++) { digitalWrite(relayPins[i], LOW); // رله فعال } } void toggleRelay(int relayIndex) { if (relayIndex >= 0 && relayIndex < numRelays) { digitalWrite(relayPins[relayIndex], !digitalRead(relayPins[relayIndex])); } }
آموزش کالیبراسیون و یافتن کدهای ریموت
مراحل یافتن کدهای ریموت شخصی:
-
کد Receiver Test را اجرا کنید
-
هر دکمه ریموت را فشار دهید
-
کد HEX نمایش داده شده را یادداشت کنید
-
کدها را در آرایه buttonCodes قرار دهید
کد داینامیک برای یافتن کدها:
// یافتن خودکار کدهای ریموت #include <IRremote.h> const int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); Serial.println("گیرنده IR در حالت شناسایی کد"); Serial.println("هر دکمه ریموت را فشار دهید..."); Serial.println("کدها در زیر نمایش داده میشوند:"); Serial.println("--------------------------------"); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { if (results.value != 0xFFFFFFFF) { // کد تکرار را نادیده بگیر Serial.print("کد جدید: 0x"); Serial.print(results.value, HEX); Serial.print(" | نوع: "); switch(results.decode_type) { case NEC: Serial.print("NEC"); break; case SONY: Serial.print("SONY"); break; case RC5: Serial.print("RC5"); break; case RC6: Serial.print("RC6"); break; default: Serial.print("سایر"); } Serial.print(" | بیتها: "); Serial.println(results.bits); } irrecv.resume(); } delay(100); }
مشکلات متداول و راهحلها
🔧 جدول عیبیابی:
| مشکل | علت احتمالی | راهحل |
|---|---|---|
| عدم دریافت سیگنال | فاصله زیاد، باتری ضعیف ریموت | فاصله را کاهش دهید، باتری ریموت را عوض کنید |
| دریافت نویز | نور مستقیم خورشید یا لامپ | از نور مستقیم دور کنید، فیلتر اضافه کنید |
| کدهای نادرست | پروتکل ناسازگار | کتابخانه IRremote را آپدیت کنید |
| فاصله کم | زاویه نامناسب | گیرنده را مستقیماً به ریموت نشانه بروید |
| مصرف بالا | اتصال اشتباه VCC | ولتاژ را بررسی کنید (بیشتر از 5.5V نباشد) |
| پاسخ آهسته | پردازش سنگین | کد را بهینه کنید، وقفهها را کاهش دهید |
نکات مهم برای عملکرد بهینه:
-
خازن فیلتر: 100μF بین VCC و GND نزدیک گیرنده
-
مقاومت Pull-up: 10kΩ بین OUT و VCC برای سیگنال تمیزتر
-
دور از نور: از نور مستقیم لامپهای LED و خورشید دور نگه دارید
-
زاویه مناسب: گیرنده را عمود بر جهت ریموت نصب کنید
-
فاصله: حداکثر 8 متر برای عملکرد مطمئن
پکیجهای خرید پیشنهادی نیکی سایت
پکیج اقتصادی (برای شروع):
-
ماژول گیرنده IR VS1838B (3 عدد)
-
آردوینو Nano
-
ریموت کنترل کوچک
-
سیمهای جامپر 20cm
-
مقاومت 10kΩ (5 عدد)
-
خازن 100μF (2 عدد)
پکیج حرفهای (اتوماسیون خانگی):
-
ماژول گیرنده IR با برد بالا (5 عدد)
-
آردوینو Mega (برای کانالهای بیشتر)
-
ماژول رله 16 کانال
-
ریموت کنترل پیشرفته با LCD
-
منبع تغذیه 5V 10A
-
جعبه مخصوص نصب DIN rail
پکیج آموزشی (برای مدارس):
-
ماژول گیرنده IR (10 عدد)
-
آردوینو Uno (5 عدد)
-
ریموتهای مختلف برندها (5 عدد)
-
برد بورد 830 نقطه (5 عدد)
-
کتاب پروژههای عملی IR
-
DVD آموزش ویدیویی فارسی
پکیج صنعتی:
-
ماژول گیرنده IR ضد نویز
-
مبدل Level Shifter 3.3V/5V
-
کابلهای شیلددار 2 متری
-
محفظه IP65 ضد آب و گردوغبار
-
کابل رابط صنعتی 5-Pin
مقایسه مدلهای مختلف گیرنده IR
| مدل | فرکانس | ولتاژ | جریان | برد | ویژگیها |
|---|---|---|---|---|---|
| TSOP1738 | 38kHz | 2.5-5.5V | 0.5mA | 10m | کلاسیک، قابل اطمینان |
| VS1838B | 38kHz | 2.7-5.5V | 0.8mA | 12m | ارزان، متداول در بازار |
| TSOP38238 | 38kHz | 2.5-5.5V | 0.35mA | 15m | کم مصرف، حساسیت بالا |
| TSOP4838 | 38kHz | 2.5-5.5V | 0.5mA | 12m | مقاوم در برابر نویز |
| TL1838 | 38kHz | 2.5-5.5V | 0.7mA | 10m | جایگزین ارزان |
| IRM-3638 | 38kHz | 2.7-5.5V | 0.8mA | 12m | کیفیت بالا، قیمت مناسب |
پروتکلهای پشتیبانی شده
پروتکلهای اصلی:
-
NEC: پرکاربردترین (سونی، پاناسونیک، شارپ)
-
SONY: 12، 15، 20 بیتی
-
RC5: فیلیپس (14 بیت)
-
RC6: فیلیپس (20 بیت)
-
DISH: شبکه دیس (16 بیت)
-
JVC: 16 بیت
-
SAMSUNG: 32 بیت
-
LG: 28 بیت
-
WHYNTER: 12 بیت
-
PANASONIC: 48 بیت
مشخصات NEC (پرکاربردترین):
-
Leader Pulse: 9ms HIGH + 4.5ms LOW
-
Logical 0: 560μs HIGH + 560μs LOW
-
Logical 1: 560μs HIGH + 1.69ms LOW
-
تکرار: 110ms بعد از اولین ارسال
-
ساختار: آدرس 8 بیت + معکوس آدرس 8 بیت + فرمان 8 بیت + معکوس فرمان 8 بیت
سوالات متداول (FAQ)
✅ آیا میتوانم از ریموت گوشی استفاده کنم؟
بله، اگر گوشی شما IR Blaster داشته باشد (مانند Samsung Galaxy S6، Xiaomi Redmi Note).
✅ حداکثر سرعت انتقال چقدر است؟
حداکثر 1200 بیت بر ثانیه برای پروتکل NEC (بهینه برای دستورات کنترلی).
✅ آیا میتوانم دو گیرنده را همزمان استفاده کنم؟
بله، اما هر کدام به پین جداگانه نیاز دارند و باید کدها را جداگانه پردازش کنید.
✅ تفاوت مدلهای مختلف چیست؟
تفاوت در حساسیت، مصرف جریان، مقاومت نویز و کیفیت ساخت.
✅ آیا در فضای باز کار میکند؟
بله، اما محدود. نور خورشید تداخل ایجاد میکند – بهتر است در سایه یا شب استفاده شود.
✅ طول عمر گیرنده چقدر است؟
بیش از 100,000 ساعت در شرایط نرمال.
✅ آیا نیاز به کالیبراسیون دارم؟
خیر، گیرندههای IR کالیبره شده از کارخانه هستند.
✅ بهترین مکان برای نصب کجاست؟
مرکز دستگاه، دور از LEDهای نشانگر، با دید مستقیم به کاربر.
پروژههای خلاقانه پیشنهادی
۱. کنترل ربات با ریموت TV:
-
حرکت به چپ/راست با دکمههای جهتی
-
سرعت با دکمههای حجم
-
توقف با دکمه Mute
۲. سیستم حضور و غیاب IR:
-
کارتهای IR برای هر شخص
-
ثبت زمان با دقت ثانیه
-
خروجی اکسل خودکار
۳. جعبه رمز IR:
-
قفل درب با کد IR
-
قابلیت تغییر رمز
-
تاریخچه دسترسیها
۴. کنترل استپرموتور با ریموت:
-
تنظیم سرعت موتور
-
کنترل جهت چرخش
-
موقعیتیابی دقیق
۵. سیستم آبیاری هوشمند:
-
برنامهریزی زمان آبیاری
-
کنترل از راه دور پمپها
-
مانیتورینگ رطوبت
چرا گیرنده IR را از نیکی سایت بخرید؟
✅ تضمین اصالت: تنها قطعات اورجینال با مارک اصلی
✅ تست ۳ مرحلهای: تست کارکرد، حساسیت و نویز
✅ پشتیبانی دائمی: مشاوره فنی رایگان حتی پس از خرید
✅ آموزش فارسی: کتابچه راهنمای فارسی + ویدئوی آموزشی
✅ تحویل اکسپرس: ارسال رایگان برای خریدهای بالای 200 هزار تومان
✅ تخفیف ویژه: ۱۰٪ تخفیف برای دانشجویان و مدارس
✅ بستهبندی حرفهای: ضدضربه و ضدرطوبت برای ارسال به شهرستان









ترانزیستورها
خازنها
دیودها
رگولاتورها
مقاومتها
کریستال و اسیلاتور
مدارات مجتمع
ابزارها
تجهیزات
تجهیزات لحیمکاری
مولتیمتر و ابزار اندازهگیری
منبع تغذیه و باتری
تستر