Перелопатил всю доступную информацию по этому вопросу, но добиться результата так и не смог.
Что имеем на данный момент:
Вот этот код выполняется. Впаянный на место ИК диода обычный диод моргает. Ничего не виснет, но телевизор не реагирует.
Все коды считал программкой из экзамплов библиотеки.
Вот этот код реагирует на любые входящие кнопки, по после посылки сигнала (команда висит на определенной кнопке пульта) вешает наглухо ардуинку. (Не реагирует больше ни на какие кнопки)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();
}
}
Может посмотрите, поделитесь идеями. Думаю многим бы пригодилось. Или это только у меня такие проблемы, а у всех все заработало с пол пинка, как у меня прием ИК команд...


Ответить с цитированием
