1. ІК-пульт
Що потрібно для того, щоб навчити робота слухатися інфрачервоного (ІК) пульта? По-перше, нам потрібно сам пульт. Можна використовувати звичайний пульт від телевізора, а можна придбати мініатюрний пульт від автомагнітоли. Саме такі пульти часто використовуються для керування роботами.
На такому пульті є 10 цифрових кнопок і 11 кнопок для маніпуляції з музикою: гучність, перемотування, play, stop, і т.д. Для наших цілей цілком достатньо.
2. ІЧ-датчик
По-друге, для прийому сигналу з пульта нам буде потрібно спеціальний ІК-датчик. Взагалі, ми можемо детектувати інфрачервоне випромінювання звичайним фотодиодом / фототранзистором, але на відміну від нього, наш ІК-датчик сприймає інфрачервоний сигнал тільки на частоті 38 кГц (іноді 40кГц). Саме така властивість дозволяє датчику ігнорувати багато сторонніх світлових шумів від ламп освітлення і сонця.
Для цього уроку скористаємося популярним ІК-датчиком VS1838B. який володіє наступними характеристиками:
- несуча частота: 38 кГц;
- напруга живлення: 2,7 - 5,5 В;
- споживаний струм: 50 мкА.
Можна використовувати і інші датчики, наприклад: TSOP4838, TSOP1736, SFH506.
3. Підключення
Датчик має три висновки (три ноги). Якщо подивитися на датчик з боку приймача ІК сигналу, як показано на малюнку,
- то зліва буде - вихід на контролер,
- по центру - негативний контакт живлення (земля),
- і справа - позитивний контакт харчування (2.7 - 5.5В).
Принципова схема підключення
Зовнішній вигляд макета
4. Програма
Підключивши ІК-датчик писатимемо програму для Ардуіно Уно. Для цього скористаємося стандартної бібліотекою IRremote. яка призначена саме для спрощення роботи з прийомом і передачею ІК сигналів. За допомогою цієї бібліотеки будемо приймати команди з пульта, і для початку, просто виводити їх у вікно монітора послідовного порту. Ця програма нам стане в нагоді для того, щоб зрозуміти який код дає кожна кнопка.
Завантажуємо програму на Ардуіно. Після цього, пробуємо отримувати команди з пульта. Відкриваємо монітор послідовного порту (Ctrl + Shift + M), беремо в руки пульт, і направляємо його на датчик. Натискаючи різні кнопочки, спостерігаємо у вікні монітора відповідні цих кнопок коди.
Проблема із завантаженням програми
У деяких випадках, при спробі завантажити програму в контролер, може з'явитися помилка:
TDK2 was not declared In his scope
Щоб її виправити, достатньо видалити два файли з папки бібліотеки. Заходимо в провідник. Переходимо в папку, де встановлено додаток Arduino IDE (швидше за все це «C: \ Program Files (x86) \ Arduino»). Потім в папку з бібліотекою:
і видаляємо файли: IRremoteTools.cpp і IRremoteTools.h. Потім, перезапускаємо Arduino IDE, і знову пробуємо завантажити програму на контролер.
5. Управляем светодиодом за допомогою інфрачервоного пульта
Тепер, коли ми знаємо, які коди відповідають кнопкам пульта, пробуємо запрограмувати контролер на запалювання і гасіння світлодіода при натисканні на кнопки гучності. Для цього нам буде потрібно коди (можуть відрізнятися, в залежності від пульта):
- FFA857 - збільшення гучності;
- FFE01F - зменшення гучності.
Як світлодіода, використовуємо вбудований світлодіод на виведення №13, так що схема підключення залишиться колишньою. Отже, програма:
Завантажуємо на Ардуіно і тестуємо. Тиснемо vol + - світлодіод запалюється. Тиснемо vol- - гасне. Тепер, знаючи як це все працює, можна замість світлодіода управляти двигунами робота, або іншими саморобними мікроелектронними пристроями!