Керуємо 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(); // увімкнути приймач >