"Грубый" способ дешифровки команд пульта ДУ
Идея найти способ управления при помощи стандартного пульта чем-то еще, кроме предназначенного для него телевизора, давно овладела умами «творческой молодёжи» любого возраста. Что подтверждается публикациями самых различных схем, идей и способов дешифровки команд пульта ДУ, среди которых: простое распознавание по времени удержания кнопки нажатой, использование схем, подсчитывающих число импульсов кодовой посылки за единицу времени, программные дешифраторы на основе микроконтроллеров, однокомандные системы, реагирующие на сам факт наличия модулированного ИК-сигнала.
Хочу предложить свой вариант простого дешифратора для «грубой дешифровки» команд пульта ДУ. «Грубой», - потому что этот способ не позволяет распознать все множество команд, которые способен передавать пульт. Он приближенно идентифицирует команды разбивая их на группы. И затем, каждой группе присваивает определенную функцию. В результате, например, пультом, содержащим несколько десятков кнопок, можно управлять четырьмя - пятью объектами.
Идея состоит вот в чем. Если посмотреть осциллографом форму импульсов на выходе стандартного фотоприемника (рис.1) во время приема команды, то можно увидеть, что команда состоит из одинаковых командных посылок, повторяющихся с частотой около 10 Гц в течение всего времени удержания кнопки пульта нажатой. После отпускания кнопки пульт завершает последнюю командную посылку и прекращает передачу сигнала.
Каждая командная посылка (рис. 2) состоит из некоторого количества импульсов, причём, это количество импульсов одинаково для всех команд определенного типа пульта. Поэтому, идентифицировать команды, подсчитывая импульсы в командной посылке невозможно. Кроме того, каждая командная посылка занимает одно и то же время, так что, идентификация по её длительности или по частоте импульсов так же оказывается невозможной.
Но, есть один момент, - код команды задаётся чередованием в определенной последовательности импульсов, условно говоря, однократной и двухкратной длительности отрицательного перепада. Так задаются двоичные знаки кода: единица - длинный импульс, нуль - короткий, или наоборот (напоминает старую добрую «морзянку»). При этом продолжительность отрицательного перепада короткого импульса примерно 0,8 mS, а длинного-
1,6mS. Теперь задача упрощается, - поскольку командные посылки разных команд отличаются не только порядком коротких и длинных импульсов, но и соотношением их количества.
Таким образом, не проводя полной расшифровки команд, можно осуществить «грубую» идентификацию сгруппировав команды по количеству в посылке, например, длинных импульсов, не обращая внимания на количество коротких. А осуществить это можно при помощи несложного селектора длительности импульсов, с постоянной времени больше чем у короткого импульса и меньше чем у длинного, например, 1,2mS. Такой селектор будет пропускать на вход счётчика только длинные импульсы. А далее дело простое, - счётчик подсчитает число длинных импульсов и выдаст результат, который и можно будет использовать для управления. Потребуется еще один селектор-формирователь импульсов, который должен будет вначале каждой командной посылки обнулять этот счетчик.
А теперь рассмотрим схему, показанную на рисунке 3. ИК-излучение пульта принимает резонансный интегральный фотоприемник F1. Форма импульсов на его выходе показана на рисунках 1 и 2. В момент начала поступления командной пачки происходит быстрый разряд конденсатора С2 через прямое сопротивление диода VD1 и выходной ключ F1. На выходе инвертора D1.1 возникает единица, и цепь С4-R4 формирует короткий импульс, который сбрасывает счетчик D2 на нулевое значение.
Цепь VD2-C3-R3 представляет собой селектор длительности отрицательных импульсов. Он пропускает только импульсы, длительность отрицательного перепада которых более 1,2mS. Импульсы с меньшей длительностью отрицательного перепада не пропускаются, поскольку за время их отрицательного перепада конденсатор С3 не успевает разрядиться через R3 до порога логического нуля. Во время положительных перепадов импульсов этот конденсатор быстро заряжается через прямое сопротивление VD2 и R1.
Таким образом, счетчик D2 считает только широкие импульсы командной посылки, а узкие пропускает К концу кодовой посылки на выходе счетчика D2 будет состояние, численно равное количеству логических единиц в кодовом слове, переданном от пульта (например, если кодовое слово было «10010001010», то единица будет на выводе 10 D2). Если же в системе кодирования данного пульта узкие импульсы соответствуют единицам, то число на выходе счетчика D2 будет равно числу нулей в кодовом слове, но в данном случае, это существенного значения не имеет. Главное, что счетчик считает только широкие импульсы.
После завершения командной посылки следует пауза. Длительность её такова, что конденсатор С2 успевает зарядиться через резисторы R2 и R1 и на выходе D1.1 возникает нуль, а С4 разряжается через R4. На выходах счётчика остается информация о результате подсчёта широких импульсов в последней кодовой посылке.
Поскольку, во время подсчета импульсов состояние счетчика меняется, что бы это изменение не влияло на состояние объекта управления, на выходах включены «тормозящие» цепи R5-C6, R6-C7, R7-C8, R8-C9, R9-C10 и буферные элементы D1.1-D1.5.
В данном случае, всего пять выходов, а активное состояние выхода - логический нуль.
Схема, показанная на рисунке 3 экспериментальная, и, возможно, используя другие схемные решения можно достигнуть лучшей работы. Например, вместо буферных инверторов с «тормозящими» RC-цепями на выходе можно использовать регистр, в который записывать данные по окончании каждой кодовой посылки или сделать систему триггеров, информация в
которых будет обновляться по сигналу логической единицы на входе D1.1.
Налаживание. Сопротивление R3 нужно установить таким, чтобы на счётный вход счетчика проходили только широкие импульсы Это можно сделать наблюдая на экране осциллографа форму импульсов на выводе 14 D2 во время приема команд от пульта. Сигнал должен иметь форму, показанную на рисунке 4, причем, широкие импульсы должны достигать уровня логического нуля, а узкие значительно не достигать порога переключения в нулевое состояние.
После того, как цепь R3-C3 налажена, можно подавая разные команды с пульта найти соответствующие выходы счетчика D2 и перемычками соединить с ними «тормозящие» RC-цепи, так чтобы получить необходимую систему команд для управления конкретным устройством.
Возможно, для некоторых пультов потребуется подбор R2 (если частота повторения пачек значительно отличается от 10 Гц).
Первоначально R2 и R3 можно установить подстроечные, а затем заменить их постоянными соответствующего сопротивления.
Каравкин В.