نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • بررسی ها
  • کدهای کنترل از راه دور آردوینو را بخوانید. کنترل از راه دور جهانی در آردوینو

کدهای کنترل از راه دور آردوینو را بخوانید. کنترل از راه دور جهانی در آردوینو

گیرنده IR و کنترل از راه دور مادون قرمز - رایج ترین و ساده ترین راه برای کنترل تجهیزات الکترونیکی. طیف تابش مادون قرمز برای چشم انسان قابل مشاهده نیست، اما به طور کامل توسط گیرنده های IR که در دستگاه های الکترونیکی تعبیه شده اند دریافت می شود. ماژول های آردوینوبرای کنترل از ریموت ir استفاده می شود تکنیک های مختلفدر خط دید

استفاده گسترده از فرستنده های IR به دلیل هزینه کم، سادگی و سهولت استفاده امکان پذیر شده است. تابش IR در محدوده 750 تا 1000 میکرون قرار دارد - این نزدیکترین بخش طیف به نور مرئی است. در ناحیه تابش مادون قرمز، خواص نوری ممکن است تغییر کند مواد مختلف. به عنوان مثال، برخی از شیشه ها در برابر اشعه IR مات می شوند، در حالی که پارافین، برعکس، در طیف IR شفاف است.

تشعشعات با استفاده از مواد عکاسی مخصوص ثبت می شود که بر اساس آن گیرنده ها ساخته می شوند. علاوه بر اجسام گرم شده (خورشید، لامپ های رشته ای یا شمع ها)، منبع تابش مادون قرمز می تواند دستگاه های حالت جامد - LED های IR، لیزرها باشد. تابش در محدوده مادون قرمز دارای تعدادی ویژگی است که استفاده از آنها را در کنترل از راه دور راحت می کند:

  • ساطع کننده های حالت جامد (ال ای دی IR) ارزان و جمع و جور هستند.
  • اشعه مادون قرمز توسط چشم انسان درک یا تشخیص داده نمی شود.
  • گیرنده های IR نیز ارزان و در اندازه کوچک هستند.
  • تداخل کم چون فرستنده و گیرنده روی یک فرکانس تنظیم شده اند.
  • غایب تاثیر منفیبر سلامت انسان
  • بازتاب بالا از اکثر مواد.
  • فرستنده های IR بر عملکرد دستگاه های دیگر تأثیر نمی گذارد.

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

گیرنده IR آردوینو

برای خواندن سیگنال IR به خود برد آردوینو، تخته نان، گیرنده سیگنال IR و جامپرها نیاز دارید. انواع مختلفی از گیرنده های مختلف وجود دارد، اما بهتر است از TSOP312 یا سایر گیرنده های مناسب برای آردوینو استفاده کنید. داده های کنترل از راه دور به گیرنده را می توان از طریق پروتکل RC5 یا NEC منتقل کرد.

برای تعیین اینکه کدام پا متعلق به چه چیزی است، باید از سمت گیرنده به سنسور نگاه کنید. سپس روی گیرنده کنتاکت مرکزی زمین است، در سمت چپ خروجی به میکروکنترلر، در سمت راست قدرت است.

برای راحتی، می توانید از ماژول های آماده گیرنده IR استفاده کنید.

اتصال گیرنده IR به آردوینو

خروجی های گیرنده IR به آردوینو به GND، 5 ولت و ورودی دیجیتال. نمودار اتصال سنسور به یازدهمین پایه دیجیتال در زیر نشان داده شده است.

این همان چیزی است که نمودار با ماژول به نظر می رسد گیرنده مادون قرمز:


کتابخانه هایی برای کار با IR

برای کار با دستگاه های IR می توانید از کتابخانه IRremote استفاده کنید که ساخت سیستم های کنترل را ساده می کند. می توانید کتابخانه را دانلود کنید. پس از دانلود فایل ها را در پوشه \arduino\libraries کپی کنید. برای اتصال به طرح خود، باید کتابخانه ها را اضافه کنید فایل هدر#عبارتند از .

برای خواندن اطلاعات، از مثال IRrecvDumpV2 از کتابخانه استفاده کنید. اگر کنترل از راه دور قبلاً در لیست موارد شناسایی شده وجود داشته باشد، اسکن لازم نیست. برای خواندن کدها باید اجرا کنید محیط آردوینو IDE کنید و مثال IRrecvDemo را از IRremote باز کنید.

یک کتابخانه دوم برای کار با سیگنال های IR وجود دارد - این IRlib است. از نظر عملکرد مشابه قبلی است. در مقایسه با IRremote، IRlib مثالی برای تعیین فرکانس سنسور IR دارد. اما استفاده از کتابخانه اول ساده‌تر و راحت‌تر است.

