Опять про ИК-приёмник
- Войдите на сайт для отправки комментариев
Втр, 09/08/2016 - 09:50
Приветствую участников!
Имеется Arduino Nano, ИК-приемник RPM6936-V4 и исходный ИК-сигнал в HEX:
0000 0071 0000 0024 0020 0020 0020 0020 0020 0020 0040 0020 0020 0020 0020 0020 0020 00A1 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0040 0020 0020 0020 0020 0020 0020 0AAB 0020 0020 0020 0020 0020 0020 0040 0020 0020 0020 0020 0020 0020 00A1 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0040 0020 0020 0020 0020 0020 0020 04B0
Arduino встраивается в усилитель Marantz PM7003, имеющий вышеуказанный датчик. ИК-код взят из документации к усилителю (от более новой его версии, мой усилитель на эту команду штатно не реагирует). Задача Arduino - при получении данного кода произвести некое действие (замкнуть реле).
После подключения и проверки работоспособности выяснилось (через монитор порта), что Arduino сигнал принимает, но каждый раз "видит" его по-разному (в т.ч. разной длины). Скажите, как победить?
Скетч использовал такой:
Вот его вывод:
Вот такая портянка не структурированная (ну нажми Ctrl-T перед копированием) затрудняет получение ответа. Но это дело хозяйское. Если бы мне не было скушно, прошел бы мимо. Это к тому, что если хочешь получить ответ, уважай собеседников. Не принуждаю, дело твоё.
Со скетчем примерно всё понятно, сначала Ардуина ловит код, потом, по нажатию кнопки выдает последний сохраненный. Одно не понял, если приемник на 36КГц, то почему Ардуина выдает сигнал с частотой 38КГц (строка 114). Осталось от исходного скетча? Забыл? Не знал?
Далее аппаратное подключение. Чтобы понять, лучше иметь хрустальный шар, а мой в ремонте. Ну есть в усилке такой ИК датчик, ты к нему параллельно подключился? Т.е. сигнал идет на усилок И на Ардуину? Или у тебя есть другой такой же датчик? Или ты отключил от усилка датчик и подключил к нему Ардуино? В последнем варианте, обвес нужен, т.е. недостаточно питания подать на датчик.
Как правило, если код, полученный Ардуиной не повторяется, точнее часто меняется при нажатии одной и той же кнопки на пульте, это значит, что частоты передатчика и приемника не совпадают. В этом случае уменьшается дальнобойность и появляется больше помех. А уж если протокол неизвестный, тогда совсем беда. Придется вручную ковырять протокол, если нужны коды. В общем, в любом случае RAW коды не будут совпадать на 100%, потому что длительность импульсов плавает от нажатия к нажатию.
Описание ИК протокола на Маранц не видел. У меня ресивер Ямаха с NEC протоколом, насколько помню.
Вообще такие вещи лучше логическим анализатором смотреть..
Впрочем, сначала нужно понять, как подключено, откуда питание и т.п.
Спасибо, что откликнулись! Исправил сообщение, спрятал код.
Я скопировал исходный скетч, в нем было 38Khz, пробовал менять на 36KHz (т.к. по даташиту приемник работает на частоте 36KHz, как верно подмечено) - ничего существенного не поменялось кроме того, что периодически выскакивали сообщения-предупреждения о том, что там что-то не распознано (пишу с работы, вечером сброшу точный вывод).
По аппаратному подключению: датчик установлен на плате усилителя, к его контактам я и подпаялся (Data на D6 (9й pin), 5V на +5V (27й pin), землю на GND (29й pin) соответственно вот этой схеме: http://www.prorobot.ru/arduino/nano-v3/nano-shema.png ). Сам усилитель отключен от питания, питание Arduino от USB ПК.
Идея как раз в том, что в рабочем варианте сигнал будет идти и на ардуину, и на усилитель. При этом усилитель будет откликаться на все сигналы (какие он поддерживает), а ардуина будет откликаться только на один конкретный сигнал.
Судя по тому, что описано в доках на Marantz: Remote Code: RC-5/ RC-5 Ex. Format
Код моей команды:
System: 16, Command: 00, Extension: 16
Сейчас всё подключено так:
http://storage1.static.itmages.ru/i/16/0809/h_1470771795_1194152_af57690...
Теперь стало понятней, что в данный момент всё, что подключено со стороны усилка в какой то степени мешает сигналу с датчика. Плюс кто знает, куда подключен выход датчика (он уходит на разъем, на другую плату, насколько я вижу). И еще, не сильно хорошо, фактически, питать усилитель (фактически питание подключено к усилителю со стороны датчика) от Ардуины, возможно всё, что угодно, от просадки напряжения до выхода и строя каких то элементов в усилителе. Во всяком случае, теоретически, это вполне возможно.
Если известен протокол, то несколько "странно", что он не распознается Ардуиной. Правда это легко может быть из-за усилка, пассивно подключенного к датчику. Лучшим способом было бы подключить "чистый" датчик, т.е. отпаять его от усилителя, сделать правильный обвес (схемы есть в интернете) и проверить. Либо сразу питать Арудину от усилителя, как будет потом. Хорошо бы подсмотреть форму сигнала с датчика осциллографом (не логическим анализатором, а именно осциллографом), чтобы понять, нормальная ли форма сигнала с датчика и не подсаживается ли сигнал. Т.е. смотреть форму и амплитуду. Кстати, если есть осциллограф, то можно сравнить форму сигнала с подключенной Ардуиной и без неё.
Есть еще вариант, подключить любой другой ИК датчик (TSOP1836 или типа того) и на нем поиграться, отладиться (это чтобы не выпаивать датчик из усилка), потом с работающей прошивкой, подключаться уже к датчику усилителя. В этом случае будет исключена ошибка со стороны прошивки Ардуино, что уже не мало, тогда останется только аппаратная часть.
Да, я уже думал, что питание от ардуины - плохо. Я же могу запитать усилитель и при этом держать ардуину подключенной к ПК по USB, чтобы снимать с нее показания? Или не стоит так делать?
Попробовал применть другую библиотеку, вот эту: https://github.com/guyc/RC5 . Она распознавала некоторые команды и выводила в формате (я так понимаю), соответствующему протоколу RC5. Судя по листу кодов Marantz - выдавала значения близкие к этому листу, но при этом был некий % ошибок.
Отпаять датчик - нетривиальная задача, равно как и заказать такой же (перед заказом ардуины я искал варианты его приобрести, нашел только оптовые поставки). Осциллографа у меня нет, имеется только простенький мультиметр, да паяльник.
Уже думал купить другой ИК-датчик. Если вариант с запиткой усилителя и подключением ардуины к ПК - плохая затея, то куплю TSOP1836.
Для пинания датчиков типа TSOP в пдфе где-то там было прописано требование фильтрации их питания.
Это требование, судя по плате, исполнено, благодаря резистору R251 и С251, С252, но
сие разумное действо было похерено подключение ардуины на пин питания фотоприемника.
В рабочем варианте питание будет подаваться от датчика на ардуину (а не наоборот, как сейчас сделано), соответственно, питание будет фильтрованное. Не поплохеет ли ардуине\усилителю от питания и по USB, и от датчика, если я включу усилитель?
В рабочем варианте питание будет подаваться от датчика на ардуину (а не наоборот, как сейчас сделано), соответственно, питание будет фильтрованное.
Фотоприемник по питанию должен стоять ЗА фильтром. Один-одинешенек.
Никакой ардуины на том же пине не допускается.
Фотоприемник по питанию должен стоять ЗА фильтром. Один-одинешенек.
Никакой ардуины на том же пине не допускается.
А если подпаяться перед фильтром?
Подпаяться -то можно, ......
но вот откуда мне знать, сколько потребляет схема усилка по 5В и как долго стаб ардуины, или что там выдает +5В, сможет это выдержать?
т.е. прежде чем паяться, требуется разобраться, ... а можно ли.
Еще возможны всякие накладки со стабилизаторами при обратном включении, правда, +5в обычно мало что может выжечь ..... В общем, тут или копать полную схему усилка или надеяться на авось ...
Подпаяться -то можно, ......
но вот откуда мне знать, сколько потребляет схема усилка по 5В и как долго стаб ардуины, или что там выдает +5В, сможет это выдержать?
Выдавать +5В будет усилитеь.
Не поможете разобраться? Сервисмануал на усилитель: http://dropmefiles.com/9y1ic
Питать от усилителя это более реальный вариант, 20мА ардуины вряд ли сделают погоду его бп.
БП это схема Р851 с основным и вспомогательным трансом, выдает 2 питания +5VD и +5VL
ИК-сенсор, схема Р201, питается от +5VL через 100 Ом.
БП это схема Р851 с основным и вспомогательным трансом, выдает 2 питания +5VD и +5VL
Я, честно говоря, слабо представляю чем отличается +5VD от +5VL (и вообще от +5V). Не подскажете откуда мне лучше запитать ардуину?
Не подскажу, слишком много неизвестных.
Есть еще вариант, подключить любой другой ИК датчик (TSOP1836 или типа того)
Скажите, TSOP1736 подойдет?
TSOP1736: http://www.voti.nl/docs/TSOP17.pdf
TSOP1836: http://pdf1.alldatasheet.com/datasheet-pdf/view/26603/VISHAY/TSOP1836.html
Насколько я знаю, скорее всего должно подойти. Если кто знает точно, поправят.
У меня есть только TSOP173x, пашет нормально. Судя по ДШ, отличия, прежде всего в форме корпуса и в расположении выводов (цоколевка разная), глубже не копал. Главное, чтобы частота была правильная (последние две цифры TSOP..36). Еще бывают миниатюрные типа TSOP4836 (судя по информации из гугла, сам не использовал).
У меня есть только TSOP173x, пашет нормально.
Так у Вас поучается как раз то, что я собрался покупать. Последние 2 цифры - частота, на которой он работает.
Из даташита TSOP18xx и TSOP17xx разница у них в таблице Basic Characteristics, в верхней строчке. Я не спец в электронике, но на скольтко я понимаю, TSOP17xx потребляют меньше.
Если разница только в этом, то для отладки это по-барабану, можно использовать TSOP1736.
Я про TSOP1836 говорил потому что это первое, что вспомнилось :)