- Потрібні компоненти
- Як працює ІЧ-зв'язок?
- Кругова діаграма
- Програмування для віддаленого декодера Arduino
- Збереження даних ІК-віддаленого декодера в аркуші Excel
ІЧ (інфрачервоний) зв’язок - це проста, недорога та широко використовувана технологія бездротового зв’язку. ІЧ-світло дещо схоже на видиме світло, за винятком того, що довжина хвилі трохи довша. Ця властивість ІЧ-сигналу робить його невизначеним для людського ока та ідеальним для бездротового зв'язку.
Є багато програм, де вам потрібно декодувати ІЧ-сигнали для роботи деяких пристроїв за допомогою ІЧ-пульта. Отже, у цьому підручнику ми збираємось використовувати ІЧ-приймач TSOP1838 для побудови ІК-віддаленого декодера за допомогою Arduino. Шістнадцятковий код для кожної кнопки реєструється в аркуші Microsoft Excel. Цей простий декодер ІК-пульта дистанційного керування може бути використаний у таких проектах, як ІК-пульт дистанційного керування роботом, автоматизацією дому та іншими проектами, що контролюються ІЧ.
Раніше ми використовували ІК-пульт та приймач TSOP для створення багатьох корисних програм, таких як:
- ІК-пульт дистанційного керування TRIAC
- ІЧ-дистанційне керування домашньою автоматизацією за допомогою Arduino
- ІЧ-дистанційне керування домашньою автоматизацією за допомогою мікроконтролера PIC
- Контрольований мобільним телефоном змінний струм за допомогою Arduino та Bluetooth
Потрібні компоненти
- Arduino Uno / Arduino Nano
- ІЧ-приймач (TSOP1838)
- Провід перемички
- Макет
Як працює ІЧ-зв'язок?
Як і інші системи зв'язку, інфрачервоний зв’язок також має передавач і приймач. Передавач виглядає так само, як світлодіод, але він виробляє світло в ІЧ-спектрі замість видимого спектру. Хоча ІЧ-приймач - це фотодіод, вбудований з попереднім підсилювачем, який змінює ІЧ-світло на електричний сигнал. Для ІЧ-зв'язку як передавач, так і приймач повинні бути спрямовані один на одного. Щоб дізнатися більше про ІЧ-передавач та схему приймача, перейдіть за посиланням.
При натисканні пульта дистанційного керування інфрачервоний світлодіод (передавач) випромінює інфрачервоне світло. Це світло приймається приймачем, який зазвичай є фотодіодом або фототранзистором. Але ІЧ-світло випромінює також сонце, лампочки та все інше, що виробляє тепло. Це може заважати сигналу передавача, тому, щоб запобігти цьому, сигнал передавача модулюється з використанням несучої частоти від 36 кГц до 46 кГц. Отримавши сигнал, ІЧ-приймач демодулює сигнал і перетворює його в двійковий, перш ніж відправити його на мікроконтролер.
Тут ми використовуємо пульт дистанційного керування телевізором для передачі ІЧ-сигналу та TSOP1838 з Arduino для їх отримання.
Також перевірте тут різні програми на основі ІЧ-сигналу, включаючи схему перешкод пульта дистанційного керування телевізора та схему ІЧ-тестера.
Кругова діаграма
Схема схеми для ІК-віддаленого декодера з використанням Arduino наведена нижче:
Підключення дуже просте, оскільки датчик ІЧ-приймача має лише три висновки, Vs, GND та Data. Підключіть Vs та GND штифт ІЧ-приймача до 3,3 V GND штифта Arduino та Data pin до Цифрового виводу 2 Arduino.
Програмування для віддаленого декодера Arduino
Повний код ІЧ-декодера Arduino наведено в кінці сторінки.
Для декодування ІК-пульта спочатку нам потрібно завантажити та додати ІЧ-бібліотеку до IDE Arduino. Ви можете завантажити бібліотеку IR Remote звідси. Завантаживши файл, відкрийте свій ID Arduino і перейдіть до Ескіз> Включити бібліотеку> Бібліотека Add.Zip . Виберіть файл бібліотеки та натисніть "Відкрити".
Почніть свій код, включивши файл віддаленої бібліотеки ІЧ-пульта.
#включати
Після цього визначте штифт Arduino, куди ви підключили штифт даних ІЧ-приймача. У моєму випадку він підключений до виводу D2 Arduino.
int IRPIN = 2;
Після цього створіть екземпляр для штифта ІЧ-приймача.
IRrecv unrecv (IRPIN);
У наступному рядку визначте об'єкт для класу decode_results , він буде використовуватися ІЧ-приймачем для надсилання декодованої інформації.
результат декодування_результатів;
Усередині установки () функції, ініціювати послідовну зв'язок, і запустити ІК - приймач з допомогою виклику IRrecv функції enableIRIn ().
void setup () {Serial.begin (9600); Serial.println ("Включення IRin"); revocv.enableIRIn (); Serial.println ("Увімкнено IRin"); Initialize_streamer (); }
У функції loop () , revocv.decode постійно перевіряє наявність нового сигналу, і якщо отриманий новий сигнал, отриманий код сигналу буде збережений у функції result.value .
void loop () {if (unrecv.decode (& result)) {Serial.print ("Значення:"); Serial.println (result.value, HEX); Write_streamer (); unrecv.resume (); } затримка (500); }
Для надсилання даних на аркуш Excel з Arduino ми використовуємо PLX-DAQ. Використовуючи функцію Write_streamer () , ми надсилаємо дані послідовно за певним шаблоном, як і відображення значення на послідовному моніторі. Основні рядки пояснюються нижче:
void Write_streamer () {Serial.print ("DATA"); // завжди пишемо "DATA", щоб вказати наступне як Data Serial.print (","); // Перехід до наступного стовпця за допомогою "," Serial.print (result.value, HEX); // Зберігати дату в Excel Serial.print (","); // Перехід до наступного стовпця за допомогою "," Serial.println (); // Кінець рядка перейти до наступного рядка}
Коли обладнання та програма будуть готові, настав час завантажити програму на вашу плату Arduino Nano. Після завантаження коду направте пульт до ІЧ-приймача та натисніть пульт дистанційного керування. Шістнадцятковий код для кожної кнопки буде надрукований на послідовному моніторі.
Збереження даних ІК-віддаленого декодера в аркуші Excel
Тепер для надсилання даних на аркуш Excel ми будемо використовувати PLX-DAQ. Це плагінове програмне забезпечення Excel, яке допомагає писати значення з Arduino безпосередньо на аркуші Excel на ноутбуці або ПК. За допомогою посилання завантажте файл. Після завантаження витягніть файл і натисніть файл.exe, щоб встановити його. Він створить папку PLX-DAQ на робочому столі.
Тепер відкрийте файл « Таблиця PLX-DAQ» із папки робочого столу. Якщо у вашому Excel макроси вимкнено, ви побачите блок безпеки, як показано на малюнку нижче:
Клацніть на Параметри-> Увімкнути вміст -> Готово -> Добре, щоб увімкнути макроси. Після цього ви отримаєте наступний екран:
Тепер виберіть швидкість передачі даних як “9600” і порт, до якого підключений ваш Arduino, а потім натисніть кнопку Підключитися, щоб розпочати потокову передачу даних. Ваші значення повинні починати реєструватися, як показано на малюнку нижче.
Ось як можна легко побудувати ІК-віддалений декодер Arduino для перетворення ІК-віддалених сигналів в еквівалентний шістнадцятковий код.
Повний код Arduino з демонстраційним відео наведено нижче.