ماژول گیرنده مادون قرمز

(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

مراحل پردازش داخلی:

  1. دریافت نور: گیرنده نور مادون قرمز را از طریق لنز پلاستیکی دریافت می‌کند.

  2. فیلتر نوری: فیلتر IR-Pass فقط نور با طول موج 940nm را عبور می‌دهد.

  3. فوتودیود: نور به سیگنال الکتریکی ضعیف تبدیل می‌شود.

  4. پیش‌تقویت: سیگنال توسط آمپلیفایر داخلی تقویت می‌شود.

  5. دمودولاتور: مدار Tuned به 38kHz سیگنال مدوله شده را دمودوله می‌کند.

  6. فیلتر AGC: کنترل Gain خودکار برای تطبیق با شدت سیگنال.

  7. مقایسه‌گر: سیگنال با آستانه مقایسه و به دیجیتال تبدیل می‌شود.

  8. خروجی: سیگنال دیجیتال 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 (حرفه‌ای)

نصب کتابخانه:

  1. در Arduino IDE به Sketch > Include Library > Manage Libraries بروید

  2. IRremote را جستجو و نصب کنید

  3. یا از 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]));
  }
}

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

مراحل یافتن کدهای ریموت شخصی:

  1. کد Receiver Test را اجرا کنید

  2. هر دکمه ریموت را فشار دهید

  3. کد HEX نمایش داده شده را یادداشت کنید

  4. کدها را در آرایه 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 نباشد)
پاسخ آهسته پردازش سنگین کد را بهینه کنید، وقفه‌ها را کاهش دهید

نکات مهم برای عملکرد بهینه:

  1. خازن فیلتر: 100μF بین VCC و GND نزدیک گیرنده

  2. مقاومت Pull-up: 10kΩ بین OUT و VCC برای سیگنال تمیزتر

  3. دور از نور: از نور مستقیم لامپ‌های LED و خورشید دور نگه دارید

  4. زاویه مناسب: گیرنده را عمود بر جهت ریموت نصب کنید

  5. فاصله: حداکثر 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 کیفیت بالا، قیمت مناسب

پروتکل‌های پشتیبانی شده

پروتکل‌های اصلی:

  1. NEC: پرکاربردترین (سونی، پاناسونیک، شارپ)

  2. SONY: 12، 15، 20 بیتی

  3. RC5: فیلیپس (14 بیت)

  4. RC6: فیلیپس (20 بیت)

  5. DISH: شبکه دیس (16 بیت)

  6. JVC: 16 بیت

  7. SAMSUNG: 32 بیت

  8. LG: 28 بیت

  9. WHYNTER: 12 بیت

  10. 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 هزار تومان
✅ تخفیف ویژه: ۱۰٪ تخفیف برای دانشجویان و مدارس
✅ بسته‌بندی حرفه‌ای: ضدضربه و ضدرطوبت برای ارسال به شهرستان