IRemote. IR-код включения телевизора.

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

Здравствуйте, прошу совета.

Реализовал на днях проект WiFi-пульта на реплике Uno + ESP8266. Упавление осуществляется телевизором Supra и медиаплеером IconBit с клиентских приложений Android / Windows Desktop. Всё работает, кроме включения телевизора. Код кнопки правильный - включенный телевизор успешно выключается.

Коды, отправляемые на IR-диоды методами библиоки IRemote, записаны с помощью них-же, через модуль VS1838 (IR-приёмник TL1838). Кодировка кодов, как говорит библиотека, - Samsung. 

Но при том, что декодированное значение одинаковое, то сам сигнал отличается раз от раза:

// SAMSUNG 707030CF

unsigned int  rawData1[67] = {4650,4250, 750,350, 750,1450, 750,1450, 700,1550, 600,500, 600,500, 600,500, 600,500, 600,550, 550,1650, 550,1650, 550,1650, 550,550, 550,550, 550,550, 550,600, 500,600, 500,600, 500,1700, 500,1700, 500,600, 500,600, 550,550, 550,550, 550,1700, 500,1700, 500,600, 500,600, 500,1700, 550,1650, 550,1650, 550,1700, 500};

unsigned int  rawData2[67] = {4750,4100, 800,300, 800,1400, 850,1400, 800,1400, 800,300, 800,300, 800,300, 800,300, 750,400, 700,1500, 750,1450, 750,1450, 750,350, 750,350, 750,350, 750,400, 650,450, 600,500, 600,1600, 600,1650, 550,550, 550,550, 550,550, 550,550, 550,1650, 550,1700, 500,600, 500,600, 500,1700, 500,1700, 500,1700, 550,1700, 500};

unsigned int  rawData3[67] = {4650,4200, 800,350, 650,1550, 600,1600, 600,1650, 550,550, 550,550, 550,550, 550,550, 550,550, 550,1650, 550,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 550,550, 550,550, 550,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 500,1700, 550,1650, 550,600, 500,600, 500,1700, 500,1700, 500,1700, 550,1650, 550};

unsigned int  rawData4[67] = {4550,4350, 600,500, 600,1600, 600,1600, 600,1650, 550,550, 550,550, 550,550, 500,600, 550,550, 550,1650, 550,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 500,600, 550,550, 550,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 550,1650, 550,1650, 550,600, 500,600, 500,1700, 500,1700, 500,1700, 550,1650, 550};

unsigned int  rawData5[67] = {4550,4350, 600,500, 600,1600, 600,1650, 550,1650, 550,550, 550,550, 550,550, 550,550, 550,550, 550,1700, 500,1700, 500,1700, 500,600, 500,600, 500,600, 550,550, 550,550, 550,550, 550,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 550,1650, 550,1700, 500,600, 500,600, 500,1700, 500,1700, 550,1650, 550,1650, 550};

unsigned int  rawData6[67] = {4550,4400, 550,550, 550,1650, 550,1650, 550,1650, 550,550, 550,550, 550,600, 500,600, 500,600, 500,1700, 500,1700, 500,1700, 550,550, 550,550, 550,600, 500,600, 500,600, 500,600, 500,1700, 500,1700, 550,550, 550,550, 550,550, 550,600, 500,1700, 500,1700, 500,600, 500,600, 500,1700, 550,1650, 550,1700, 500,1700, 500};

unsigned int  rawData7[67] = {4500,4350, 600,550, 550,1650, 550,1650, 550,1650, 550,550, 550,550, 550,600, 500,600, 500,600, 500,1700, 500,1700, 550,1650, 550,550, 550,550, 550,600, 500,600, 500,600, 500,600, 500,1700, 500,1700, 550,550, 550,550, 550,550, 550,600, 500,1700, 500,1700, 500,600, 550,550, 550,1650, 550,1650, 550,1700, 500,1700, 500};