پس از بارگذاری کتابخانه، می توانید شروع به خواندن سیگنال های دریافتی کنید. برای این کار از کد زیر استفاده می شود.

عملگر decode_results برای تخصیص نتایج نام متغیر به سیگنال دریافتی مورد نیاز است.

در کد باید "HEX" را به "DEC" بازنویسی کنید.

سپس پس از بارگذاری برنامه، باید مانیتور سریال را باز کرده و دکمه های روی ریموت کنترل را فشار دهید. روی صفحه ظاهر خواهد شد کدهای مختلف. باید یادداشت کنید که کد دریافتی مربوط به کدام دکمه است. راحت تر است که داده های به دست آمده را در یک جدول ثبت کنید. سپس این کد را می توان در برنامه نوشت تا بتوان دستگاه را کنترل کرد. کدها در حافظه خود برد آردوینو EEPROM نوشته می شوند، که بسیار راحت است، زیرا لازم نیست هر بار که کنترل از راه دور را روشن می کنید، دکمه ها را برنامه ریزی کنید.

این اتفاق می افتد که هنگام بارگیری یک برنامه، خطای "TDK2 در محدوده خود اعلام نشده است" نمایش داده می شود. برای رفع آن، باید به Explorer بروید، به پوشه ای که برنامه در آن نصب شده است بروید آردوینو IDEو فایل های IRremoteTools.cpp و IRremoteTools.h را حذف کنید. پس از این، باید برنامه را دوباره روی میکروکنترلر بارگذاری کنید.

نتیجه

استفاده از ریموت آردوینو ir زندگی کاربر را راحت تر می کند. می تواند به عنوان یک کنترل از راه دور عمل کند تلفن همراه، تبلت یا رایانه - تنها چیزی که نیاز دارید این است نرم افزار ویژه. با استفاده از آردوینو می توانید تمام کنترل ها را متمرکز کنید. با یک دکمه روی کنترل از راه دور می توانید چندین عمل را همزمان انجام دهید - به عنوان مثال، تلویزیون و Blu-Ray را همزمان روشن کنید.

هنگام ایجاد دستگاه هایی برای کار با کنترل از راه دور IR، ابزاری که با آن می توانید سیگنال های IR را ضبط و تجزیه و تحلیل کنید بسیار ضروری است. چنین ابزاری در حالت ایده‌آل می‌تواند یک اسیلوسکوپ دیجیتال یا تحلیلگر منطقی باشد، اما همه این دستگاه‌ها را ندارند و خرید عمدی آنها گران است. چگونه بودن؟ یک راه حل بسیار ساده وجود دارد - کارت صدای کامپیوتر! ما سیگنال را با استفاده از آن ضبط می کنیم.

علاوه بر کارت صدا (که امیدوارم در کامپیوتر شما باشد)، به یک گیرنده سیگنال IR نیاز داریم. مونتاژ یک مدار گیرنده تمام عیار با TSOP صحیح تر است ، اما ما این کار را به ساده ترین شکل ممکن انجام خواهیم داد - معمولی ترین LED IR (همان چیزی که در کنترل از راه دور شما است) را به عنوان گیرنده IR می گیریم. البته می‌توانید یک فتودیود IR بگیرید، اما دریافت یک LED IR آسان‌تر است. LED IR باید مستقیماً به ورودی میکروفون کارت صدا وصل شود. برای انجام این کار، به یک دوشاخه 3.5 میلی متری و یک تکه سیم محافظ نیاز دارید (من سیم را با کانکتور از یک میکروفون قدیمی که کار نمی کند قطع کردم).

LED به صورت زیر متصل می شود:

در نتیجه دستگاه زیر را دریافت می کنیم:

دوشاخه را در ورودی میکروفون (آن رنگ صورتی). در تنظیمات کارت صدا، میکروفون را به عنوان دستگاه ورودی انتخاب کنید، کنترل بهره را به حداکثر برسانید و کادر افزایش اضافی را علامت بزنید. برای بررسی، کنترل از راه دور را به سمت گیرنده LED بگیرید (شما باید آن را تا حد امکان به کنترل از راه دور نزدیک کنید)، کلید را فشار دهید - کلیک ها باید در بلندگوها شنیده شوند.

اگر به دلایلی ورودی میکروفون ندارید (مثلاً در لپ تاپ)، گیرنده را به ورودی خطکارت صدا - همه چیز یکسان کار می کند، فقط دامنه سیگنال ضبط شده بسیار کوچکتر می شود.


