"Электроника и Радиотехника"Все для любителей! Декодирование сигналов инфракрасного пульта дистанционного управления Принцип действия пульта дистанционного управления

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

1. ИК-пульт

Что нужно для того, чтобы научить робота слушаться инфракрасного (ИК) пульта? Во-первых, нам потребуется сам пульт. Можно использовать обычный пульт от телевизора, а можно приобрести миниатюрный пульт от автомагнитолы. Именно такие пульты часто используются для управления роботами. На таком пульте есть 10 цифровых кнопок и 11 кнопок для манипуляции с музыкой: громкость, перемотка, play, stop, и т.д. Для наших целей более чем достаточно.

2. ИК-датчик

Во-вторых, для приема сигнала с пульта нам потребуется специальный ИК-датчик. Вообще, мы можем детектировать инфракрасное излучение обычным фотодиодом/фототранзистором, но в отличие от него, наш ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца. Для этого урока воспользуемся популярным ИК-датчиком VS1838B , который обладает следующими характеристиками:
  • несущая частота: 38 кГц;
  • напряжение питания: 2,7 — 5,5 В;
  • потребляемый ток: 50 мкА.
Можно использовать и другие датчики, например: TSOP4838, TSOP1736, SFH506.

3. Подключение

Датчик имеет три вывода (три ноги). Если посмотреть на датчик со стороны приёмника ИК сигнала, как показано на рисунке,
  • то слева будет - выход на контроллер,
  • по центру - отрицательный контакт питания (земля),
  • и справа - положительный контакт питания (2.7 — 5.5В).
Принципиальная схема подключения Внешний вид макета

4. Программа

Подключив ИК-датчик будем писать программу для Ардуино Уно. Для этого воспользуемся стандартной библиотекой IRremote , которая предназначена как раз для упрощения работы с приёмом и передачей ИК сигналов. С помощью этой библиотеки будем принимать команды с пульта, и для начала, просто выводить их в окно монитора последовательного порта. Эта программа нам пригодится для того, чтобы понять какой код дает каждая кнопка. #include "IRremote.h" IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); // выставляем скорость COM порта irrecv.enableIRIn(); // запускаем прием } void loop() { if (irrecv.decode(&results)) { // если данные пришли Serial.println(results.value, HEX); // печатаем данные irrecv.resume(); // принимаем следующую команду } } Загружаем программу на Ардуино. После этого, пробуем получать команды с пульта. Открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды. Проблема с загрузкой программы В некоторых случаях, при попытке загрузить программу в контроллер, может появиться ошибка: TDK2 was not declared In his scope Чтобы ее исправить, достаточно удалить два файла из папки библиотеки. Заходим в проводник. Переходим в папку, где установлено приложение Arduino IDE (скорее всего это «C:\Program Files (x86)\Arduino»). Затем в папку с библиотекой: …\Arduino\libraries\RobotIRremote , и удаляем файлы: IRremoteTools.cpp и IRremoteTools.h. Затем, перезапускаем Arduino IDE, и снова пробуем загрузить программу на контроллер.

5. Управляем светодиодом с помощью ИК-пульта

Теперь, когда мы знаем, какие коды соответствуют кнопкам пульта, пробуем запрограммировать контроллер на зажигание и гашение светодиода при нажатии на кнопки громкости. Для этого нам потребуется коды (могут отличаться, в зависимости от пульта):
  • FFA857 — увеличение громкости;
  • FFE01F — уменьшение громкости.
В качестве светодиода, используем встроенный светодиод на выводе №13, так что схема подключения останется прежней. Итак, программа: #include "IRremote.h" IRrecv irrecv(2); // указываем вывод, к которому подключен приемник decode_results results; void setup() { irrecv.enableIRIn(); // запускаем прием } void loop() { if (irrecv.decode(&results)) { // если данные пришли switch (results.value) { case 0xFFA857: digitalWrite(13, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); break; } irrecv.resume(); // принимаем следующую команду } } Загружаем на Ардуино и тестируем. Жмем vol+ — светодиод зажигается. Жмем vol- — гаснет. Теперь, зная как это все работает, можно вместо светодиода управлять двигателями робота, или другими самодельными микроэлектронными устройствами!