unsigned int  rawData8[67] = {4650,4200, 800,300, 800,1400, 800,1400, 850,1400, 800,300, 800,300, 750,350, 750,350, 750,350, 750,1500, 650,1550, 600,1600, 600,550, 550,550, 550,550, 550,550, 550,550, 550,550, 550,1650, 550,1650, 550,600, 500,600, 500,600, 500,600, 500,1700, 500,1700, 550,550, 550,550, 550,1700, 500,1700, 500,1700, 500,1700, 500};

unsigned int  rawData9[67] = {4550,4350, 600,550, 550,1650, 550,1650, 550,1650, 550,550, 550,550, 550,550, 550,550, 550,600, 500,1700, 500,1700, 500,1700, 500,600, 550,550, 550,550, 550,550, 550,600, 500,600, 500,1700, 500,1700, 500,600, 550,550, 550,550, 550,550, 550,1700, 500,1700, 500,600, 500,600, 500,1700, 550,1650, 550,1650, 550,1700, 500};
Отправлял и sendRAW с каждым из представленных - ноль реакции. С пульта-же телевизор включается всегда с первого раза. Код с пульта тоже записывается один раз, повторов IRemote не видела.

Частоту с 38 не менял, т.к. записывал-то значения на ней и она нужна для плеера, а разделять линии с IR-диодами - надо будет переписывать библиотеку (разделять с 3-го пина на разные, добавлять входящий аргумент с нужным портом и т.д.)

Что можно попробовать, чем ещё посмотреть сигнал пульта? 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Keeper-Volok пишет:

чем ещё посмотреть сигнал пульта? 

Самое точное - логическим анализатором. Можно китайским дешёвым типа такого.

Я таким смотрел сигнал с нескольких пультов (все оказались на 36КГц). На макетке подключал разные ИК-приемники (TSOP4836, HL536AA3P) и к выходным ножкам цеплял щупы лог. анализатора (кстати, сигнал с них снимается инвертированный: лог 0 - высокий уровень, лог 1 - низкий уровень). Можно наверно и к излучающему ИК-светодиоду в пульте подцепить (сигнал будет нормальный, не инвертированный, но промодулирован несущей частотой).

P.S. К сожалению, автоматическое декодирование сигналов с ИК-пультов в софте пока не добавили, пришлось декодировать вручную по описаниям протоколов из интернета. В итоге успешно декодировал протокол NEC.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jeka_M, да-да. нужно к ик-светодиоду пульта цепляться либо ловить ик-фотодиодом, иначе эмулятор сложнее написать. Я прямо пальцем считал кол-во импульсов заполнения несущей частотой, и в точности такое же число генерил.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Жаль не дописал плагин для Saleae, распознавалка кодов для IR протоколов.

Распознает код, можно не считать импульсы.

Протоколов 20 есть, но мало тестировал, потому не выкладывал никуда. Если кому интересно, выложу на предмет потестировать.

Тестировал, подавая выход с IR на анализатор, МК не нужен. Всякие NEC и подобные пашут нормально.

UPD: Да, хотел сделать автомат, но руки не дошли, распознавалка работает только если указан протокол. Но автомат реализовать возможно, но времени вообще нет.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

kisoft пишет:

Если кому интересно, выложу на предмет потестировать.

Интересно конечно, только все мои пульты используют NEC. Может где-нибудь RC-5, RC-6 ещё найду. Если что, исключительно для личного пользования, выкладывать нигде не буду.

kisoft пишет:

Тестировал, подавая выход с IR на анализатор

Выход с IR-приёмника?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Jeka_M пишет:

kisoft пишет:

Если кому интересно, выложу на предмет потестировать.

Интересно конечно, только все мои пульты используют NEC. Может где-нибудь RC-5, RC-6 ещё найду. Если что, исключительно для личного пользования, выкладывать нигде не буду.

Так смысл в том, чтобы получить готовые коды. Сам протокол не особо интересен. Хотя я коды формировал как в протоколе описано, а не как IRremote получает (порядок битов может не совпадать). Впрочем это можно легко переделать. И таки да, "потестировать" - это просто поюзать, когда придется, а не то, чтобы целенаправленно сесть и тестить, тестить, тестить. Я же не изверг. У меня тоже только NEC. Тестировал в симуляторе (это когда к Saleae железка не подключена, он генерит сигнал, точнее генерит плагин :) ).

