О, а я думал, что один такой.на АВРке делаю приёмник-дешифратор ПДУ![]()
По IR ПДУ существуют ЕМНИП готовые решения (в смысле асм.кода, надо смотреть на форумах программистов), но у меня была задача приспособить всего лишь шесть команд от завалявшегося пульта. Задачи обрабатывать отдельно нажатие, удержание, отпускание не ставил. Выбрал из кучи пульт, у которого команды удержания для каждой кнопки различны (бывают такие, где они одинаковы). Не мудрствуя лукаво, снял осциллоскопом коды в режиме "постоянно нажатая кнопка", и под их отлов сделал приёмник. Принцип прост - выход ИК сенсора завёл на INT0, и в процедуре этого прерывания, проверяю сначала соответствие заголовка посылки (он свой для каждой системы ДУ), если нет - выхожу из прерывания без результата, если да -проверяю оставшуюся часть - один ли это из шести нужных мне кодов.
После корректного обнаружения кода удержания нужной мне кнопки пульта, генерирую код нажатия клавы, затем паузу, примерно соответствующую продолжительности нажатия на клаве, затем код отжатия, затем опять паузу. Потом выход из прерывания и опять отлов кнопок на пульте.
В результате должны примерно получаться или отдельные нажатия, или подобие серии нажатий. Удерживать не выйдет, но этого мне пока не нужно.
PS ИК сенсор у меня TSOP48, поэтому упомянутых по ссылке проблем не было. Он малочувствителен к шумам и наводкам, а на выход выдаёт сформированный ТТЛ сигнал. Т.е вопрос фильтрации шумов вообще не стоит.
PPS когда-то у меня был случай, когда помехи ИК ДУ шли от "энергосберегающей" лампы. У низ как раз частота преобразования 30...40 кГц, и может совпадать с частотой заполнения импульсов ДУ. А поскольку амплитуда и частота излучения лампы модулирована частотой сети, то 50 или 100 герцовая помеха вполне может пролезть через фильтр ИК сенсора.
Ну, хоцца сваять чисто аппаратную примочку - типа переходника.а почему так сложно выключать надо![]()