Керуємо HTPC будь-яким пультом - Форум обговорення систем Розумний дім, проектів Ардуїно, OpenWRT та
Arduino Nano керує домашнім кінотеатром на базі HTPC.
Використання цього пристрою можна як у складі розумного будинку, автомобіля, домашнього кінотеатру тощо.
І так все по порядку:
Бажано використовувати прем'єр 36кГц - 40кГц З доступних і не дорогих цеTSOP1736,TSOP1738
Схема підключення приймача:
Далі: Встановив бібліотеку IRremote для Arduino, підправив і залив код, все запрацювало відразу. Перепробував усі пульти в будинку, працює зі всіма мною протестованими пультами Д.У. Завантажити програму для призначення кнопок ДУ . Спочатку потрібно запуститиIRKey_config.exeпризначити кнопки вашого іфрачервоного пульта дистанційного керування на будь-які клавіші Windows. Слід пам'ятати, що Windows не дозволяє емуляцію комбінації "CTRL-ALT-DEL", замість неї можна використовувати комбінацію "CTRL+SHIFT+ESC"). Після того як ви все налаштували, збережіть налаштування, закрийте програмуIRKey_config.exeі запустітьIRKey.exe(програма при запуску згорнеться в трей) , насолоджуйтесь. Для постійного використання ярлик програмиIRKey.exeзакинт в автозавантаження
Завантажити бібліотеку , розпакувати та покласти в папку C:\arduino-0017\hardware\libraries\IRremote
Код із повторами при утримуванні кнопки Для нарульних пультів Pioneer , delay зменшити до оптимального значення Або використовувати код викладений вище
byte bytes [4]; int RECV_PIN = 11; //вхід ІЧ приймача IRrecv irrecv (RECV_PIN); decode_results results ; unsigned long ir_dt, old_ir;
void setup() < Serial. begin (115200); irrecv. enableIRIn(); // увімкнути приймач >
if ( old_ir == ir_dt ) < delay ( 250 );&/ Пауза між короткими натисканнями else < delay ( 500 );>// Пауза після першого натискання та утримання (перед повторами) old_ir = ir_dt ; > if (results. value == 0xFFFFFFFF) delay (120); //пауза між повторами Serial. write (bytes, 4); > irrecv. resume (); > >
byte bytes [4]; int RECV_PIN = 11; //вхід ІЧ приймача IRrecv irrecv (RECV_PIN); decode_results results ;
void setup () Serial . begin (115200); irrecv. enableIRIn(); // увімкнути приймач >