Jeka_M пишет:

kisoft пишет:

Тестировал, подавая выход с IR на анализатор

Выход с IR-приёмника?

Ну да с TSOP 1838, например. Уже демодулированный сигнал.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

kisoft пишет:

Так смысл в том, чтобы получить готовые коды. Сам протокол не особо интересен.

Та понятно, что само по себе определение протокола не слишком интересно. Я как раз имел в виду получение готовых кодов на разных протоколах, а не только NEC. То есть, хочу проверить ещё декодирование RC-5, RC-6.

kisoft пишет:

Хотя я коды формировал как в протоколе описано, а не как IRremote получает (порядок битов может не совпадать).

Я тоже заметил. Не разбирался с алгоритмом получения значений в IRremote, но он там явно не правильный. То есть, значения которые оно выдаёт не совпадает с теми, которые декодированы вручную по описанию протокола.

kisoft пишет:

И таки да, "потестировать" - это просто поюзать, когда придется, а не то, чтобы целенаправленно сесть и тестить, тестить, тестить. Я же не изверг. У меня тоже только NEC. Тестировал в симуляторе (это когда к Saleae железка не подключена, он генерит сигнал, точнее генерит плагин :) ).

Хорошо, как можно получить Ваш плагин? :-)

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

Благодарю всех ) 

Да, Saleae-подобный логический анализатор надо будет заказать, в любом случае ещё пригодится.

А пока попробую пересобрать на транзисторном ключе, запитав диоды с порта питания Uno. Сейчас питается непосредственно с PWM-ноги Atmeg'и, и есть мысли, что просто не хватает мощности сигнала.

Т.к. почитал темы про шасси телеков - там, похоже, ИК-приёмник читают две разные логики. Одна - только на включение (с которой у меня что-то не так), и если код верен - врубаем питание для всего остального, и дальше с ИК-приёмником работает включенный основной процессор, которому всего хватает, поэтому ТВ и выключается нормально.

Если увеличения питания не хватит - буду ждать анализатор )

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Keeper-Volok, если уж вы грешите на аппаратную часть, то неплохо бы озвучить что за ИК светодиод у вас, какой токоограничительный резистор используете.  Но использовать ключ -в любом случае верное решение, ИК светодиоды жрут по 100ма, если их раскочегарить на полную, и перегруз ноги МК тут очевиден.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Jeka_M пишет:

Хорошо, как можно получить Ваш плагин? :-)

Надеюсь автор топика не будет сильно против. Если что то пойдет не так, сделаю отдельную тему, чтобы здесь не засорять.

У меня версия плагина только под 64 бита. Могу собрать и 32, но только после окончания ремонта, недели через две :) только проверить не смогу. Saleae LLC v1.2.9.

DLL лежит здесь. Это ссылка на мой Dropbox.

Нужно её положить в каталог Analyzers и перезапустить Saleae LLC.

В списке анализаторов он будет фигурировать под названием "KiIR".

 

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

dimax пишет:

неплохо бы озвучить что за ИК светодиод у вас, какой токоограничительный резистор используете.

ИК-диоды - самые обычные, 940 нм. Брал эти.
По интенсивности - понятия не имею, ну наверно в интервале 30 - 90mW/sr.

Токоограничитель - собственно, встроенный нагрузочный резистор 20 кОм ))

 

kisoft пишет:

Надеюсь автор топика не будет сильно против.

Да ну, что Вы )
Мне тоже очень интересно, и к теме относится как ни на есть прямо.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Блин, у меня как раз 32 бита, всё на 64 никак не перейду. Но всё равно спасибо. Если что, подожду под 32 бита столько, сколько надо.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Keeper-Volok пишет:

Токоограничитель - собственно, встроенный нагрузочный резистор 20 кОм ))

Куда встроенный?

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

Jeka_M пишет:

Куда встроенный?

В чип атмеги

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Keeper-Volok пишет:

В чип атмеги

Так это не нагрузочный резистор, а подтягивающий. Через него можно включить подтяжку к питанию, если пин атмеги сконфигурирован в режим входа. В режиме выхода этот резистор не задействован. При подключении светодиодов к пинам атмеги нужно обязательно ставить внешний токоограничивающий резистор.

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

