فناوری مادون قرمز زندگی روزمرهٔ ما را دگرگون کرده است. دیگر لازم نیست برای تغییر کانال تلویزیون از جای خود بلند شویم و یا اینکه یک کنترل سیمی تهیه کنیم؛ تنها با استفاده از یک فرستندهٔ مادون قرمز، کنترل تمامی کارکردهای تلویزیون در دستان ما خواهد بود. در این مقاله به بررسی کامل این فناوری خواهیم پرداخت.

در علم فیزیک تابش فروسرخ (به انگلیسی: Infrared) یا مادون قرمز یا به اختصار IR، به قسمی از طیف امواج الکترومغناطیس گفته میشود که طول موج آنها بلندتر از نور مرئی و کوتاهتر از امواج رادیویی است. امواج مادون قرمز در بازهٔ فرکانسی ۳۰۰ گیگاهرتز تا ۴۲۸ تراهرتز و طول موج ۱ میلیمتر تا ۷۰۰ نانومتر قرار میگیرند. این امواج برای چشم انسان نامرئی هستند اما مشاهدهٔ آنها کار دشواری نیست؛ تنها کافیست با استفاده از یک دوربین دیجیتالی به فرستندهٔ مادون قرمزِ کنترل تلویزیون خانهٔ تان نگاه کنید تا ساطع شدن امواج مادون قرمز را مشاهده کنید. برخی از منابعی که به طور طبیعی به ساطع کردن نور مادون قرمز میپردازند عبارتاند از: خورشید، اجسام گرم، آتش، بدن انسان و ...

فرض کنید در یک شب آرام در حال مشاهدهٔ یک منطقهٔ شهری از راه دور هستید. اگر قرار باشد فردی برای شما با استفاده از نور پیامی بفرستد، چطور باید این کار را انجام دهد تا شما متوجه پیامش شوید؟ اگر یک خانه در فاصلههای زمانی مختلف چراغش را خاموش و روشن کند خواهد توانست برای شما پیغامی مخابره کند (مشابه کد مورس)؛ اما اگر چراغ چندین خانه خاموش و روشن شود شما از کجا متوجه خواهید شد که کدام یک مربوط به فرد مورد نظرتان است؟ در اینجا میتوان از مفهومی به نام فرکانس استفاده کرد (فرکانس برابر است با تعداد دفعات خاموش و روشن شدن در زمان یک ثانیه) به طوری که فرد مورد نظر پیامش را با فرکانس مشخصی (مثلا 5Hz) مخابره میکند؛ در این صورت شما فقط به خانهای که چراغش با این فرکانس مشخص خاموش و روشن میشود توجه میکنید و به باقی خانهها کاری ندارید. برای ارسال اطلاعات با مادون قرمز نیز از همین ایده استفاده میشود.

همانطور که گفته شد برای جلوگیری از پارازیت و اختلال در دریافت اطلاعات از یک فرکانس مشخص استفاده میشود (رنج 30kHz تا 60kHz)؛ فرکانسهای حاملِ 36kHz، 38kHz، 40kHz، 56kHz رایج هستند که متداولترین آنها فرکانس 38kHz میباشد. معیارهایی چون کاهش نویز، برد مناسب، سادگی ارسال و سادگی پردازش با میکروکنترلرها و ... در انتخاب این فرکانسهای حامل نقش داشتهاند.

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

گیرندهٔ مادون قرمز دستگاهی است که امواج الکترومغناطیسی با طول موج مادون قرمز را دریافت کرده و آنها را به سیگنالهای قابل فهم برای مدارات الکترونیکی یا پردازشگرها تبدیل میکند.
دو نوع گیرندهٔ مادون قرمز وجود دارد که عبارتند از:
با برخورد نور مادون قرمز به این وسیله مقاومت پایههای آن تغییر پیدا میکند. از این وسیله برای بررسی وجود یا عدم وجود نور مادون قرمز و میزان آن استفاده میشود. به این قطعات فوتو دیود نیز میگویند.

این وسیله در واقع یک IC است که دو پایهٔ + و - و یک پایهٔ سیگنال دارد. این IC طوری طراحی شده است که پایهٔ سیگنالش در هنگام مشاهدهٔ فرکانس خاصی از امواج مادون قرمز (مثلاً 38kHz) مقدار LOW خروجی بدهد و در سایر موارد (وجود نویز یا عدم وجود نور مادون قرمز) مقدار HIGH داشته باشد.

