Доброго времени суток! Пожалуйста, подскажите в чем может быть проблема. Задача элементарна - включать телевизор Sony с помощью ИК светодиода на arduino uno. Коды с ИК пульта я считал (хотя в этом, видимо, не было необходимости, они известны для Sony). Убедился, что код включения a90. Сначала написал типа "сложную" программу - не работает. Начал разбираться, и упрощать свою программу, чтобы выявить проблему. В итоге остался вот такой скетч: Код (C++): #include <IRremote.h> IRsend irsend; void setup() { Serial.begin(9600); } void loop() { for (int i = 0; i < 3; i++) { irsend.sendSony(0xa90, 12); // Sony TV power code delay(1000); } } В интернете очень много примеров управление телевизором Sony. Но у меня не работает. ИК светодиод вроде мигает (проверяю камерой телефона). Но телевизор никак не реагирует. Честно, потратил весь день, все перепробовал, упростил программу до трех строк, но все равно не работает... Пожалуйста, подскажите в чем может быть проблема? Светодиод купил вот такой: https://www.chipdip.ru/product/tsal6200 Может в нем проблема? Потому, что вроде как нечему не работать, учитывая, что я вижу через камеру телефона, что светодиод мигает.
Ну так и да, коду там есть Но они не работают Код (C++): #include <IRremote.h> IRsend irsend; void setup() { Serial.begin(9600); } void loop() { irsend.sendSony(0xa90, 12); // Sony TV power code delay(1000); } кстати вы каким примером код узнавали?!?
За оформление кода пардон, понял. ) Код кнопки узнавал стандартным примером IRecvDump, ИК Светодиод на 3-м пине. Подключен через резистор 170 Ом. Я много всего прочитал вчера по форумам, понял что кондиционеры, например, сложные команды пачками посылают. Поэтому взял самый простой случай - телевизор Sony. От путьта считал ровно тот код, который везде в примерах есть. Но не работает нифига. Поэтому я и подумал, что возможно, со светодиодом какая-то проблема. Не та частота или типа того. Повторюсь, через камеру телефона я вижу, что он мигает. Изначально пробовал включить музыкальный центр методом irsend.sendRaw, посылал массив значений. Но не получилось, поэтому я упростил до самого тривиального варианта - телевизор Sony. Подозреваю, что я где-то дико туплю, ведь у всех работает...
А если так? Код (C++): #include <IRremote.h> IRsend irsend; void setup() { } void loop() { for (int i = 0; i < 3; i++) { irsend.sendSony(0xa90, 12); // Sony TV power code delay(100); } delay(10000); }
Блин, сработало! Спасибо большое! Т.е. правильно я понял, что проблема была в том, что после отправки надо было немного подождать? Я сразу отправлял ещё одну команду и тем самым сбивал с толку телевизор?
Все сработало, класс. Спасибо за советы. Осталась одна проблема - дальность. ) В идеале я бы хотел управлять разными устройствами. Но сейчас приходится очень точно направлять ик-светодиод на устройство и дальше 2-х метров не добивает. Не подскажете ли ещё, может подключить несколько светодиодов через какой-нибудь транзистор или типа того? Как грамотно увеличить дельность?