Jeka_M пишет:

Так это не нагрузочный резистор, а подтягивающий.

Хм, ну да. Дядю Ома я не попытался вспомнить, цитируя значения )

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Создал отдельную тему по плагину http://arduino.ru/forum/otvlechennye-temy/saleae-llc-plaginy-ot-kisoft, выложил там оба варианта, 64 бита и 32.

 

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

В общем, нашёл из того, что было - биполярный PH2369...
Вроде бы всё должно быть, коэффициент увеличения от 40-ка, ток до 200 мА...
Но особенных изменений по интенсивности не произошло.

Питание ИК-диода от 9V 1A.
Начинал с 1K на базу транзистора и с 470 на диод, но в ходе эксперимента понизил до полного их отсутствия.

Также нашёл тему с аналогичной проблемой, но что делать яснее не стало.
Попробую поэкспериментировать с конденсаторами

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Keeper-Volok, причина может быть и в плохом распозновании оригинальных таймингов, ибо библа IRremote снимает их довольно приблизительно. Я как-то раз сравнивал на примере команды "NEC"-вского пульта. Оригинальный сигнал с пульта имеет такие параметры: (снято лог. анализатором)

Длительность большой паузы -1,613мс

длительность малой паузы -0,533мс

Частота заполнения -39,8кГц

IRremote сэмулировал вот так:   1,724мс   0,568мс   38,1кГц

Самописный эмулятор сделал это гораздо точнее :)

Keeper-Volok
Keeper-Volok аватар
Offline
Зарегистрирован: 10.06.2016

Jeka_M, dimax, огромное спасибо за советы, пара недель ожидания анализатора с али - и проблема решена 

В общем, IRemote принял длинную паузу в 46 миллисекунд за конец сигнала и обрезал меандр )

Переписал из Saleae тайминги (не нашёл, как экспортировать текст, наверно плагины какие), немного округлил до ближайших сотых и отправил той-же IRemote:

const unsigned int SupraOff[73] = {4500,4500, 500,600, 500,1700, 500,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 500,600, 500,1700, 500,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 500,600, 500,600, 500,1700, 500,1700, 500,600, 500,600, 500,600, 500,600, 500,1700, 500,1700, 500,600, 500,600, 500,1700, 500,1700, 500,1700, 500,1700, 500,46640, 4500,4500, 500,1700, 500};
irsend.sendRaw(rawData, 73, 38);

Всё работает 

prah
Offline
Зарегистрирован: 28.11.2016

сам мучался с тойже проблемой. и да. на двух девайсах дамп обрубает из-за длинной паузы. библиотека думает что посылка кончилась.

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

в IRremoteInt.h параметр #define _GAP отвечает какраз за длительность пропуска. я поставил 50000. 

#define RAWBUF - длина буфера. я поставил 500.

в результате увидел всю посылку. увидел что она состоит из двух разных пакетов. сделал передачу двумя командами подряд и все заработало) 

Может кому поможет)

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Всё правильно, главное, чтобы памяти хватило на 500. Я в своё время делал динамический буфер на всю оставшуюся память минус запас, специально с такой целью, чтобы словить побольше, хотя щас проще анализатором всё это поймать и расшифровать, проще.

prah
Offline
Зарегистрирован: 28.11.2016

ну правда с такой модификацией только дамп снимать. если модифицированной библиотекой пытаться отправить - техника не понимает. т.е. с модификацией только дамп, отправка стоковой библиотекой. как ни странно

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Сняв дамп, можно определить примерные времянки (статистически, многократным повторением кодов), а там и недалеко до использования своего протокола, либо, если вдруг, подойдет какой то уже готовый. Учитывая, что типов протоколов с десяток вряд ли наберется, даже меньше, можно использовать готовый алгоритм из той же IRremote, только добавив нужные правки.

Я со своей сплит системы так снял дампы логическим анализатором (а там до 192 или типа того бит, три посылки с разными длинами), вот только пока руки так и не дошли, сделать ему протокол, хотя правильно говорят, готовь сани летом, а телегу - зимой. Пока не сезон, но времени не хватает всё равно.

 