Большая часть современной бытовой электронной аппаратуры имеет пульт дистанционного управления, использующий инфракрасное (ИК) излучение в качестве способа передачи информации. ИК канал передачи данных используется в некоторых устройствах системы " ", которую мы производим.

Принцип ИК передачи информации

Инфракрасное, или тепловое излучение - это электромагнитное излучение, которое испускает любое нагретое до определенной температуры тело. ИК диапазон лежит в ближайшей к видимому свету области спектра, в его длинноволновой части и занимает область приблизительно от 750 нм до 1000 мкм. Инфракрасное излучение составляет большую часть излучения ламп накаливания, около половины излучения Солнца. Оптические свойства веществ в инфракрасном излучении отличаются от их свойств в видимом свете. Например, некоторые стекла непрозрачны для инфракрасных лучей, а парафин, в отличие от видимого света, прозрачен для ИК излучения и используется для изготовления ИК линз. Для его регистрации используют тепловые и фотоэлектрические приемники и специальные фотоматериалы. Источником ИК лучей, кроме нагретых тел, наиболее часто используются твердотельные излучатели - , ИК лазеры, для регистрации применяются фотодиоды, форотезисторы или болометры. Некоторые особенности инфракрасного излучения делают его удобным для применения в устройствах передачи данных:

  • ИК твердотельные излучатели (ИК светодиоды) компактны, практически безинерционны, экономичны и недороги.
  • ИК приемники малогабаритны и также недороги
  • ИК лучи не отвлекают внимание человека в силу своей невидимости
  • Несмотря на распространенность ИК лучей и высокий уровень "фона", источников импульсных помех в ИК области мало
  • ИК излучение низкой мощности не сказывается на здоровье человека
  • ИК лучи хорошо отражаются от большинства материалов (стен, мебели)
  • ИК излучение не проникает сквозь стены и не мешает работе других аналогичных устройств

Все это позволяет с успехом использовать ИК способ передачи информации во многих устройствах. ИК передатчики и приемники находят применение в бытовой и промышленной электронике, компьютерной технике, охранных системах, системах передачи данных на большие расстояния по оптоволокну. Рассмотрим более подробно работу систем (пультов) управления бытовой электроники.

Пульт ИК управления при нажатии кнопки излучает кодированную посылку, а приемник, установленный в управляемом устройстве, принимает её и выполняет требуемые действия. Для того, чтобы передать логическую последовательность, пульт формирует импульсный пакет ИК лучей, информация в котором модулируется или кодируется длительностью или фазой составляющих пакет импульсов. В первых устройствах управления использовались последовательности коротких импульсов, каждый из которых представлял собою часть полезной информации. Однако в дальнейшем, стали использовать метод модулирования постоянной частоты логической последовательностью, в результате чего в пространство излучаются не одиночные импульсы, а пакеты импульсов определенной частоты. Данные уже передаются закодированными длительностью и положением этих частотных пакетов. ИК приемник принимает такую последовательность и выполняет демодулирование с получением огибающей. Такой метод передачи и приема отличается высокой помехозащищенностью, поскольку приемник, настроенный на частоту передатчика, уже не реагирует на помехи с другой частотой. Сегодня для приема ИК сигнала обычно применяется специальная микросхема, объединяющая фотоприемник, усилитель с полосовым фильтром, настроенным на определенную несущую частоту, усилитель с АРУ и детектор для получения огибающей сигнала. Кроме электрического фильтра, такая микросхема имеет в своем составе оптический фильтр, настроенный на частоту принимаемого ИК излучения, что позволяет в максимальной степени использовать преимущество светодиодного излучателя, спектр излучения которого имеет небольшую ширину. В результате таких технических решений, стало возможным принимать маломощный полезный сигнал на фоне ИК излучения других источников, бытовых приборов, радиаторов отопления и т.д. Работа современных устройств ИК управления достаточно надежна, а дальность составляет от нескольких метров до 40 и более метров, в зависимости от варианта реализации и уровня помех.

Передатчик ИК сигнала

