Перелопатил всю доступную информацию по этому вопросу, но добиться результата так и не смог.
Что имеем на данный момент:
Вот этот код выполняется. Впаянный на место ИК диода обычный диод моргает. Ничего не виснет, но телевизор не реагирует.
Все коды считал программкой из экзамплов библиотеки.
PHP код:
#include <IRremote.h>
IRsend irsend;
void setup()
{
}
void loop()
{
Serial.begin(115200);
for (int i = 0; i < 10; i++)
{
Serial.println("Send Mute to TV");
irsend.sendNEC(0x10EF28D7, 32);
Serial.println("OK!");
delay(5000);
}
}
Вот этот код реагирует на любые входящие кнопки, по после посылки сигнала (команда висит на определенной кнопке пульта) вешает наглухо ардуинку. (Не реагирует больше ни на какие кнопки)
PHP код:
// http://compcar.ru
#include <IRremote.h>
byte bytes[4];
int RECV_PIN = 11; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
IRsend irsend;
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); // отправить прочитаное значение компьютеру
// HiFonics DEC HiFonics DEC MyPult DEC
//Hifonics - Power 4288612599 - FF9F08F7 - 16724175 - Power
//Hifonics - Input 4288622799 - FF9F30CF - 16720095 - Band
//Hifonics - Mode 4288669719 - FF9FE817 - 16711935 - Mode
//Hifonics - VolUP 4288630959 - FF9F50AF -
//Hifonics - VolDWN 4288626879 - FF9F40BF -
//Hifonics - Test 4288639119 - FF9F708F -
//Hifonics - Source 4288632999 - FF9F58A7 -
//Hifonics - Setup 4288628919 - FF9F48B7 - 16744575 - AS/PS
//Hifonics - Up 4288671759 - FF9FF00F - 16752735 - Up
//Hifonics - Down 4288647789 - FF9F926D - 16769055 - Down
//Hifonics - Left 4288614639 - FF9F10EF - 16728255 - Left
//Hifonics - Right 4288610559 - FF9F00FF - 16730295 - Right
//Hifonics - Enter 4288667679 - FF9FE01F - 16736415 - Sel
if (ir_dt == 16760895)
{
Serial.println("Sending Mute to TV");
irsend.sendNEC(0x10EF28D7, 32);
delay(250);
Serial.println("Send Mute to TV - Ok!");
}
Serial.println(results.value, DEC);
Serial.println(old_ir, HEX);
if (old_ir == ir_dt)
{
delay(250); //Пауза между короткими нажатиями
}
else
{
delay(500); // Пауза после первого нажатия и удержания(перед повторами)
}
old_ir = ir_dt;
}
if (results.value == 0xFFFFFFFF )
{
delay(120); //пауза между повторами
Serial.println(old_ir, HEX); //Serial.write( bytes,4);
}
irrecv.resume();
}
}
Где и что копать дальше - ума не приложу. Готов уже забить на все это, но включение процессора хотелось бы все же автоматизировать...
Может посмотрите, поделитесь идеями. Думаю многим бы пригодилось. Или это только у меня такие проблемы, а у всех все заработало с пол пинка, как у меня прием ИК команд...