prah
Offline
Зарегистрирован: 28.11.2016

да, у меня посылки 135 бит. внутри две посылки по 67 (если смотреть стандартным дампом то можно словить их по очереди) и видать какой-то закрывающий... протокол пишет NEC, но через него ничего не шлет, техника не понимает. тока RAW

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

prah пишет:

да, у меня посылки 135 бит. внутри две посылки по 67 (если смотреть стандартным дампом то можно словить их по очереди) и видать какой-то закрывающий... протокол пишет NEC, но через него ничего не шлет, техника не понимает. тока RAW

Собственно, можно же понять, где 0, а где 1 и как они кодируются (даже если перепутаешь 0 и 1, это не важно). Реализовать это и посылать не в RAW, а 67 битные слова (9 байт всего то вместо мега-массива). Строго соблюсти паузу между двумя посылками. И всё должно работать. Я так и хотел со сплитом делать, нафиг там RAW не нужен, памяти не напасешься. Впрочем кому как, спорить не буду.

 

prah
Offline
Зарегистрирован: 28.11.2016

ну там хз где 1 и 0, там все импульсы разные:

8550,4100, 650,1450, 600,500, 550,1550, 550,500, 650,400, 600,1500, 600,500, 550,1550, 550,500, 650,1450, 600,450, 600,1550, 550,1550, 550,500, 700,1400, 650,400, 600,500, 550,500, 550,1550, 650,1450, 650,1450, 600,450, 600,1550, 550,500, 600,1500, 650,1450, 650,400, 600,500, 550,500, 600,1500, 650,400, 600,1500, 600,25350, 8500,4150, 600,1500, 600,500, 550,1550, 550,500, 650,400, 600,1550, 550,500, 550,1550, 600,450, 600,1500, 600,500, 550,1550, 550,1550, 550,500, 650,1450, 600,450, 600,500, 550,500, 650,400, 600,500, 550,500, 600,450, 600,1500, 600,1500, 600,1500, 600,1550, 550,1550, 550,1550, 550,1550, 550,1550, 600,450, 600,500, 600

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Смотришь описание протокола NEC.

Подходит идеально. Только посылок ДВЕ.

Стартовый бит 9000 + 4500.

"1" - это 560 + 1690

"0" - это 560 + 560

В том, что ты привел, получаем две посылки:

1010 0101 0101 1010 0011 1010 1100 0101 (0xA55A3AC5)

и

1010 0101 0101 1010 0000 0011 1111 1100 (0xA55A03FC)

Для первой Address = 10100101, /Address = 01011010, Command = 00111010, /Command = 11000101

Для второй Address = 10100101, /Address = 01011010, Command = 00000011, /Command = 11111100

Всё тупо и просто.

В конце каждой посылки есть короткий импульс, его длительность 560, но он автоматом сформируется в sendNEC.

Нужно вызвать два раза sendNEC с паузой между ними в 25ms. Для проверки можно тупо delay выполнить на 25ms.

Более чем уверен, что всё получится.

 

prah
Offline
Зарегистрирован: 28.11.2016

спасибо! седня оттестирую и отпишусь. NECом пробовал две посылки подряд делать, но чот прибор его не понял. может быть дело в этих заветных 25мс

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Скорей всего, в таких протоколах важна пауза. Плюс они как то должны определить эта пауза между кодами или между посылками.

Да, результат был бы интересен.

Я бы в setup всё сделал и застопорился, предварительно засветив светодиод на 13 пине. Типа:

sendNEC(); delay(25); sendNEC(); digitalWrite(13, HIGH); while(1) {};

Это чтобы не накосячить с многократной посылкой.

Если вдруг не получится, можно будет поиграть с длительностями MARK & SPACE, но, думаю, всё будет работать.

prah
Offline
Зарегистрирован: 28.11.2016

да, дело в этих 25мс. все работает. со всеми остальными кнопками разобрался.

но это только присказка была)) это был ресивер