مدولاسیون؛ فرآیند تبدیل سیگنالِ پیام به یک سیگنال دیگر است که قابلیت انتقال به وسیله ابزار ارتباطی (در اینجا فرستنده و گیرندهٔ مادون قرمز) را داشته باشد و از نویز در امان باشد.
تمامی کنترل از راه دورهای مدرن با به کارگیری مدولاسیون دیجیتال طراحی شدهاند. دو تا از مدولاسیونهای دیجیتال پایه Amplitude-Shift Keying (ASK) و Frequency Shift Keying (FSK) هستند. در مدولاسیون ASK صفر و یکها بهوسیلهٔ تغییر در طول دامنهٔ موجِ حامل منتقل میشوند و در مدولاسیون FSK صفر و یکها با استفاده از دو موج با فرکانس متفاوت انتقال مییابند.
ASK یکی از قدیمیترین و سادهترین مدولاسیونهای مورد استفاده است که مورد توجه بسیاری از شرکتهای تولید کنندهٔ کنترل از راه دور مادون قرمز قرار گرفته است. علت این علاقهٔ شرکتها، کارایی (توانایی بالا و مصرف پایین)، سادگی طراحی و هزینهٔ پایین آن است.
در فرستندهٔ مادون قرمز اطلاعات به گروهی از پالسها با فرکانس مشخص مدوله میشوند.
چندین روش کدگذاری در سیستم مدولاسیون ASK در زیر آورده شده است:
Pulse Position Encoding
Pulse Position Encoding سادهترین روش در سیستم مدولاسیون ASK است؛ هر بیت یک عرض (فاصله زمانی) ثابت دارد. پالس موجِ حامل به منزلهٔ 1 و فضای خالی (عدم وجود موج حامل) به منزلهٔ 0 تلقی میشود.

Pulse Distance Encoding
در این روش هر بیت ترکیبی از یک پالس موج حاملِ مدوله شده و یک فضای خالی است. اندازهٔ (فاصله زمانی) فضای خالی، مشخص کنندهٔ منطق 0 و 1 است؛ و اندازه موج حاملِ مدوله شده ثابت است.

Pulse Width Encoding
در روش Pulse Width Encoding نیز هر بیت ترکیبی از یک پالس موج مدوله شده و یک فضای خالی است. اندازهٔ موج حامل مدوله شده مشخص کنندهٔ منطق 0 و 1 است، و اندازهٔ فضای خالی ثابت میباشد.

Manchester Encoding
این روش کد گذاری با نام biphase (روش کدگذاری دوفاز) نیز شناخته میشود. هر بیت ترکیبی از یک پالس موج مدوله شده و یک فضای خالی است. هر بیت با یک گذار (تغییر) در سطح سیگنال (موج حامل و فضای خالی) نمایش داده میشود. برای مثال اگر ابتدا موج حامل باشد و بعد فضای خالی بیاید نشان دهندهٔ منطق 1 است، و اگر ابتدا فضای خالی وجود داشته باشد و سپس موج حامل بیاید نشان دهندهٔ منطق 0 است.

در مدولاسیون FSK از دو موج حامل با فرکانس متفاوت برای منطق 0 و 1 استفاده میشود و هیچ فضای خالیای بین پالسها وجود ندارد. این روش چندان جذاب نیست زیرا اتخاذ دو فرکانس، فرآیند کدگشایی را پیچیده و گران میکند. به همین دلیل این روش کمتر استفاده میشود.

