کدگذاری ریموت‌های سیاه یا سفید با آردوینو

کدگذاری ریموت‌های سیاه یا سفید با آردوینو

در این آموزش، یاد خواهیم گرفت که چگونه کلیدهای کنترل از راه دورهای اینفرارد سیاه و سفید را با استفاده از آردوینو و یک دریافت‌کننده اینفرارد رمزگشایی کنیم. در پایان این پروژه، شما قادر خواهید بود تعیین کنید کدام کلید بر روی کنترل از راه دور فشار داده شده و آن اطلاعات را در نمایشگر مسلسل نمایش دهید. این می‌تواند برای کنترل دستگاه‌ها با هر کنترل از راه دوری که ممکن است داشته باشید، مانند تلویزیون‌ها یا سایر وسایل، مفید باشد (در ویدیو در 01:00).

متن قابل ترجمه نیست.

ما از یک تنظیمات ساده استفاده خواهیم کرد که شامل یک آردوینو، یک ماجیول گیرنده مادون قرمز و شِفر (کود) لازم برای رمزگشایی سیگنال ها می‌شود. گیرنده مادون قرمز سیگنال ها را از ریموت دریافت می‌کند و آردوینو آن سیگنال ها را تفسیر می‌کند تا مشخص کند کدام دکمه فشار داده شده است. این پروژه ساده است و می‌توان آن را برای کنترل‌های از راه دور مختلف تنظیم کرد.

دیکدینگ-ریموت-IR-اصلی-۲

توضیح سخت‌افزار

اجزای اصلی این پروژه شامل برد آردوینو و یک ماجیول گیرنده مادون قرمز است که معمولاً به عنوان VS1838B شناخته می‌شود. آردوینو به‌عنوان کنترلر اصلی عمل خواهد کرد و کدی را اجرا می‌کند که سیگنال‌های دریافتی از ریموت را پردازش می‌کند. گیرنده مادون قرمز سیگنال‌های مادون قرمز ساطع‌شده از ریموت کنترل را دریافت کرده و آن‌ها را به فرمتی تبدیل می‌کند که آردوینو قادر به درک آن باشد.

پایه‌های گیرنده IR از نوع VS1838B
پایه‌های گیرنده از راه دور IR مدل VS1838B

VS1838B در محدوده ولتاژ 2.7V تا 5.5V کار می‌کند که آن را با اکثر بردهای آردوینو سازگار می‌سازد. این ماجیول می‌تواند سیگنال‌ها را از فاصله 10 تا 15 متر تشخیص دهد، بسته به شرایط. گیرنده مادون قرمز یک سیگنال دیجیتال خروجی می‌دهد که نشان می‌دهد کدام دکمه روی کنترل از راه دور فشرده شده است و به آردوینو این امکان را می‌دهد که به طور مناسب پاسخ دهد.

جزئیات برگه مشخصات

تولیدکننده VS1838B
شماره قطعه VS1838B
ولتاژ منطق/ورودی و خروجی ۲.۷-۵.۵ ولت
ولتاژ تامین 5 ولت
جریان خروجی (برای هر کانال) ۱.۵ میلی آمپر
فاصله دریافت ۱۰-۱۵ متر
فرکانس ورودی ۳۸ کHz
جریان بی‌فعالیت ۰.۸ میلی آمپر (معمولی)
زاویه عملکرد ۷۰ درجه
بسته TO-220

  • اطمینان حاصل کنید که ولتاژ به درستی تأمین شود تا از آسیب به گیرنده مادون قرمز جلوگیری شود.
  • مدول گیرنده را از نور مستقیم خورشید یا منابع قوی مادون قرمز دور نگه دارید.
  • اگر لازم است از مقاومت‌های کششی استفاده کنید تا خوانش سیگنال‌ها تثبیت شود.
  • اتصالات سیم‌کشی باید ایمن باشند تا از سیگنال‌های متناوب جلوگیری شود.
  • ریموت‌های مختلف را امتحان کنید تا ببینید چقدر با تنظیمات کار می‌کنند.
  • متن قابل ترجمه نیست.

دستورالعمل‌های سیم‌کشی

برای سیم‌کشی گیرنده IR به آردوینو، ابتدا پایه VCC گیرنده IR را به پایه ۵ ولت (5V) آردوینو وصل کنید. سپس پایه GND گیرنده را به یکی از پایه‌های GND آردوینو متصل کنید. در نهایت، پایه سیگنال (که اغلب با نام SIG یا OUT مشخص شده است) گیرنده IR را به پایه دیجیتال ۱۱ آردوینو وصل کنید.