اکنون به برنامه ای برای ضبط صدا نیاز داریم.
هر برنامه ای که داشته باشید برای این اهداف مناسب خواهد بود. اگر برنامه مورد علاقه ای برای کار با صدا ندارید، یک و کوچک را پیشنهاد می کنم برنامه رایگان— Wavosaur (http://www.wavosaur.com/) برنامه بدون نصب کار می کند و دارد اندازه کوچک- چقدر دوست دارم :).

برنامه ای برای کار با صدا.

پس از شروع برنامه، نشانگر سطح (خط کش سمت راست پنجره) را روشن کرده و پاسخ به سیگنال های کنترل از راه دور را بررسی کنید. به طور پیش فرض، همه چیز باید کار کند - خط کش از سیگنال های دریافتی از مقیاس خارج می شود (اگر واکنشی وجود نداشت، به تنظیمات بروید پیکربندی صدا/صوت در). بعد، نماد ضبط را فشار دهید، کنترل از راه دور را تا حد امکان به LED دریافت کننده نزدیک کنید، دکمه کنترل از راه دور را فشار دهید و چند ثانیه نگه دارید. ضبط را خاموش کنید - تمام شد! در پنجره ما اسکن سیگنال IR دریافتی را خواهیم دید. جالب این است که سیگنال قبلاً شناسایی می شود - ما فرکانس حامل را نخواهیم دید، بلکه فقط سیگنال مفید را خواهیم دید. این به این دلیل اتفاق می افتد که ظرفیت های ورودی ورودی میکروفون زمان لازم برای شارژ شدن ندارند.

سیگنال دریافتی را می توان بر اساس زمان، دامنه مقیاس کرد و، که بسیار راحت است، با برجسته کردن یک دوره خاص، می توانید بلافاصله مدت زمان آن را مشاهده کنید. سیگنال دریافتی را می توان ذخیره کرد (ترجیحا در فرمت wav - هیچ اعوجاجی وجود نخواهد داشت) یا به MP3، متن، فایل باینری(چیز مفید!).

مثلا، سیگنال از کنترل از راه دور تلویزیون من (فرمت NEC):

تمام فواصل زمانی از تصویر قابل مشاهده است، حتی می توانید آدرس کنترل از راه دور و کد فرمان دکمه را محاسبه کنید - همه چیز واضح و قابل درک است.

P.S.
درخواست بزرگ! اگر چنین گیرنده ای را جمع آوری می کنید، بسته های کنترل از راه دور خود را ذخیره کنید و آنها را از طریق ایمیل برای من ارسال کنید (در برگه "درباره پروژه") - این به بهبود الگوریتم گیرنده جهانی کمک زیادی می کند. در نام فایل، کنترل از راه دور و سازنده آن را مشخص کنید (به عنوان مثال: tv-sony.wav).


بیشتر در مورد کار با کنترل از راه دور IR!
من ساده ترین گزینه را برای "احساس" سیگنال از کنترل از راه دور IR پیشنهاد کردم، اما راه حل های زیادی وجود دارد که می تواند کارهای بیشتری انجام دهد! دریافت سیگنال IR، تجزیه و تحلیل، ذخیره، پخش، برنامه ریزی کنترل از راه دور، کنترل کامپیوتر... این بخش حاوی پیوندهایی به چنین راه حل هایی است.

1. DvzRcEditor
برنامه اول خواهد رفت DvzRcEditor،که پرت کردم mobiبرنامه توسط شخصی ساخته شده است Dvz 2010(متاسفانه هیچ مختصاتی برای او وجود ندارد، شاید کسی بداند؟).


- برنامه ای برای آنالیز و تکرار سیگنال های IR.
این برنامه به شما امکان می دهد پیام های IR را با استفاده از ورودی میکروفون و خروجی صدا ضبط و پخش کنید. ابزارهایی برای تجزیه و تحلیل پیام های IR و ایجاد یک پایگاه داده از پیام های کنترل از راه دور وجود دارد (یک پایگاه داده کوچک برای کنترل های مختلف از راه دور وجود دارد). راه حل جالبپشتیبانی از کنترل از راه دور شما ساخته شده در ATtiny2313 است.


ریموت کنترل دارای 7 کلید است که با آن می توانید هر دستوری را از آنالیز شده تنظیم کنید و خود برنامه می تواند سیگنال های این دکمه ها را در میکروکنترلر ضبط کند (به شرطی که برای اولین بار بوت لودر را در آنجا فلش کنید).

همه چیز ساده و واضح است - من آن را دوست داشتم!


2. SlyControl.
http://slydiman.narod.ru/scr/index.htm
این حتی یک برنامه نیست - این است کل اینترنتمنبع اختصاص داده شده به کنترل از راه دور IR. حاوی مقدار زیادی است اطلاعات مفید، سخت افزار و راه حل های نرم افزاریبرای همه مناسبت ها در اینجا چیزی است که نویسندگان در مورد SlyControl می نویسند:
- این برنامه جهانیبرای کنترل هر چیزی با استفاده از کامپیوتر

برای چه چیزی می توان از این استفاده کرد:
- کنترل هر برنامه از هر کنترل از راه دور (کنترل از راه دور)، از صفحه کلید چند رسانه ای با استفاده از کلیدها یا جوی استیک
- شبیه سازی صفحه کلید و ماوس از هر کنترل از راه دور
- زمانبندی (نه تنها برنامه را بر اساس زمان اجرا کنید، بلکه برخی اقدامات را نیز با آن انجام دهید)
- خاموش کردن رایانه توسط تایمر یا رویداد
- همچنین می توانید چراغ های آپارتمان را از طریق کنترل از راه دور روشن کنید، فقط باید افزونه مناسب را اضافه کنید.

همچنین یک برنامه در مورد منبع وجود دارد RCExplorer 2.1- پایگاه داده کنترل از راه دور IR (پایگاه داده شامل بیش از 200 ورودی است).


این برنامه به شما اجازه می دهد:
- دریافت سیگنال از کنترل از راه دور با استفاده از کارت صدا، پورت COM، IgorPlug-USB یا IgorPlug2
- سیگنال را با جزئیات تجزیه و تحلیل کنید - (مدولاسیون، ویژگی های زمان بندی، ویژگی های کدگذاری، کدهای تکرار، و غیره، همه که برای من شناخته شده هستند پشتیبانی می شوند این لحظهپروتکل ها، برنامه همچنین می تواند با پروتکل های ناشناخته کار کند.
- نمایش گرافیکی سیگنال در زمان واقعی و بر اساس داده های پایگاه داده
- یک کنترل از راه دور مشابه را در پایگاه داده جستجو کنید
— بازتولید فرمان کنترل از راه دور با استفاده از داده های پایگاه داده از طریق پورت COM

به طور کلی، حتما از منبع بازدید کنید - جالب خواهد بود.

(بازدید شده 20,417 بار، 9 بازدید امروز)

کنترل از راه دور مادون قرمز یکی از بهترین ها است راه های سادهتعامل با لوازم برقی. بنابراین، تقریباً در هر خانه چندین دستگاه وجود دارد: تلویزیون، مرکز موسیقی، پخش کننده ویدئو، تهویه مطبوع. اما بیشترین برنامه جالب کنترل از راه دور مادون قرمز- کنترل از راه دور ربات در واقع، در این درس سعی می کنیم این روش کنترل را با استفاده از کنترلر محبوب Arduino Uno پیاده سازی کنیم.

1. کنترل از راه دور IR

برای آموزش اطاعت از کنترل از راه دور مادون قرمز (IR) به ربات چه چیزی لازم است؟ ابتدا به خود کنترل از راه دور نیاز داریم. می توانید از یک کنترل از راه دور تلویزیون معمولی استفاده کنید یا می توانید یک کنترل از راه دور مینیاتوری برای رادیو ماشین خود خریداری کنید. این نوع کنترل از راه دور اغلب برای کنترل ربات ها استفاده می شود.

این ریموت کنترل دارای 10 عدد می باشد دکمه های دیجیتالو 11 دکمه برای دستکاری موسیقی: حجم، عقب، پخش، توقف و غیره. برای اهداف ما بیش از اندازه کافی است.

2. سنسور IR

در مرحله دوم، برای دریافت سیگنال از کنترل از راه دور، به یک سنسور IR ویژه نیاز داریم. به طور کلی، ما می‌توانیم تشعشعات مادون قرمز را با یک فتودیود/فتوترانزیستور معمولی تشخیص دهیم، اما برخلاف آن، سنسور IR ما سیگنال مادون قرمز را فقط در فرکانس 38 کیلوهرتز (گاهی اوقات 40 کیلوهرتز) درک می‌کند. این ویژگی است که به سنسور اجازه می دهد تا نویز نور اضافی ناشی از لامپ های روشنایی و خورشید را نادیده بگیرد.

برای این آموزش از سنسور محبوب IR استفاده خواهیم کرد VS1838B، که دارای ویژگی های زیر است:

  • فرکانس حامل: 38 کیلوهرتز؛
  • ولتاژ تغذیه: 2.7 - 5.5 ولت؛
  • مصرف جریان: 50 µA.

سنسورهای دیگری را می توان استفاده کرد، به عنوان مثال: TSOP4838، TSOP1736، SFH506.

3. اتصال

سنسور دارای سه لید (سه پایه) است. همانطور که در شکل نشان داده شده است، اگر از سمت گیرنده سیگنال IR به سنسور نگاه کنید،

  • سپس در سمت چپ یک خروجی به کنترلر وجود دارد،
  • در مرکز - تماس با قدرت منفی (زمین)،
  • و در سمت راست - تماس برق مثبت (2.7 - 5.5V).

نمودار شماتیک اتصال

ظاهر چیدمان

4. برنامه

با اتصال سنسور IR، برنامه ای برای Arduino Uno می نویسیم. برای این کار از کتابخانه استاندارد استفاده می کنیم IRRemoteکه به طور خاص برای ساده کردن کار با دریافت و ارسال سیگنال های IR طراحی شده است. با استفاده از این کتابخانه، دستورات را از کنترل از راه دور می پذیریم و برای شروع، به سادگی آنها را در پنجره مانیتور نمایش می دهیم. درگاه سریال. این برنامه برای ما مفید خواهد بود تا بفهمیم هر دکمه چه کدی را می دهد.

#include "IRremote.h" IRrecv irrecv(2); // نشان دهنده پینی است که گیرنده به آن متصل است decode_results results; void setup() ( Serial.begin(9600); // تنظیم سرعت پورت COM irrecv.enableIRIn(); // شروع دریافت ) void loop() ( if (irrecv.decode(&results)) ( // if داده‌های رسیده سریال .println(results.value, HEX)؛ // print data irrecv.resume(); // دستور بعدی را بپذیرید)

برنامه را روی آردوینو بارگذاری کنید. پس از آن سعی می کنیم دستورات را از ریموت کنترل دریافت کنیم. نمایشگر پورت سریال (Ctrl+Shift+M) را باز کنید، کنترل از راه دور را بردارید و آن را به سمت سنسور بگیرید. با فشردن دکمه های مختلف کدهای مربوط به این دکمه ها را در پنجره مانیتور مشاهده می کنیم.

مشکل در بارگذاری برنامه

در برخی موارد، هنگام تلاش برای بارگیری یک برنامه در کنترلر، ممکن است یک خطا ظاهر شود:

TDK2 در محدوده خود اعلام نشد

برای رفع آن، فقط دو فایل را از پوشه کتابخانه حذف کنید. بریم سراغ کاوشگر به پوشه ای که برنامه Arduino IDE در آن نصب شده است بروید (به احتمال زیاد "C:\Program Files (x86)\Arduino"). سپس به پوشه کتابخانه:

…\Arduino\libraries\RobotIRremote

و فایل ها را پاک کنید: IRremoteTools.cppو IRremoteTools.h.سپس، Arduino IDE را مجددا راه اندازی می کنیم و سعی می کنیم دوباره برنامه را روی کنترلر بارگذاری کنیم.

5. LED را با استفاده از کنترل از راه دور IR کنترل کنید

اکنون که می دانیم کدهای مربوط به دکمه های کنترل از راه دور هستند، سعی می کنیم کنترلر را طوری برنامه ریزی کنیم که با فشار دادن دکمه های تنظیم صدا، LED را روشن و خاموش کند. برای انجام این کار به کدهایی نیاز داریم (ممکن است بسته به کنترل از راه دور متفاوت باشد):

  • FFA857 - افزایش حجم؛
  • FFE01F - کاهش حجم.

به عنوان یک LED، ما از LED تعبیه شده در پایه شماره 13 استفاده می کنیم، بنابراین نمودار اتصال ثابت می ماند. بنابراین، برنامه:

#include "IRremote.h" IRrecv irrecv(2); // نشان دهنده پینی است که گیرنده به آن متصل است decode_results results; void setup() (irrecv.enableIRIn(); // شروع دریافت) void loop() (if (irrecv.decode(&results)) (// if data رسیده سوئیچ (results.value) (مورد 0xFFA857: digitalWrite( 13، HIGH)؛ شکست؛ مورد 0xFFE01F: digitalWrite(13، LOW؛ break؛ ) irrecv.resume(); // فرمان بعدی را بپذیرید) )

ما آن را در آردوینو آپلود می کنیم و آن را تست می کنیم. کلیک vol+- LED روشن می شود. کلیک جلد-- میره بیرون اکنون، با دانستن اینکه همه اینها چگونه کار می کند، می توانید موتورهای ربات یا سایر دستگاه های میکروالکترونیک خانگی را به جای LED کنترل کنید!

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



کنترل از راه دور بسیار راحت است زیرا تقریباً از همان دکمه های روی صفحه برای کنترل تلویزیون و پخش کننده استفاده می شود. یک تفاوت این است که " AV"در حالت کنترل تلویزیون به یک دکمه تغییر می کند" " (توقف) هنگام تغییر به حالت کنترل پخش کننده. تصاویر دو حالت را نشان می دهند، در سمت چپ حالت کنترل تلویزیون، در سمت راست حالت کنترل پخش کننده است.

خوب، اکنون من کمی در مورد ایجاد چنین کنترل از راه دور به شما می گویم. برای دستگاه من از کنترل از راه دور برای تلویزیون ERGO و کنترل از راه دور برای پخش کننده رسانه DUNE HD TV101W استفاده کردم.

برای دریافت اطلاعات از ریموت هایی که استفاده کردم سنسور مادون قرمز TSOP1138 (آنالوگ TSOP4838) با فرکانس کاری 38 کیلوهرتز و طبق این طرح آن را به برد آردوینو متصل کرد:

این طرح برای تعیین رمزگذاری انتقال داده ها و خواندن کد دکمه های کنترل از راه دور مورد نیاز نخواهد بود.

در طرح در خط int RECV_PIN = 11; پین شماره 4 ما را نشان دهید

پس از آپلود طرح، "نمایشگر پورت" را باز کنید و با فشار دادن دکمه های کنترل از راه دور، به داده های دریافتی نگاه کنید.

تصویر نمونه ای از اسکن دکمه پاور از ریموت کنترل تلویزیون و ریموت پخش کننده را نشان می دهد. حالا یک جدول برای کدهای دکمه ایجاد می کنیم.

مثل عکس بالا گرفتم زیر کتیبه تلویزیونکدهای دکمه کنترل از راه دور تلویزیون؛ زیر کتیبه بازیکن- کدهای کنترل از راه دور پخش کننده رسانه.

حالا گیرنده سیگنال مادون قرمز خود را از برد آردوینو جدا کرده و به آن وصل می کنیم ماژول بلوتوث HC-05 و LED مادون قرمز مطابق نمودار در عکس.

پس از آن، ما به طور مستقیم به طرح حرکت می کنیم.

طرح

#عبارتند از IRsend irsend; int y = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) (int x = Serial.read(); if (x == 49) (y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // کدهای دکمه برای کنترل تلویزیون اگر (x == 97) (irsend.sendNEC(0x807F08F7, 32)؛ تاخیر(40 ) ) if (x == 98) (irsend.sendNEC(0x807FA857, 32); delay(40); ) if (x == 99) (irsend.sendNEC(0x807F708F, 32); delay(40); ) if (x == 100) (irsend.sendNEC(0x807FF00F, 32); تاخیر(40); ) if (x == 101) (irsend.sendNEC(0x807F30CF, 32); تاخیر(40); ) اگر (x == 102) (irsend.sendNEC(0x807FB04F, 32); تاخیر(40)؛ ) if (x == 103) (irsend.sendNEC(0x807F9867, 32); تاخیر(40)؛ ) if (x == 104) (irsend .sendNEC(0x807F58A7, 32); تاخیر (40); ) if (x == 105) (irsend.sendNEC(0x807FD827, 32); تاخیر(40); ) if (x == 106) (irsend.send7F(0x700) , 32)؛ تاخیر(40)؛ ) if (x == 107) (irsend.sendNEC(0x807F48B7, 32); تاخیر(40); ) if (x == 108) (irsend.sendNEC(0x807FB847, 32); تاخیر(40); ) if (x == 109) (irsend.sendNEC(0x807F6897, 32); تاخیر (40); ) ) if (y == 2) ( //کدهای دکمه های کنترل از راه دور پخش کننده رسانه اگر (x == 97) (irsend.sendNEC(0xFDC23D, 32); تاخیر(40)؛ ) اگر (x == 98) ( irsend. sendNEC(0xFDE01F, 32); delay(40); ) if (x == 99) (irsend.sendNEC(0xFD18E7, 32); delay(40); ) if (x == 100) (irsend.sendNEC (0xFDE817, 32); تاخیر(40)؛ ) if (x == 101) (irsend.sendNEC(0xFDA857, 32)؛ تاخیر(40); ) اگر (x == 102) (irsend.sendNEC(0xFD6897, 32 تأخیر (40)؛ ) اگر (x == 103) (irsend.sendNEC(0xFDA857, 32); تأخیر(40); ) اگر (x == 104) (irsend.sendNEC(0xFD6897, 32)؛ تأخیر( 40); ) if (x == 105) (irsend.sendNEC(0xFDE817, 32); delay(40); ) if (x == 106) (irsend.sendNEC(0xFD18E7, 32); delay(40); ) if (x == 107) (irsend.sendNEC(0xFD9867, 32); delay(40); ) if (x == 108) (irsend.sendNEC(0xFD28D7, 32); delay(40); ) if (x = = 109) (irsend.sendNEC(0xFD20DF, 32); تاخیر(40)؛ ) ) )


در طرح باید کدهای دکمه ها را ویرایش کنید، یعنی در خطوط:

اگر (x == 97) (irsend.sendNEC(0x807F08F7, 32); delay(40);
مقدار 807F08F7 را به:

If (y == 1) ( //کدهای دکمه برای کنترل از راه دور تلویزیون if (x == 97) (irsend.sendNEC(0x12345678, 32); تاخیر(40)؛ )
جایی که 12345678 کد دکمه شما است.

پس از ویرایش طرح با استفاده از کدهای دکمه خود، طرح را در آن آپلود کنید برد آردوینوو به نصب اپلیکیشن روی گوشی خود ادامه دهید.

ما بلوتوث را در تلفن روشن می کنیم، دستگاه خود را جستجو می کنیم، یک جفت ایجاد می کنیم، سپس برنامه را اجرا می کنیم Pultروی تلفن

در راه اندازی صفحه نمایشی با رنگ قرمز خواهیم داشت نماد بلوتوثدر گوشه پایین سمت راست، که نشان می دهد ما به دستگاه خود متصل نیستیم.

پس از آن روی این آیکون کلیک کنید. ما باید پنجره ای با لیستی از همه موجودات ببینیم دستگاه های بلوتوث، جایی که دستگاه خود را برای اتصال انتخاب می کنیم.

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

برای تغییر حالت کنترل باید دکمه برچسب زده شده را فشار دهیم "بازیکن". همانطور که قبلاً گفتم، دکمه ما با برچسب "AV" به یک دکمه تغییر می کند. ":

برای قطع ارتباط با دستگاه ما، کافی است دکمه «Power» را برای چند ثانیه نگه دارید.

خوب، چند عکس از دستگاه تمام شده من.

به نظر می رسد بسیار خوب ظاهر شد. منتظر نظرات در مورد مقاله هستم.

در این درس به اتصال گیرنده IR به آردوینو خواهیم پرداخت. ما به شما می گوییم که از کدام کتابخانه باید برای گیرنده IR استفاده شود، طرحی برای آزمایش عملکرد گیرنده مادون قرمز از یک کنترل از راه دور نشان می دهیم و دستورات در C++ را برای دریافت سیگنال تجزیه و تحلیل می کنیم. بیایید بلافاصله توجه کنیم که سنسور IR آردوینو برای هر کنترل از راه دور مناسب نیست، فرکانس سیگنال ممکن است متفاوت باشد.

دستگاه گیرنده IR. اصل عملیات

گیرنده های اشعه مادون قرمز در حال حاضر به طور گسترده استفاده می شود لوازم خانگی، با تشکر از قیمت قابل قبول، سادگی و سهولت استفاده. این دستگاه ها به شما این امکان را می دهند که دستگاه ها را با استفاده از کنترل از راه دور کنترل کنید و تقریباً در هر نوع تجهیزاتی یافت می شوند. اما با وجود این، ماژول بلوتوث به تدریج محبوبیت بیشتری پیدا می کند.

اصل عملکرد یک گیرنده IR پردازش سیگنال از کنترل از راه دور

گیرنده IR در آردوینو قادر به دریافت و پردازش سیگنال مادون قرمز در قالب پالس هایی با مدت زمان و فرکانس معین است. مورد استفاده در ساخت سنسور مانع و فاصله یاب برای آردوینو. به طور معمول گیرنده IR دارای سه پایه است و شامل عناصر زیر: فتودیود پین، تقویت کننده، فیلتر باند گذر، آشکارساز دامنه، فیلتر یکپارچه و ترانزیستور خروجی.

تحت تأثیر تابش مادون قرمز در یک فتودیود، که بین پو nمناطق یک ناحیه اضافی از نیمه هادی ایجاد کردند ( من-region)، جریان شروع به جریان می کند. سیگنال به یک تقویت کننده و سپس به یک فیلتر باند می رود که روی یک فرکانس ثابت تنظیم شده است: 30; 33; 36; 38; 40 و 56 کیلوهرتز و از گیرنده در برابر تداخل محافظت می کند. تداخل می تواند توسط هر وسیله خانگی ایجاد شود.

برای اینکه سیگنال ریموت کنترل توسط گیرنده آردوینو IR دریافت شود، ریموت کنترل باید در همان فرکانسی باشد که فیلتر موجود در گیرنده IR روی آن تنظیم شده است. بنابراین، هر کنترل از راه دور کار نخواهد کرد. شما باید یک گیرنده IR و یک فرستنده IR با فرکانس یکسان انتخاب کنید. پس از فیلتر، سیگنال به یک آشکارساز دامنه می رود که فیلتر و ترانزیستور خروجی را یکپارچه می کند.

نحوه اتصال گیرنده IR به آردوینو

محفظه گیرنده های مادون قرمز حاوی یک فیلتر نوری برای محافظت از دستگاه در برابر میدان های الکترومغناطیسی خارجی است؛ آنها از شکل خاصی ساخته شده اند تا تابش دریافتی را بر روی دیود نوری متمرکز کنند. برای اتصال گیرنده IR به آردوینو UNO از سه پایه استفاده می شود که به GND، 5 ولت و A0 متصل می شوند. توصیه می کنیم برای شروع از ولتاژ 3.3 ولت استفاده کنید تا حسگر مادون قرمز در حین نصب نسوزد.

برای این درس به جزئیات زیر نیاز داریم:

  • آردوینو اونو / آردوینو نانو / آردوینو مگا برد;
  • تخته نان;
  • گیرنده IR;
  • کنترل از راه دور؛
  • 1 LED و مقاومت 220 اهم؛
  • سیم های نر-نر و نر-ماده.

نمودار اتصال گیرنده IR به پورت آنالوگ آردوینو

گیرنده IR را مطابق نمودار بالا وصل کنید و LED ها را به پایه های 12 و 13 وصل کنید. قبل از دانلود برنامه، اگر قبلاً نصب نشده باشد، باید کتابخانه IRremote.h را نصب کنید. این کتابخانهاعمال نمی شود کتابخانه های استانداردمحیط برنامه نویسی آردوینو IDE. می توانید کتابخانه IRremote.h و طرح تمام شده را در یک آرشیو از اینجا دانلود کنید درایو گوگلارتباط دادن .

طرحی برای گیرنده IR آردوینو:

#عبارتند از // کتابخانه را برای گیرنده IR وصل کنید IRrecv irecv(A0); // نشان دهنده پینی است که گیرنده IR به آن متصل استنتایج decode_results. تنظیم void () // راه اندازی رویه ( irrecv.enableIRIn (); // شروع به دریافت کنید سیگنال مادون قرمز pinMode (13، OUTPUT)؛ // پین 13 خروجی خواهد بود pinMode (12، OUTPUT)؛ // پایه 12 خروجی خواهد بود pinMode (A0، INPUT)؛ // پین A0 ورودی خواهد بود (eng. "input") Serial.begin(9600); // مانیتور پورت را وصل کنید) حلقه خالی () // حلقه رویه ( if (irrecv.decode (&نتایج)) // اگر داده ها رسیده است، دستورات را اجرا کنید( سریال .println(results.value); // داده های دریافتی را به پورت ارسال کنید // بسته به سیگنال دریافتی LED ها را روشن و خاموش کنید if (results.value == 16754775) ( digitalWrite (13, HIGH); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) (digitalWrite (12, HIGH)؛ ) if (results.value == 16724175) ( digitalWrite (12, LOW); ) irrecv.resume (); // تایید کنید سیگنال بعدیروی گیرنده IR } }

توضیحات برای کد:

  1. کتابخانه IRremote.h شامل مجموعه ای از دستورات است و به شما امکان می دهد طرح را ساده کنید.
  2. دستور decode_results نتایج نام متغیر را به سیگنال های دریافتی از کنترل از راه دور اختصاص می دهد.

سنسور IR را می توان در بسیاری از دستگاه های موجود در میکروکنترلر آردوینو استفاده کرد، از جمله کنترل از راه دور سروو درایو در آردوینو از یک گیرنده IR. هنگام تنظیم، باید مانیتور پورت IDE Arduino را روشن کنید و بفهمید که چه سیگنالی توسط این یا آن دکمه روی کنترل از راه دور ارسال می شود. کدهای به دست آمده باید پس از علامت دو برابر در شرایط if() در طرح استفاده شوند.

همچنین اغلب بخوانید:

بهترین مقالات در این زمینه