Передатчик ИК сигнала, ИК пульт, чаще всего имеет питание от батарейки или аккумулятора. Следовательно его потребление должно быть максимально низким. С другой стороны, излучаемый сигнал должен быть значительной мощности для обеспечения большой дальности передачи. Такие противоположные по энергетическим затратам задачи успешно решаются способом передачи коротких импульсных кодированных пакетов. В промежутках между передачами пульт практически не потребляет энергии. Задача контроллера пульта - опрос кнопок клавиатуры, кодирование информации, модулирование опорной частоты и выдача сигнала на излучатель. Для изготовления пультов выпускаются различные специализированные микросхемы, однако для этих целей могут быть использованы и современные микроконтроллеры общего применения типа AVR или PIC. Основное требование к таким микроконтроллерам - это наличие режима сна с чрезвычайно низким потреблением и способность чувствовать нажатия кнопок в этом состоянии.

Излучатель ИК сигнала испускает инфракрасные лучи под действием тока возбуждения. Ток на излучатель обычно превышает возможности микроконтроллера, поэтому для формирования необходимого тока устанавливается простейший на одном транзисторе. Для снижения потерь, при выборе транзистора необходимо обратить внимание на его коэффициент усиления тока - β или h21. Чем выше этот коэффициент, тем выше эффективность устройства. Современные передатчики используют полевые или CMOS транзистоы, эффективность которых на используемых частотах можно считать предельной.

Приведенная схема не лишена недостатков, в частности при снижении уровня заряда батареи, мощность излучения будет падать, что приведет к снижению дальности. Для снижения зависимости от напряжения питания, можно использовать простейший стабилизатор тока.

Большинство передатчиков работают на частоте 30 - 50 кГц. Такой диапазон частот был выбран исторически при создании первых подобных устройств. Была выбрана область с наименьшим уровнем помех. Кроме того, принимались в расчет ограничения на элементную базу. В дальнейшем, по мере стандартизации и распространения аппаратуры с таким способом управления, переход на другие частоты стал нецелесообразным.

В целях увеличения импульсной мощности передатчика, а соответственно и его дальности, сигнал основной частоты отличается от меандра и имеет скважность 3 - 6. Таким образом повышается импульсная мощность с сохранением или даже уменьшением средней мощности. Импульсный ток светодиода выбирается исходя из его паспортных значений и может достигать одного и более Ампер. Импульсный ток в большинстве пультов ИК не превышает 100 мА. При этом, поскольку и опорная частота имеет малый коэффициент заполнения и длительность кодированной посылки не превышает 20-30 мс, средний ток при нажатой кнопке не превышает одного миллиампера. Повышение импульсного тока светодиода сопряжено с снижением эффективности и уменьшением срока службы. Современные инфракрасные светодиоды имеют эффективность 100-200 мВт излучаемой энергии при токе 50 мА. Допустимый средний ток не должен превышать 10-20 мА. Питание светодиода должно иметь RC фильтр, который снижает воздействие импульсной помехи на питание микроконтроллера. Спектр применяемых светодиодов для ИК пультов большинства бытовой аппаратуры имеет максимум в области 940 нм.

Длительность единичного пакета опорной частоты для уверенного приема составляет не менее 12-15 и не более 200 периодов. При передаче кодированной посылки, передатчик формирует в начале преамбулу, которая представляет собой один или несколько пакетов опорной частоты и позволяет приемнику установить необходимый уровень усиления и фона. Данные в кодированной посылке передаются в виде нулей и единиц, которые определяются длительностью или фазой (расстоянием между соседними пакетами). Общая длительность кодированной посылки чаще всего составляет от нескольких бит до нескольких десятков байт. Порядок следования, признак начала и количество данных определяется форматом посылки.

Приемник ИК сигнала

Приемник ИК сигнала как правило имеет в своем составе собственно приемник ИК излучения и микроконтроллер. Микроконтроллер раскодирует принимаемый сигнал и выполняет требуемые действия. Поскольку приемник в большинстве случаев устанавливается в аппаратуре с сетевым питанием, его потребление не существенно. Микроконтроллер чаще всего выполняет и другие сервисные функции в устройстве и является его центральным логическим устройством.

Приемник ИК излучения чаще всего выполняется в виде отдельного интегрального модуля, который располагается за передней панелью управляемой аппаратуры. В передней панели имеется прозрачное для ИК лучей окошко. Как правило, такая микросхема имеет три вывода – питание, общий и выход сигнала. Производители электронных компонентов предлагают приемники ИК сигналов различного типа и исполнения. Однако, принцип их работы схож. Внутри такая микросхема имеет:

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

