VS1838B некорректно принимает коды

SkyNetVik
Offline
Зарегистрирован: 17.04.2014
Имеем 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

 

leshak
Offline
Зарегистрирован: 29.09.2011

Чуть точне.. кто принимает, а кто нет. Откуда вы взяли код кнопки если он не принимает?

Может "принимает", но не стабильно, иногда ошибается?"?

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

Тот ИК что выпаян из двд, принимает коррекно, он кстати без металического кожуха. Пульт от триколора, проверил все кнопки, на всех распознанна кодировка NEC.

VS1838B, 70% кодировка не распознана, 25% кодировка JVC, 5% кодировка NEC. В первом посте лог именно с него.

Собранны 2 модуля с приемниками, стоят рядом, сигнал принимают одновременно, выводят в ком порт на комп. 

leshak
Offline
Зарегистрирован: 29.09.2011

Ну то есть, все-таки "принимает но часто ошибается", верно? Да или нет?

leshak
Offline
Зарегистрирован: 29.09.2011

Если я вас правильно понял, то вам "фиксать проблему" можно пытатся двумя способами. Аппаратно и програмно.

Если аппаратно, то смотрим статью 

http://mk90.blogspot.com/2012/12/ir-arduino.html

Добавляем резистор на 10K, смотрим что получилось. Пытаемся поменять номинал кондера. Смотрим что получилось.

Или "забъем" и сразу полезем в кишки библиотеки?  Будем "тереть ее напильником"? :)

 

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

Лучше конечно аппаратно, а то допилим под один ИК, сломается второй....

Пытался подключать по схеме , только вместо кондера на 100 мкф, был на 10мкф. Сейчас поключю как на схеме по вашей ссылке.

leshak
Offline
Зарегистрирован: 29.09.2011

>Пытался подключать по схеме

>Сейчас поключю как на схеме по вашей ссылке.

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

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

Собрал как на схеме по ссылке, за исключение кондера, ненашел на 4,7мкф воткнул на 10мкф. Из полусотни нажатий, правыильно распознались только 3 нажатия((.

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

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

leshak
Offline
Зарегистрирован: 29.09.2011

Да кондер то "такое". Что у вас с выходом? Я в первую очередь про него говорил. "Добавляем резистор на 10K, смотрим что получилось. Пытаемся поменять номинал кондера."

Добавили резистор? Что-нибудь в логах поменялось?

Только речь идет не про резистор который 100 ом. Пусть он будет какой есть. Между питанием и выходом приемника есть резистор большого номинала?

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

В данный момент собрана вот эта схема.кондер только 10. Резистор на 10кОм.

В логах тот же самый код, "Unknown encoding: 1052DE4B (32 bits)".

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

leshak
Offline
Зарегистрирован: 29.09.2011

Ну значит "аппаратный фикс" - не проканал. Прийдется "притирать напильником". 

> а то допилим под один ИК, сломается второй....

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

Вообщем смотрите в файлик 

IRremoteInt.h

Ищите строки 

#define NEC_HDR_MARK  9000
#define NEC_HDR_SPACE 4500
#define NEC_BIT_MARK  560
#define NEC_ONE_SPACE 1600
#define NEC_ZERO_SPACE  560
#define NEC_RPT_SPACE 2250

Это и есть "какие временные интервалы ожидает библиотека". Нужно "подогнать" их под фактические. А "фактические" вы видите в том самом логе, после слова "Raw(68)". Первые два - у вас выглядят "правдоподобно", а вот  NEC_BIT_MARK,  NEC_ONE_SPACE,NEC_ZERO_SPACE  чуток "подгуляли".

И еще один путь (или комбинация этих двух). Еще одна "интерестная настройка" (в этом же файле). Это 

#define TOLERANCE 25  // percent tolerance in measurements

Процент, насколько "ожидаемое" может отличатся от "фактического". Можно попытатся ее акуратненько поднять :) Но сильно, конечно не задирать. Что-бы библа не потеряла возможность отличать длинный импульс от короткого.

P.S. Ну и прежде чем корежить, естественно сделать "копию оригинала" куда-нибудь в сторонку;)
P.S.S. Есть еще вероятносто что оно неверно детектит "конец передачи", но сейчас, без укапывания в библиотеку уже не вспомню как там это происходит.

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

Ок, попробую, но уже наверное не сегодня, поздновато уже.

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

Не выдержала душа )))))

Поменял #define TOLERANCE 25 на 35 , все стал распозновать как положенно. Первый ИК, который нормально работал с самого начала, тоже принимает корректно,  единственно дак это повысилась чувствительность к освещению, но он не прикрыт металом.

leshak, спасибо за помощь.

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

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

 

SkyNetVik
Offline
Зарегистрирован: 17.04.2014

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

Клапауций
Offline
Зарегистрирован: 10.02.2013

SkyNetVik пишет:

Какая частота самая ходовая в быту?

друже, тут же не лотерея - хрен угадаешь/выиграешь.

SkyNetVik пишет:
Или можно как-то узнать частоту передатчика?

почитать техническую документацию на халабуду.

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

Честно говоря никогда не задавался вопросом измерения частоты модуляции ик передатчика. Самое тупое, если нет доки, взять разные приемники с разной частотой модуляции и проверить, на каком будет лучше приём. Наверное есть более другие способы.

У меня есть неизвестный приёмник, только один пульт из пяти даёт чёткое определение кода.

А ещё, где то на форуме я уже давал ссылку на описание кодов разных брендов, там и частоты были.

Нашёл статью, там есть много протоколов:

http://led-displays.ru/ir/ir_remote_theory.html

leshak
Offline
Зарегистрирован: 29.09.2011

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

Или подпается к светику пульта и посмотреть импульсы идущие на него.

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

Ну или наоборот. С ардуины, с помощью sendNec слать один и тот же код. На разных частотах. И смотреть на какой частоте приемник стабильней/дальше принимает. На своей "родной частоте" он должен ловить лучше всего.

Или даже, просто попробовать, скажем с помощью Tone что-то выдать на светоид. И смотреть на выход приемника. "Слышит" он или нет. Постепенно унося его все дальше.