اطمینان حاصل کنید که اتصالات محکم هستند، زیرا اتصالات شل می‌تواند به خوانش‌های ناعادلانه منجر شود. اگر از نسخه PCB گیرنده IR یا یک ماجیول برهنه استفاده می‌کنید، سیم‌کشی همانند قبل باقی می‌ماند؛ فقط اطمینان حاصل کنید که پایه‌ها را طبق برچسب‌گذاری ماجیول به درستی شناسایی کنید (در ویدئو در 03:15).

کتابخانه IRremote را نصب کنید

آردوینو IDE را راه‌اندازی کنید.اردوینو.سی‌سیبرای رایگان) روی آیکون کتابخانه در سمت چپ کلیک کنید و جستجو کنید برایIRremoteو روی "نصب" کلیک کنید تا آن را نصب کنید.

#include <IRremote.h>

مثال‌های شِفر (کود) و راهنمایی

int RECV_PIN = 11;
const char type ='W'; // W for white, B for black
const boolean PCB = 0; // 1 for PCB, 0 for bare module
IRrecv irrecv(RECV_PIN);

در این بخش، شماره پایه برای دریافت‌کننده IR را تعریف می‌کنیم باRECV_PINتنظیم به 11. ما همچنین نوع کنترل از راه دور مورد استفاده را مشخص می‌کنیم باtypeمتغیر، جایی که 'W' نشان‌دهنده یک ریموت سفید و 'B' نشان‌دهنده یک ریموت سیاه است. PCBمتغیر تفاوت بین استفاده از نسخه PCB گیرنده یا یک ماجیول خالی را مشخص می‌کند.

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

در دsetup()در این تابع، ارتباط سریال را با سرعت 9600 بُد راه‌اندازی کرده و گیرنده IR را شروع می‌کنیم. این کار برای نظارت بر خروجی در نمایشگر مسلسل حیاتی است و به ما امکان می‌دهد تا ببینیم کدام کلید فشرده شده است.

void loop() {
  if (irrecv.decode(&results)) {
    robojaxValidateCode(results.value); // Validate the received code
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

اصلیloop()بررسی می‌کند که آیا گیرنده IR سیگنالی را رمزگشایی کرده است یا خیر. اگر اینطور باشد، آن را فراخوانی می‌کندrobojaxValidateCodeعملکردی برای پردازش مقدار دریافتی و سپس از سرگیری گوش دادن به سیگنال بعدی.delay(100)اطمینان می‌دهد که حلقه خیلی سریع اجرا نشود، که می‌تواند به پردازش سیگنال کمک کند.

نمایشگاه / چه انتظاری باید داشته باشید

هنگامی که همه چیز تنظیم شد و شِفر (کود) بارگذاری شد، پنجره سریال را باز کنید تا خروجی را ببینید. هنگامی که یک کلید روی ریموت را فشار می‌دهید، باید نام کلید مربوطه در مانیتور نمایش داده شود. اگر کلید شناسایی نشود، "کلید ناشناخته" نمایش داده خواهد شد. مطمئن شوید که کلیدها را محکم فشار دهید، زیرا اتصالات شل می‌تواند باعث خوانش‌های نادرست شود (در ویدیو در 05:40).

اگر کلیدی را به طور مداوم فشار دهید، خروجی ممکن است مقادیر تکراری یا کدهای هگزادسیمال را نمایش دهد. این رفتار طبیعی است و شما می‌توانید شِفر (کود) را برای فیلتر کردن این سیگنال‌های مداوم تغییر دهید اگر خواسته باشید. علاوه بر این، می‌توانید شِفر (کود) را تنظیم کنید تا بر اساس فشار کلیدهای خاص اقداماتی انجام دهد، مانند روشن کردن چراغ‌ها یا کنترل سایر دستگاه‌ها.

زمان‌بندی ویدئو

  • ۰۰:۰۰ شروع
  • :56 سخت‌افزار توضیح داده شده است
  • 04:26 توضیحات سیم‌کشی
  • شِفر (کود) توضیح داده شده است
  • ۱۲:۲۷ نمایش شِفر (کود) تفسیر

تصاویر

رمزگشایی هر ریموت سیاه یا ریموت سفید با آردوینو
رمزگشایی هر ریموت سیاه یا ریموت سفید با آردوینو
پایه‌های گیرنده از راه دور IR مدل VS1838B
پایه‌های گیرنده از راه دور IR مدل VS1838B
Deconding-IR-remote-main
Deconding-IR-remote-main
Deconding-IR-remote-main-1
Deconding-IR-remote-main-1
Deconding-IR-remote-main-2
Deconding-IR-remote-main-2
137-Source code for decoding infrared remote controllers using Arduino
زبان: C++
کپی شد!

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

منابع و مراجع

هنوز هیچ منبعی موجود نیست.

فایل‌ها📁

هیچ فایلی موجود نیست.