Корпус такого приемника выполняется из материала, выполняющего роль дополнительного фильтра, пропускающего ИК лучи определенной длины волны. Современные интегральные приемники позволяют принимать полезный сигнал на уровне фона, превышающего его в несколько десятков раз и при этом чувствовать посылки частоты, имеющие всего от 4 - 5 периодов.

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

Форматы ИК передачи данных

Различные производители бытовой аппаратуры применяют в своих изделиях различные пульты ИК управления. Поскольку пульт должен общаться только с конкретным устройством, он формирует последовательность данных, уникальную для своего типа оборудования. Передаваемые данные содержат кроме собственно команды управления адрес устройства, проверочные данные и другую сервисную информацию. Более того, различные производители используют различные способы формирования последовательности данных и различные способы передачи логических состояний. Наиболее распространенные способы кодирования битов информации - это изменение длительности паузы между пакетами (метод интервалов) и кодирование сочетанием состояний (бифазный метод). Однако, встречаются способы кодирования бит информации длительностью, сочетанием длительности и паузы и т.д. Наиболее распространенные форматы передачи.

Однажды мне понадобилось управлять устройством с помощью пульта дистанционного управления. Дистанция требовалась небольшая (до 10 метров) и я решил использовать для этих целей ИК приемник и инфракрасный пульт от бытовой аппаратуры.

Для инфракрасных пультов дистанционного управления (ИК ПДУ) существует несколько протоколов передачи данных. Они отличаются способами кодирования битов, длительностями сигналов, несущей частотой и количеством передаваемых данных. Один из самых распространенных протоколов, судя по интернету, – это RC5. Изначально я думал, что придется разбираться с ним, но ни одного пульта с таким протоколом у меня под рукой не оказалось. Зато нашлись три пульта от DVD плееров, использующих протокол фирмы NEC.

Схема

Принцип передачи ИК сигналов заключается в следующем - электрический сигнал несущей частоты модулируется передаваемыми данными и с помощью инфракрасного светодиода излучается в пространство.

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

Для приема сигнала используется специальная микросхема, объединяющая в себе фотодиод, усилитель с полосовым фильтром, настроенным на определенную несущую частоту, и детектор, выделяющий огибающую сигнала. Как правило, микросхема имеет три вывода – два питающих и один сигнальный. Последний подключен к коллектору выходного транзистора микросхемы, из-за чего сигнал на выходе оказывается инвертированным.

Микросхемы этого семейства объединены общей аббревиатурой- TSOP.

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

Правда есть один момент, ИК приемник рассчитан на работу с одной несущей частотой, а в некоторых протоколах значения несущих частот отличаются - одни используют 38 кГц (например, протокол фирмы Nec), другие 36 или 40. Поэтому одна и та же схема не сможет работать со всеми без исключения ИК пультами дистанционного управления.

Схема, которую я использовал при написании программы, приведена на рисунке ниже. Прием ИК сигналов осуществлялся микросхемой TSOP2138 , рассчитанной на частоту 38 кГц.

Описание протокола Nec

Для передачи данных используется несущая частота 38 кГц. Посылка состоит из стартового импульса и четырех байтов данных – адрес, инвертированное значение адреса, команда, инвертированное значение команды. Адрес и команда передаются дважды для повышения надежности.

Данные передаются младшим битом вперед. Каждый бит начинается с пачки импульсов несущей частоты. Длительность пачки равна 560 мкс. Путем изменением временного интервала между пачками импульсов осуществляется кодирование нулей и единиц. При передаче логической единицы интервал от начала текущей до начала следующей пачки импульсов составляет 2.25 мс, а при передаче логического нуля – 1.12 мс.

Стартовый импульс представляет собой пачку импульсов несущей частоты длительностью 9 мс. После подачи стартового импульса следует пауза в 4.5 мс.



Существует расширенная версия протокола Nec, в которой используется 16-ти разрядные адреса.

Алгоритм декодирования сигналов ПДУ