теперь мне нужно включить телевизор. у него хитрый радио пульт, но на чужие ИК пульты он весело подмыргивает светодиодом, из чего я сделал вывод, что ИК сенсор там тоже присутствует. взял грошевый универсальный пульт и перебором нашел команду которая включает телек. проблема в том что она длинная и похоже там несколько команд по принципу "чтонить да сработает". я ее пытался разобрать по аналогии, но включить телек через NEC (дамп говорит что это именно он) мне так и не удалось. RAWом включается нормально. сможете помочь?)

 

unsigned int ontv[] = {8650,4450, 550,550, 550,550, 600,550, 550,500, 600,1650, 550,550, 550,550, 600,500, 600,1600, 600,1650, 550,1700, 550,1600, 550,600, 550,1650, 550,1650, 600,1600, 600,1650, 550,1650, 600,1600, 600,500, 600,1600, 600,550, 550,550, 550,600, 550,550, 550,550, 500,550, 600,1600, 600,500, 600,1650, 550,1650, 600,1600, 550,38650, 850,950, 1700,900, 850,900, 850,900, 850,900, 850,900, 850,900, 850,900, 850,1800, 850,950, 1700,900, 850,43350, 900,900, 1700,900, 850,900, 850,900, 850,900, 850,900, 850,900, 850,950, 850,1750, 900,900, 1750,850, 900,46700, 3300,3350, 850,850, 850,2500, 800,850, 850,2500, 900,800, 800,850, 850,800, 900,2450, 900,800, 800,2550, 850,800, 900,800, 850,2500, 850,800, 900,2450, 900,800, 850,2500, 850,2500, 850,2500, 900,800, 800,2550, 800,850, 850,2500, 850,2500, 850,32400, 3250,3400, 850,800, 850,2500, 900,800, 800,2550, 850,800, 900,800, 800,850, 850,2500, 850,850, 850,2500, 800,850, 850,850, 800,2550, 800,850, 850,2500, 850,850, 800,2550, 800,2550, 850,2500, 850,800, 850,2500, 850,850, 800,2550, 850,2500, 850}; 
 
kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Навскидку, здесь первая посылка NEC (32 бита, код сам можешь посмотреть по аналогии, как я расшифровал в прошлый раз), далее две предположительно 11-битные посылки без стартового бита, обе посылки одинаковые, после этого еще две одинаковые посылки по 24 бита, но они уже со стартовыми битами.

Получается 3 посылки, NEC и две пары. Две пары - точно НЕ NEC, потому что другие длительности. Две пары - навскидку я не нашел, а что бы искать, нужно время, которого нет :) За деньги я бы тоже не взялся - некогда.

Последняя пара похожа на MATSUSHITA по длительностям и по количеству бит. Вторая пара я сперва думал, что это манчестер, но копаться не захотелось, потому - хз.

Вот тебе пара ссылок, копай http://www.mikrocontroller.net/articles/IRMP_-_english ; http://www.lirc.org/

PS Бесплатный совет. На будущее, если кого то просишь помочь, указывай номер карты и пин код марку телика хотя бы, возможно это могло бы помочь.

Удачи!

prah
Offline
Зарегистрирован: 28.11.2016

Я задал вопрос на оффоруме, они мне ответили какой пульт подойдет к телевизору. Думаю в моем случае самый простое решение проблемы - купить его. Либо если дадут в магазине - считать коды прямо там.
Пока попробую покидать эти посылки по отдельности - авось какая-то одна из них моя.

телек phillips 55PUS7809

Ссылка на ветку с моделью и картинкой пульта:
http://www.supportforum.philips.com/ru/showthread.php?8696-Универсальный-ИК-пульт-или-какой-выбрать-пульт-ИК-ДУ-Philips

Большое спасибо за помощь, без вас я бы еще долго курил форумы)

ЗЫ Библиотека частенько виснет при неосторожном использовании (двойные нажатия итд), интересно есть ли метод борьбы с этим

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Наверное от двойного нажатия только короткое нажатие несколько раз с повтором результата. Виснет не просто так, значит есть проблемы. Я уже давно завязал с IRremote, ловлю всё, что нужно с помощью логического анализатора. Недорого, зато с гарантией, что словит если не всё, то практически всё.

 

