VS1838B некорректно принимает коды
- Войдите на сайт для отправки комментариев
Чт, 17/04/2014 - 15:57
Имеем UNO R3; Nano v.3; ик приемник выпаянный из dvd плеера без опозновательных знаков, ик приемник из китая.
Китайский приёмник некорректно принимает код.
Ик приёмник из dvd корректно принимает все коды с пульта. На пульте нажималась одна и таже кнопка. Используемая кодировка пульта и код кнопки: Decoded NEC: 818E7.
Подключение: ик noname - напрямую к пинам.
китайский - напрямую, с резистором 100 Ом, результат одинаковый.
8 Decoded JVC: 8 (16 bits) Raw (68): 26776 8900 -4500 550 -600 500 -600 500 -600 550 -600 500 -600 500 -600 550 -600 500 -600 500 -600 550 -600 500 -600 500 -600 550 -1700 500 -600 550 -6 00 500 -600 500 -600 550 -550 550 -600 500 -1700 550 -1700 500 -600 500 -650 500 -600 500 -1750 500 -1700 500 -1750 500 -600 500 -650 500 -1700 500 -1750 500 -1 750 500 1052DE4B Unknown encoding: 1052DE4B (32 bits) Raw (68): -2834 8950 -4500 500 -650 500 -600 500 -600 500 -650 500 -600 500 -600 500 -600 550 -550 550 -600 500 -600 500 -600 550 -600 500 -1700 550 -600 500 -6 00 500 -600 550 -600 500 -600 500 -600 550 -1700 500 -1750 500 -600 500 -600 550 -600 500 -1700 550 -1700 500 -1700 550 -600 500 -600 500 -1750 500 -1700 550 -1 700 500 818E7 Decoded NEC: 818E7 (32 bits) Raw (68): -21918 8900 -4500 550 -550 550 -600 500 -600 500 -600 550 -600 500 -60 0 500 -600 550 -600 500 -600 500 -600 550 -600 500 -600 500 -1750 500 -600 500 - 600 550 -600 500 -600 500 -600 550 -550 550 -1700 550 -1700 500 -600 550 -550 55 0 -600 500 -1700 550 -1700 500 -1750 500 -600 500 -600 500 -1750 500 -1750 500 - 1700 500
Чуть точне.. кто принимает, а кто нет. Откуда вы взяли код кнопки если он не принимает?
Может "принимает", но не стабильно, иногда ошибается?"?
Тот ИК что выпаян из двд, принимает коррекно, он кстати без металического кожуха. Пульт от триколора, проверил все кнопки, на всех распознанна кодировка NEC.
VS1838B, 70% кодировка не распознана, 25% кодировка JVC, 5% кодировка NEC. В первом посте лог именно с него.
Собранны 2 модуля с приемниками, стоят рядом, сигнал принимают одновременно, выводят в ком порт на комп.
Ну то есть, все-таки "принимает но часто ошибается", верно? Да или нет?
Если я вас правильно понял, то вам "фиксать проблему" можно пытатся двумя способами. Аппаратно и програмно.
Если аппаратно, то смотрим статью
http://mk90.blogspot.com/2012/12/ir-arduino.html
Добавляем резистор на 10K, смотрим что получилось. Пытаемся поменять номинал кондера. Смотрим что получилось.
Или "забъем" и сразу полезем в кишки библиотеки? Будем "тереть ее напильником"? :)
Лучше конечно аппаратно, а то допилим под один ИК, сломается второй....
Пытался подключать по схеме
, только вместо кондера на 100 мкф, был на 10мкф. Сейчас поключю как на схеме по вашей ссылке.
>Пытался подключать по схеме
>Сейчас поключю как на схеме по вашей ссылке.
Ну так это, в принципе одинаковые схемы. Только номиналы чутка другие. А первом посте вы дали без подтягивающего к питанию резистора. Так по какой же схеме вы подключали? Вообщем у вас выход приемника подтянут резистором к питанию или нет?
Собрал как на схеме по ссылке, за исключение кондера, ненашел на 4,7мкф воткнул на 10мкф. Из полусотни нажатий, правыильно распознались только 3 нажатия((.
подключал и по схеме из первого поста, просто напрямую, попробовал и вашу схему... один фиг распознает не то.
Да кондер то "такое". Что у вас с выходом? Я в первую очередь про него говорил. "Добавляем резистор на 10K, смотрим что получилось. Пытаемся поменять номинал кондера."
Добавили резистор? Что-нибудь в логах поменялось?
Только речь идет не про резистор который 100 ом. Пусть он будет какой есть. Между питанием и выходом приемника есть резистор большого номинала?
В данный момент собрана вот эта схема.кондер только 10. Резистор на 10кОм.
В логах тот же самый код, "Unknown encoding: 1052DE4B (32 bits)".
Переодически бывает принимает подряд пару сигналов правильно, а потом опят не то что нужно.
Ну значит "аппаратный фикс" - не проканал. Прийдется "притирать напильником".
> а то допилим под один ИК, сломается второй....
Возможно. Но не факт что второй при этом поломается. По крайней мере пока вы не показали логи второго. Но в любом случае "лучше так", чем вообще никак.
Вообщем смотрите в файлик
IRremoteInt.h
Ищите строки
Это и есть "какие временные интервалы ожидает библиотека". Нужно "подогнать" их под фактические. А "фактические" вы видите в том самом логе, после слова "Raw(68)". Первые два - у вас выглядят "правдоподобно", а вот NEC_BIT_MARK, NEC_ONE_SPACE,NEC_ZERO_SPACE чуток "подгуляли".
И еще один путь (или комбинация этих двух). Еще одна "интерестная настройка" (в этом же файле). Это
Процент, насколько "ожидаемое" может отличатся от "фактического". Можно попытатся ее акуратненько поднять :) Но сильно, конечно не задирать. Что-бы библа не потеряла возможность отличать длинный импульс от короткого.
P.S. Ну и прежде чем корежить, естественно сделать "копию оригинала" куда-нибудь в сторонку;)
P.S.S. Есть еще вероятносто что оно неверно детектит "конец передачи", но сейчас, без укапывания в библиотеку уже не вспомню как там это происходит.
Ок, попробую, но уже наверное не сегодня, поздновато уже.
Не выдержала душа )))))
Поменял #define TOLERANCE 25 на 35 , все стал распозновать как положенно. Первый ИК, который нормально работал с самого начала, тоже принимает корректно, единственно дак это повысилась чувствительность к освещению, но он не прикрыт металом.
leshak, спасибо за помощь.
Вполне возможно, что приемник и передатчик работают на разных частотах, в этом случае могут быть такие проблемы.
Какая частота самая ходовая в быту? Или можно как-то узнать частоту передатчика?
Какая частота самая ходовая в быту?
друже, тут же не лотерея - хрен угадаешь/выиграешь.
почитать техническую документацию на халабуду.
Честно говоря никогда не задавался вопросом измерения частоты модуляции ик передатчика. Самое тупое, если нет доки, взять разные приемники с разной частотой модуляции и проверить, на каком будет лучше приём. Наверное есть более другие способы.
У меня есть неизвестный приёмник, только один пульт из пяти даёт чёткое определение кода.
А ещё, где то на форуме я уже давал ссылку на описание кодов разных брендов, там и частоты были.
Нашёл статью, там есть много протоколов:
http://led-displays.ru/ir/ir_remote_theory.html
Думаю, самое простое взять в качестве приемника какой-нибудь инфакрасный фото-диод /фото-резистор. И осцилографом или ардуиной померять на какой частоте импульсы прилетают.
Или подпается к светику пульта и посмотреть импульсы идущие на него.
Эт, естественно в предположении что приемник имеет ту же частоту что и пульт.
Ну или наоборот. С ардуины, с помощью sendNec слать один и тот же код. На разных частотах. И смотреть на какой частоте приемник стабильней/дальше принимает. На своей "родной частоте" он должен ловить лучше всего.
Или даже, просто попробовать, скажем с помощью Tone что-то выдать на светоид. И смотреть на выход приемника. "Слышит" он или нет. Постепенно унося его все дальше.