Для декодирования ИК сигналов, соответствующих протоколу Nec, требуется измерять время между передаваемыми пачками импульсов. Для этого можно использовать схему захвата, внешнее прерывание или банальный опрос вывода микроконтроллера. Я остановил свой выбор на схеме захвата.

Рассмотрим алгоритм работы программы, декодирующей сигналы ПДУ. (Код не привожу, чтобы не загромождать описание.)

В начале функции main() выполняется инициализация таймера Т1 - разрешается прерывание по событию «захват», устанавливается работа схемы захвата по спадающему фронту (потому что сигнал на выходе ИК приемника инвертированный), нормальный режим работы таймера и коэффициент предделителя, позволяющий вычислять длительность между пачками импульсов без многократных переполнений счетного регистра. Инициализируется lcd дисплей, используемый для отладки. Устанавливается флаг глобального разрешения/запрещения прерываний.

Параллельно выполнению основного кода, работает таймер Т1 и его схема захвата. Как только логический уровень вывода ICP(PD6) меняется с «1» на «0» выполнение основного кода прекращается и вызывается обработчик прерывания. В обработчике микроконтроллер сохраняет текущее и предыдущее значение счетчика таймера и устанавливается флаг, сигнализирующий функции TIM_Handle() о захвате нового значения.

Функция TIM_Handle() представляет собой конечный автомат с двумя состояниями – IDLE(ожидание) и RESEIVE(прием). В начале функции проверяется установка программного флага и в случае выполнения условия, вычисляется длительность временного интервала и выполняется код автомата.


В наше время телевидение достигло апогея развития. Многие люди смотрят телевизор по несколько раз день и пульт в данном случае является неотъемлемой частью телевизора. Взрослые люди с грустью вспоминают те времена, когда им приходилось вставать каждый раз с дивана или кресла, чтобы переключить канал. Теперь же все гораздо проще – достаточно нажать всего одну кнопку на этой «волшебной палочке» и вы смотрите уже другой канал. Но как же работает пульт? Давайте заглянем внутрь. Принцип работы дистанционного управления заключается в том, что для его действия необходимо нажать кнопку, которая отвечает за ту или иную функцию. Это нажатие затем превратится в инфракрасный сигнал света, который получит телевизор. Если снять заднюю крышку пульта, то вы увидите всего одну деталь – печатную плату с множеством точечек и линий. Практически во всех устройствах дистанционного управления используется типичный набор компонентов. Во-первых, это интегральная схема (также называемая чипом) с серийным номером "TA11835". С правой стороны чипа проходит диод, транзистор (черный), резонатор (желтый), два резистора (зеленые) и конденсатор (темно синий). Рядом с контактами батареи есть резистор (зеленый) и конденсатор (коричневый диск). С помощью этой схемы чип определяет, какая была нажата кнопка. Затем он переводит «нажатую кнопку» в некую последовательность символов, своего рода азбуку Морзе, поскольку каждая кнопка имеет свой код. Затем чип отсылает этот закодированный сигнал на транзистор, который его усиливает.

Печатная схема

Если раскрутить печатную схему и вытащить ее из пульта, то можно заметить, что она представляет собой тонкую пластинку из стекловолокна, на поверхности которой выгравированы тонкие медные "полосы". На печатной плате собраны различные электронные части. «Печатанье» медных полос на листе из стекловолокна довольно недорогостоящий процесс. К тому же в наше время не составляет большой сложности установить детали (например, чипы, транзисторы и т.д.) на пластину из стекловолокна, а затем припаять все это медными проводами.

Если посмотреть на схему, то можно увидеть набор точек контакта, которые соответствуют каждой отдельной кнопке. Сами кнопки сделаны из тонкого эластичного материала. Каждой кнопке соответствует крошечный проводящий диск. Когда диск соприкасается с контактами на печатной схеме, происходит соединение и чип улавливает сигнал об их соединении. На конце печатной схемы находится инфракрасный светодиод, также называемый светоизлучающим диодом. Многие светоизлучающие диоды производят видимый свет, но те диоды, которые устанавливаются в пульты дистанционного управления, излучают невидимый для человеческого глаза свет. Но если у вас есть видеокамера, то вы можете увидеть этот свет через видеоискатель. Для этого вам необходимо навести пульт на камеру и нажать любую кнопку. Инфракрасный свет отразится в видеоискателе.

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