prah
Offline
Зарегистрирован: 28.11.2016

кстати. вы создаете впечатление человека разбирающегося в железе.

я включаю еще один приборчик релешкой. модули для дуины все имеют питание отдельно и замыкают реле через транзистор. с одной стороны я понимаю там это какбудтобы развязка и возможность запитать реле от более мощного источника. с другой стороны srd-05vdc-sl-c всеравно запитывать буду от тойже дуины и 70мА она тянет без особых проблем. я понимаю что подключать реле к ноге это моветон, но насколько это плохо?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Одна нога может 40 мА, причём ток через ноги питания не должен быть более 200 мА, итого в таком режиме допустимо работать максимум 4м ногам плюс сама микросхема. В общем, питая реле 70мА, превышаем на 75% допустимый максимум, создавая риск выходного транзистора из строя. Или провода. Что-то в микроэлектронной промышленности поменялось, но что-то - нет. Когда-то площадки выводов под микроскопом припаивали проволокой к выводам няшные двадцатилетние китаянки, сейчас это делают роботы. Но та проволока по-прежнему имеет толщину кошачьей шерсти, и ток который она способна выдержать, по-прежнему мал.

prah
Offline
Зарегистрирован: 28.11.2016

а вот чисто теоретически... если спаять несколько ног и включать их одновременно? кроме реле вкл дуина больше почти ничего не делает.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

prah, а Вы умеете включать ноги одновременно?

prah
Offline
Зарегистрирован: 28.11.2016

я начинающий) я умею только то что написано в первой главе руководства)

я имел ввиду чтото типа
digitalWrite(1, HIGH); 
digitalWrite(2, HIGH); 
digitalWrite(3, HIGH); 
digitalWrite(4, HIGH); 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Проще включить правильно (схем море), нежели ждать сюрпризов. Но дело хозяйское.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

prah пишет:

я начинающий) я умею только то что написано в первой главе руководства)

В руководстве написано ещё вот это - http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

prah пишет:

я начинающий) я умею только то что написано в первой главе руководства)

я имел ввиду чтото типа
digitalWrite(1, HIGH); 
digitalWrite(2, HIGH); 
digitalWrite(3, HIGH); 
digitalWrite(4, HIGH); 

Это не одновременно.

Притом, очень сильно не одновременно.

Каждая команда выполняется около 7 мкс, значит, в течение примерно 20 мкс у Вас выводя контроллера, вместо того, чтобы работать на нагрузку, будут бороться между собой, нагружая сам контроллер, его стабилизатор напряжения, блок питания, создавая при эом импульсные помехи и т.д. и т.п.

В общем, если совершенно определенно и точно Вы не значете, что и зачем делаете, лучше строго следовать советам справочных руководств.

 

prah
Offline
Зарегистрирован: 28.11.2016

я определенно не знаю, поэтому и спрашиваю. тут вопрос гипотетический и про ток, а не про задержки. сейчас я тестово включаю релюху одной ногой и все работает - как релюха так и дуина. в тестах оно так висело около часа - никаких побочных не заметил. но ток превышающий допустимый на ноге, отсюда и гипотетический вопрос, что будет если снимать с нескольких ног? суммарный ток будет допустимый и не придется колхозить с транзисторами, а самое главное тянуть на релюху лишний проводок (т.к. я уже все спаял без него;)).

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

prah, уточните, Вы используете именно реле или модуль реле т.е. плату с установленным реле и обвязкой, включающей усилитель тока?

prah
Offline
Зарегистрирован: 28.11.2016

с платой нет проблем. просто платы дорогие, я купил за 3 рубля пучок этих релюшек, поэтому я хочу ее включать так, без обвязки. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Не рекомендую.

Там обвязки то - транзистор, резистор и диод.

prah
Offline
Зарегистрирован: 28.11.2016

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

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

prah пишет:

спалил три штуки и решил что это не мое.

И микроконтроллер спалите, если будете подключать реле напрямую. Тут два выхода - либо паять обвязку из рассыпухи, либо взять готовый модуль реле.

prah
Offline
Зарегистрирован: 28.11.2016

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