پروتکلها نحوهٔ بسته بندی اطلاعات و شیوهٔ ارسال آنها را مشخص میکنند.
علاوه بر مدولاسیونهای مختلف، روشهای کدگذاری متفاوت و فرکانسهای کاری گوناگون؛ در پروتکلهای انتقال داده نیز تنوع وجود دارد: پروتکلهای با یا بدون نقطهٔ شروع، با تعداد بیتهای مختلف در هر دستور و با طول بیتهای متفاوت. تقریبا در همهٔ پروتکلها بیتهای آدرس و بیتهای اطلاعات وجود دارند. برای قابلیت اطمینان برخی از پروتکلها، اطلاعات را دوبار ارسال میکنند، یکبار شکل اصلی و بار دیگر شکل معکوس. معمولا اطلاعاتِ دستور تا زمانی که کلید فشار داده میشود بارها و بارها ارسال میشوند. روشهای مختلفی برای تمایز بین فشار دادن چند کلید و قطع لینک انتقال وجود دارد (مثلا برای جلوگیری از انتخاب کانال 11 توسط تلویزیون در حالی که کانال 1 در نظر گرفته شده باشد). برخی از پروتکلها از یک بیت تغییر وضعیت استفاده میکنند که مقدار آن در هر بار فشار کلید تغییر میکند. برخی از کدها در ابتدا/در انتهای هر فشار کلید یک بیت شروع/بیت پایان ارسال میکنند.
پروتکلهای مختلفی در صنعت مورد استفاده قرار میگیرند، اما بیشرتان از چند پروتکل محدود مشتق شدهاند که تنها اختلافشان در فرکانس موج حامل و قالب ارسال اطلاعاتشان است.
دو مورد از مشهورترین پروتکلها عبارتند از NEC و RC5 که پروتکل NEC در زیر شرح داده شده است:
این پروتکل توسط شرکت NEC توسعه داده شده است اما توسط سایر شرکتها نیز مورد استفاده قرار میگیرد و به نوعی پر استفاده ترین پروتکل میباشد.
ویژگیها:
بخش آدرس و بخش دستور هر دو 8 بیتی هستند.
بخش آدرس و بخش دستور به خاطر قابلیت اطمینان دوبار ارسال میشوند.
از روش Pulse Distance برای کدگذاری اطلاعات استفاده میکند.
از فرکانس کاری 38kHz برای ارسال اطلاعات استفاده میکند.
ارسال هر بیت در آن 1.125ms یا 2.25ms طول میکشد.
پروتکل NEC از یک سیگنال شروع که leader code نامیده میشود استفاده میکند؛ یک موج حامل با اندازهٔ 9ms که همراه میشود با یک فضای خالی به اندازهٔ 4.5ms، سپس اطلاعات ارسال میشود. بعد از اینکه اطلاعات ارسال شد تنها leader code و یک تک بیت به طور مکرر ارسال میشوند تا وقتی که دکمهٔ کنترل فشرده شده باشد. هر دو بخش آدرس و دستور دوبار ارسال میشوند؛ یک بار به شکل عادی و بار دیگر به شکل معکوس.
ارسال 0 منطقی با پالسی به طول 1.125ms انجام میشود و ارسال 1 منطقی به پالسی با طول 2.25ms نیاز دارد.
8 بیت آدرس برای مشخص کردن دستگاهی که باید کنترل شود کاربرد دارد؛ تا اگر چندین دستگاه با عملکردهای مشابه در محیط وجود داشت فقط دستگاهی که دکمههای کنترل آن فشرده میشود، اعمال درخواستی را انجام دهد.
8 بیت دیگر برای انتقال دادههای دستور مورد استفاده قرار میگیرد.
همانطور که در بالا ذکر شد بایتها بدون مکث با بایتهای معکوس همراه میشوند؛ مثلا اگر بایت آدرس 00110111 باشد و بایت دستور نیز 00011010 باشد برای ارسال آن دنبالهای از بیتها به شکل زیر ارسال میشود:
00110111'11001000'00011010'11100101
منظور از معکوس کردن این است که هرجا بیت 1 وجود داشت بیت 0 قرار میگیرد و بالعکس.
برای ارسال 1، یک موج حامل با فرکانس 38kHz به مدت 560μs ارسال میشود که در پی آن یک فضای خالی به اندازهٔ 1690μs وجود دارد. برای ارسال 0 نیز ابتدا یک موج حامل با فرکانس 38kHz به مدت 560μs ارسال میشود با این تفاوت که در پی آن یک فضای خالی با اندازهٔ 560μs وجود دارد. اندازهٔ زمانی قسمت اطلاعات ثابت و به اندازهٔ 67.5ms می باشد.

در انتهای محمولهٔ داده یک پالس 560μsای (tail) از موج حامل، به اتمام رسیدن عملیات ارسال دستور را مشخص میکند.

بخش تکرار طراحی شده است تا عملیات تکرارِ خودکار را اجرایی کند و هیچ اطلاعاتی در مورد آدرس یا دستور را در بر نمیگیرد. این بخش شامل قطاری از پالس ها و پالسهای tail (مشابه پالس اتمام ارسال اطلاعات در قسمت قبل) می باشد. این بخش هر 110ms تکرار میشود تا وقتی که دکمهٔ کنترل فشرده شده باشد.


برای ارسال موج مادون قرمز در سیستمعامل اندروید از کلاس ConsumerIrManager استفاده میشود :
public void transmit ( int carrierFrequency, int[] pattern )
Parameters:
carrierFrequencyint: The IR carrier frequency in Hertz. patternint: The alternating on/off pattern in microseconds to transmit.
مثالی از کد و سیگنال خروجی:
irEngine.transmit(38000, intArrayOf( 9125,4391,569,569,569,569,569,569, 569,569,569,569,569,569,569,1604, 569,569,569,569,569,569,569,569, 569,569,569,569,569,569,569,1604, 569,569,569,569,569,1604,569,569, 569,1604,569,569,569,569,569,569, 569,569,569,1604,569,569,569,1604, 569,569,569,1604,569,1604,569,1604, 569,1604,569,45518))

اپلیکیشن irplus برای کار با کنترل طراحی شده است که امکانات خوبی را در اختیار دارندگان گوشیهای اندرویدی قرار میدهد.
اپلیکیشن IrScrutinizer نیز امکانات متنوعی را برای کاربران دسکتاپ فراهم کرده است.
https://www.ti.com/lit/pdf/slaa644
https://www.vishay.com/docs/80071/dataform.pdf
https://www.sbprojects.net/knowledge/ir/index.php
https://www.youtube.com/watch?v=B6y6Pbr0ENI
https://www.ti.com/lit/pdf/SLAU598