Текущее время: 18 окт 2017, 08:28

Часовой пояс: UTC + 10 часов




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Управляем HTPC любым пультом
СообщениеДобавлено: 15 фев 2013, 10:41 
Не в сети
Аватар пользователя

Зарегистрирован: 10 янв 2012, 08:31
Сообщений: 34
Откуда: Хабаровск
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Управление ARDUINO любым пультом
Вложение:
1.gif
1.gif [ 42.23 KiB | Просмотров: 11483 ]

Использование этого устройства можно как в составе умного дома, автомобиля, домашнего кинотеатра и т.д.
И так все по порядку:

Желательно использовать премник 36кГц - 40кГц
Из доступных и не дорогих это TSOP1736, TSOP1738
Вложение:
2.gif
2.gif [ 4.1 KiB | Просмотров: 11483 ]

Схема подключения приемника:
Вложение:
3.PNG
3.PNG [ 39.3 KiB | Просмотров: 11483 ]

Далее:
Установил библиотеку IRremote для Arduino, подправил и залил код, все заработало сразу. Перепробовал все пульты в доме , работает со всеми мной протестироваными пультами Д.У.
Скачать программу "IRKey.rar", для назначения кнопок ДУ . Сначала нужно запустить IRKey_config.exe назначить кнопки вашего ифракрасного пульта дистанционного управления, на любые клавиши Windows. Следует помнить что Windows не разрешает эмуляцию комбинации "CTRL-ALT-DEL" , вместо нее можно использовать комбинацию "CTRL+SHIFT+ESC"). После того как вы все сконфигурировали, сохраните настройки, закройте программу IRKey_config.exe и запустите IRKey.exe (программа при запуске свернется в трей) , наслаждайтесь. Для постоянного использования ярлык программы IRKey.exe закинте в автозагрузку

Скачать библиотеку "IRremote.rar", распаковать и положить в папку C:\arduino-0017\hardware\libraries\IRremote

Код с повторами при удерживании кнопки
Для нарульных пультов Pioneer , delay уменишить до оптимального значения

// http://compcar.ru
#include <IRremote.h>

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(); // включить приемник
}

void loop() {
if (irrecv.decode(&results))
{
if (results.value > 0 && results.value < 0xFFFFFFFF)
{
ir_dt = results.value;
bytes[0] = ir_dt & 0xFF; // преобразовать в 4-байта
bytes[1] = (ir_dt & 0xFF00) >> 8;
bytes[2] = (ir_dt & 0xFF0000) >> 16;
bytes[3] = (ir_dt & 0xFF000000) >> 24;
Serial.write( bytes,4); // отправить прочитаное значение компьютеру

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();
}
}


Код для Arduino /Carduino без повторов при удерживании кнопки

// http://compcar.ru
#include <IRremote.h>

byte bytes[4];
int RECV_PIN = 11; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(115200);
irrecv.enableIRIn(); // включить приемник
}

void loop() {
if (irrecv.decode(&results))
{
if ((results.value > 0) && (results.value < 0xFFFFFFFF))
{
unsigned long res_dt = results.value;
bytes[0] = res_dt & 0xFF; // преобразовать в 4-байта
bytes[1] = (res_dt & 0xFF00) >> 8;
bytes[2] = (res_dt & 0xFF0000) >> 16;
bytes[3] = (res_dt & 0xFF000000) >> 24;
Serial.write( bytes,4); // отправить прочитаное значение компьютеру
}
irrecv.resume();
}
}


Если у Вас клавиатура не имеет мультимедийных или прочих клавиш , то вы можете воспользоватся таблицей что бы добавить нужные клавиши в фаил config.txt в ручную.


Вложения:
Виртуальные коды клавиш.rar [17.16 KiB]
Скачиваний: 257
IRremote.rar [16.79 KiB]
Скачиваний: 248
IRKey.rar [591.54 KiB]
Скачиваний: 273
Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 10 часов


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB