Урок 35

У цьому уроці ми створимо універсальний інфрачервоний пульт дистанційного керування. Шість кнопок універсального ІЧ-пульта дозволяють запрограмувати себе на передачу команди будь-якого іншого ІЧ-пульта. Код кнопок зберігається в незалежній області пам'яті Arduino-EEPROM. Це означає, що Вам не доведеться програмувати кнопки при кожному увімкненні універсального ІЧ-пульта.
*Універсальний інфрачервоний пульт може відтворювати сигнали тільки тих інфрачервоних пультів, які передають дані одним інформаційним пакетом не довше 32 біт, а також мають (або ні) однакові пакети утримання (пакети повторів).
Нам знадобиться:
- Arduino Uno х 1шт.
- Trema модуль - ІЧ-приймач x 1шт.
- Trema модуль - ІЧ-передавач x 1шт.
- Trema модуль – кнопка (синя) x 7шт.
- Trema модуль – зумер x 1шт.
- Trema Shield x 1шт.
- Конструктор для створення каркасу.
Для реалізації проекту нам необхідно встановити бібліотеку:
- iarduino_IR для роботи з ІЧ-приймачами.
- EEPROM – входить у стандартний набір Arduino IDE.
Про те, як встановлювати бібліотеки, Ви можете ознайомитися на сторінці Wiki - Встановлення бібліотек в Arduino IDE.
Схема підключення:
Усі модулі, що використовуються в уроці, можна підключати до будь-яких висновків Arduino, як цифровим, так і аналоговим. Номери висновків, до яких підключені модулі, вказуються в скетчі.
- Trema-кнопки підключено до цифрових висновків 2-8.
- Trema ІЧ-приймач підключений до цифрового виводу 9.
- Trema ІЧ-передавач підключений до цифрового виводу 10.
- Trema-зуммер підключено до цифрового виводу 11.
- Всі модулі підключені до Arduino Uno черезTrema Shield.

Алгоритм роботи:
Відправлення команд:
- При натисканні на одну з шести кнопок універсального ІЧ-пульта, він відправить команду, що відповідає натиснутій кнопці.
- Якщо натиснутою кнопці команда не присвоєна, то інфрачервоний пульт видасть звуковий сигнал, що сигналізує про помилку.
Призначення команд кнопкам:
- Для призначення команд кнопкам універсального ІЧ-пульта потрібно виконати такі дії:
- Натиснути на кнопку "запис команди" і, не відпускаючи її, натиснути на кнопку універсального ІЧ-пульта, якій ми хочемо привласнити команду з іншого ІЧ-пульта.
- Універсальний ІЧ-пульт видасть два короткі звукові сигнали, сигналізуючи про готовність прийняти дані.
- Натиснути кнопку іншого ІЧ-пульта, код якої ми хочемо рахувати.
- Як тільки код буде зчитаний, універсальний ІЧ-пульт видасть короткий звуковий сигнал, що сигналізує про успішний запис коду. Тепер можна відпустити усі кнопки.
Код програми:
Для генерації звуку написана функція myTone() замість стандартної функції tone(), так як стандартна функція використовує 2 апаратний таймер, який вже використовується бібліотекою iarduino_IR.