подбор ir кодов протокол nec

Описание ИК-протокола NEC (кодирование длиной паузы)

В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. nec1. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec1. картинка подбор ir кодов протокол nec. картинка nec1. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Начало каждого бита определяется импульсом длиной 560 мкс (одновременно этот импульс сигнализирует о конце предыдущего бита). Длина следующей за импульсом паузы определяет логическое значение бита.

Для определения конца последнего бита, после него также отправляется импульс длиной 560 мкс.

Команды передаются пакетами. Каждый пакет начинается со стартовой последовательности — импульса длиной 9 мс и паузы длиной 4,5 мс. Пакет имеет размер 4 байта (32 бита), содержащие адрес устройства и команду. Каждый байт пакета передаётся младшим битом вперёд.

Существуют две версии протокола NEC: стандартная и расширенная. В стандартной версии адрес и команда имеют длину 8 бит. Пакет при этом состоит из адреса устройства, инвертированного адреса, команды, инвертированной команды, и имеет следующий вид:

подбор ir кодов протокол nec. nec2. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec2. картинка подбор ir кодов протокол nec. картинка nec2. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

В стандартной версии протокола пакет всегда имеет одинаковую длительность, поскольку и адрес и команда передаются как в прямом, так и в инверсном виде.

В расширенной версии используется 16-ти битный адрес и 8-ми битная команда. Пакет при этом состоит из младшего байта адреса, старшего байта адреса, команды, инвертированной команды, и имеет следующий вид:

подбор ir кодов протокол nec. nec3. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec3. картинка подбор ir кодов протокол nec. картинка nec3. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

В расширенной версии протокола длительность пакета различна и зависит от кода адреса.

подбор ir кодов протокол nec. nec4. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec4. картинка подбор ir кодов протокол nec. картинка nec4. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

При удержании кнопки посылка повторно не передаётся. Вместо этого каждые 110 мс передаётся специальный код повтора (рисунок слева).

Для передачи высокого уровня сигнала пульт посылает пачку импульсов на частоте несущей (обычно со скважностью 3 или 4), длительность пачки соответствует времени, в течении которого должен передаваться высокий уровень. При передаче низкого уровня сигнала пульт ничего не передаёт. В качестве несущей обычно используется частота 38 кГц.

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

Схемы самодельных ИК-пультов, приёмников сигналов дистанционного управления, а также программы для приёма и передачи сигналов по протоколу NEC можно найти по тегу «ИК»

Источник

Реализация ИК протокола NEC на ATmega

подбор ir кодов протокол nec. d307e2c43bae48c3a6972f256d030a79. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-d307e2c43bae48c3a6972f256d030a79. картинка подбор ir кодов протокол nec. картинка d307e2c43bae48c3a6972f256d030a79. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:Данный протокол уже много где описан. Я хочу показать и подробно описать свою реализацию на конкретном микроконтроллере. Мне было необходимо принимать сигнал с пульта RGB — такого, как на картинке. Его система команд приведена внизу статьи.

Краткий экскурс

Каждый пакет протокола NEC состоит из стартовой последовательности – импульса длиной 9 мс и паузы длиной 4,5 мс. Дабы не грузить вас теоретическими рисунками, покажу реальные скриншоты с логического анализатора.

подбор ir кодов протокол nec. 9873107c73a04ec9a44e3873838c3593. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-9873107c73a04ec9a44e3873838c3593. картинка подбор ir кодов протокол nec. картинка 9873107c73a04ec9a44e3873838c3593. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Сам протокол основан для кодировании нулей и единиц длиной паузы. Начало каждого бита определяется импульсом длиной 560 мкс (одновременно этот импульс сигнализирует о конце предыдущего бита). Длина следующей за импульсом паузы определяет логическое значение бита. Так, суммарная длина логического нуля получается 1.12мс, а логической единицы 2.25мс. Соответственно в реальной ситуации значения немного разнятся.

подбор ir кодов протокол nec. 981e732c891b4b62a6f63656f3d67a38. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-981e732c891b4b62a6f63656f3d67a38. картинка подбор ir кодов протокол nec. картинка 981e732c891b4b62a6f63656f3d67a38. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:
подбор ir кодов протокол nec. 306a5056d5724d79b71fa23549198a05. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-306a5056d5724d79b71fa23549198a05. картинка подбор ir кодов протокол nec. картинка 306a5056d5724d79b71fa23549198a05. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Пакет состоит из стартовой последовательности, адреса и команды. В стандартной версии протокола пакет всегда имеет фиксированную длительность, так как адрес и команда передаются как в прямом, так и в инверсном виде.

подбор ir кодов протокол nec. e4e562f12bf0422eb3c6dcaa2afbb5aa. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-e4e562f12bf0422eb3c6dcaa2afbb5aa. картинка подбор ir кодов протокол nec. картинка e4e562f12bf0422eb3c6dcaa2afbb5aa. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

При удержании кнопки посылка повторно не передаётся. Вместо этого каждые 110 мс передаётся специальный код повтора длительностью 11,25 мс.

подбор ir кодов протокол nec. bbc7cc7b809542ff8f60c629c8577066. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-bbc7cc7b809542ff8f60c629c8577066. картинка подбор ir кодов протокол nec. картинка bbc7cc7b809542ff8f60c629c8577066. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Программа

Я не принимал адрес, так как он мне не нужен. В случае необходимости, вы легко сможете доработать программу. В качестве микроконтроллера была выбрана ATmega32 с 16МГц кварцем. Следовательно, все временные интервалы рассчитаны для 16Мгц. Для реализации протокола нам понадобится таймер для отсчета времени и внешнее прерывание по ниспадающему фронту. Таймер настроен с делителем 1024, один такт 1024/16МГц = 64мкс, прерывание по переполнению 64мкс * 256 = 16мс (что заведомо больше любого из битов в пакете, это нам пригодится).
Начальная инициализация и макросы старт/стоп таймера выглядят так:

Код написан в среде IAR, но легко переносится в другую среду, путем замены заголовков прерываний.
Прерывание по переполнению таймера нужно только для “завершения” приема. Переполнение в 16мс больше любой составляющей пакета, будь то преамбула или бит, так что такое прерывание можно считать окончанием приема пакета и подготовиться к приему следующего.

Здесь у меня возник один нюанс, объяснение которого я не знаю. При пуске таймера сразу (само собой после обработки прерывания INT0) срабатывало прерывание по переполнению таймера. Как? Зачем? Возможно, это был какой-то индивидуальный косяк, ибо общая программа на тот момент уже была не маленькая, но я решил первое прерывание не обрабатывать, а обрабатывать второе, т.е уже после 32мс.

Прерывание по ниспадающему фронту INT0. Тут считаем биты и анализируем время, пройденное с последнего прерывания. По величине таймера TCNT0 легко понять, какой это был бит. В конце обработчика таймер обнуляем, чтобы начать отсчет сначала.

В основной программе анализируем флаг newC, не забыв обнулить его. Ну и дальнейшая обработка команды.

Система команд

А вот и сама система команд для пульта ED618 (покупаю их на dx.com):

подбор ir кодов протокол nec. 6273cd1a902740329042daeb5de23e8a. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-6273cd1a902740329042daeb5de23e8a. картинка подбор ir кодов протокол nec. картинка 6273cd1a902740329042daeb5de23e8a. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Для других таких же RGB пультов система команд может быть другая. У меня есть точно такой же пульт, достался мне от какого-то покупного контроллера RGB, так там система команд весьма отличается. Считывайте и смотрите сами. Я, например, принимал команду и скидывал ее по UART’у на комп.

Алгоритм сам по себе не сложный, надеюсь кому-то пригодится. У меня уже сделано не одно устройство на основе пульта с таким протоколом, все работает хорошо. В следующей статье расскажу про реализацию протокола светодиодов ws2812b.

Источник

Подбор ir кодов протокол nec

подбор ir кодов протокол nec. datasheet. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-datasheet. картинка подбор ir кодов протокол nec. картинка datasheet. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. dorogi. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-dorogi. картинка подбор ir кодов протокол nec. картинка dorogi. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. b09. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-b09. картинка подбор ir кодов протокол nec. картинка b09. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Некоторые протоколы ИК-пультов. Часть первая

Автор: Aheir
Опубликовано 30.07.2007

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

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

подбор ir кодов протокол nec. 01. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-01. картинка подбор ir кодов протокол nec. картинка 01. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

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

подбор ir кодов протокол nec. 02. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-02. картинка подбор ir кодов протокол nec. картинка 02. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

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

Я, естественно, начал с поиска информации в Сети, но, к своему глубочайшему удивлению, ничего кроме нескольких вариантов исходников для кода RC-5 (один из существующих протоколов) не нашел. Сгоряча зашив пару вариантов этих прошивок в отладочную ATMega16 и убедившись в их неработоспособности, я взялся за осциллограф. Как оказалось, очень правильно. Дело в том, что ни один из имеющихся у меня пультов по протоколу RC-5 не работал.

Очень много полезной информации по этому поводу представлено на сайте https://www.sbprojects.com, которым я и руководствовался в своих дальнейших изысканиях.

В частности, для протокола NEC:

подбор ir кодов протокол nec. nectrain. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nectrain. картинка подбор ir кодов протокол nec. картинка nectrain. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. necmodulation. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-necmodulation. картинка подбор ir кодов протокол nec. картинка necmodulation. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Временная диаграмма и способ кодирования 0 и 1

подбор ir кодов протокол nec. necsequence. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-necsequence. картинка подбор ir кодов протокол nec. картинка necsequence. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Посылка при удержании кнопки пульта

подбор ir кодов протокол nec. necrepeat. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-necrepeat. картинка подбор ir кодов протокол nec. картинка necrepeat. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Временная диаграмма для кода повтора (удержание кнопки)

А для протокола SIRC:

подбор ir кодов протокол nec. sirctrain. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-sirctrain. картинка подбор ir кодов протокол nec. картинка sirctrain. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. sircmodulation. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-sircmodulation. картинка подбор ir кодов протокол nec. картинка sircmodulation. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

Временная диаграмма и способ кодирования 0 и 1

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

И в том, и в другом случае 0 и 1 кодируются длительностью импульса или, что то же, его шириной. Каждый бит начинается с импульса некоторой неизменной длительности. Соответственно, чтобы понять, получили мы 0 или 1, нам надо измерить длительность паузы после начального импульса бита или длительность паузы вместе с этим импульсом, поскольку его длина неизменна. С этой задачей вполне может справиться таймер микроконтроллера, который будет запускаться в момент начала стартового импульса бита.

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

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

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

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

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

Источник

Введение

подбор ir кодов протокол nec. tsop 2. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-tsop 2. картинка подбор ir кодов протокол nec. картинка tsop 2. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. ir rc 1 1. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-ir rc 1 1. картинка подбор ir кодов протокол nec. картинка ir rc 1 1. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

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

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

подбор ir кодов протокол nec. nec protocol 1. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec protocol 1. картинка подбор ir кодов протокол nec. картинка nec protocol 1. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

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

подбор ir кодов протокол nec. nec protocol 2. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec protocol 2. картинка подбор ir кодов протокол nec. картинка nec protocol 2. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

подбор ir кодов протокол nec. nec protocol 4. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec protocol 4. картинка подбор ir кодов протокол nec. картинка nec protocol 4. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:
подбор ir кодов протокол nec. nec protocol 3. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec protocol 3. картинка подбор ir кодов протокол nec. картинка nec protocol 3. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

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

подбор ir кодов протокол nec. nec protocol 5. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-nec protocol 5. картинка подбор ir кодов протокол nec. картинка nec protocol 5. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

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

Файлы

Ссылки

Related items

Comments

мультиметр не покажет мгновенное значение напряжения, тут надо осциллографом только смотреть.

попробовал повторить прибор, но не пошло.

вопрос: какие Fuse mega8535, т.к. программатор USBASP AVRDUDE из хекса брать не умеет.

Мне тут подсказали, что в схеме ошибка. Чтобы проект заработал, нужно подправить файл lcd_lib.h
Code:
//порт, к которому подключена шина данных
#define PORT_DATA PORTC
#define PIN_DATA PINC
#define DDRX_DATA DDRC

//порт, к которому подключены управляющие выводы
#define PORT_SIG PORTC
#define PIN_SIG PINC
#define DDRX_SIG DDRC

//управляющие выводы
#define RS 0
#define RW 1
#define EN 2

Микроконтроллер работает от внешнего кварца на 16 МГц. Нужно выставить фуз биты соответствующие этому режиму..

Схему я скоро поправлю.

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

Code:
//прерывание по событию захват
interrupt [TIM1_CAPT] void Timer1Capt(void)
<
#asm(«cli»)
if (flag==1) <
interval = TCNT1;
>
else
<
interval=0;
TCNT1=0;
flag=1;
#asm(«sei»)
LED=OFF;
return;
>

switch (state) <
//ждем стартовый импульс
case WAIT:
TCNT1=0;
if (interval REPEAT_BIT_INT) <
data = 0;
countBit = 0;
countByte = 0;
buffer[NUM_REPEAT] = 0;
state = RECEIVE;
LED=ON;
>
else <
LED=ON;
buffer[NUM_REPEAT]++;
flag=0;
delay_ms(10);
LED=OFF;
>
>
interval=0;
break;

В проекте для CodeVision ошибка. У меня руки не доходят исправить ее. Чтобы код заработал, нужно в файле timer.c кое чего подправить.
Code:
icr1 = icr2;
icr2 = ((unsigned int)ICR1H
чтобы было вот так
Code:
icr1 = icr2;
icr2 = ICR1L;
icr2 |= ((unsigned int)ICR1H
Попробуй, должно заработать.

PS. первый раз неправильно написал. не выспался.

Весь код не лезет в размер. Вот объявление переменных и констант.

while (1)
<
// Place your code here
if ((flag==0)&&(state==WAIT))

Это функция вывода результата.
Code:
void ShowResult()
<
lcd_gotoxy(0,1);
sprintf(lcd_buffer,»%u %u %u %u \n»,buffer[0],buffer[1],buffer[2],buffer[3]);
lcd_puts(lcd_buffer);
sprintf(lcd_buffer,»%u «,buffer[4]);
lcd_puts(lcd_buffer);
>

Вот и весь кодю 😉 Да, у меня атмега32, для других надо соответсвенно менять инициализацию оборудования в майн функции.

while (rc5.dataOK) //ждем отпускания кнопки
<
_delay_ms(200); //задержка 70 мс
rc5.dataOK = 0; // сбрасываем флаг
кнопки
Как бы проверка отпускания кнопки.Тестирую на реальном «железе»не идет

Cпасибо за ответ,но Вы знаете у меня все получилось с циклом while,просто вставил задержку
Code: _delay_ms(200); //задержка 700 мс

rc5.dataOK = 0; // сбрасываем флаг

У вас недостаточно прав для комментирования.

Источник

NEC IR Remote Control Interface with 8051

Contents

NEC Protocol

NEC IR protocol encodes the keys using a 32bit frame format as shown below.

подбор ir кодов протокол nec. left t f. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-left t f. картинка подбор ir кодов протокол nec. картинка left t f. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:подбор ir кодов протокол nec. right t f. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-right t f. картинка подбор ir кодов протокол nec. картинка right t f. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:
NEC Frame Format
AddressComplement of AddressCommandComplement of Command
LSB-MSB(0-7)LSB-MSB(8-15)LSB-MSB(16-23)LSB-MSB(24-31)

Each bit is transmitted using the pulse distance as shown in the image.
Logical ‘0’: A 562.5µs pulse burst followed by a 562.5µs space, with a total transmit time of 1.125ms
Logical ‘0’: A 562.5µs pulse burst followed by a 1.6875ms space, with a total transmit time of 2.25ms подбор ir кодов протокол nec. NecIrRemote 1. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-NecIrRemote 1. картинка подбор ir кодов протокол nec. картинка NecIrRemote 1. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

When a key is pressed on the remote controller, the message transmitted consists of the following, in order:

The four bytes of data bits are each sent least significant bit first. Below image illustrates the format of an NEC IR transmission frame, for an address of 00h (00000000b) and a command of ADh (10101101b).

A total of 67.5ms is required to transmit a message frame. It needs 27ms to transmit the 16 bits of address (address + inverse) and the 16 bits of command (command + inverse). подбор ir кодов протокол nec. NecIrRemote 0. подбор ir кодов протокол nec фото. подбор ir кодов протокол nec-NecIrRemote 0. картинка подбор ir кодов протокол nec. картинка NecIrRemote 0. В ИК-пультах фирмы NEC для передачи данных используется протокол, основанный на кодировании нулей и единиц длиной паузы:

IR Key Codes

Below table gives the complete list of Codes for NEC IR Remote.

KeyEncoded Value
CH-0xFFA25D
CH0xFF629D
CH+0xFFE21D
PREV0xFF22DD
NEXT0xFF02FD
PLAY/PAUSE0xFFC23D
VOL-0xFFE01F
VOL+0xFFA857
EQ0xFF906F
00xFF6897
100+0xFF9867
200+0xFFB04F
10xFF30CF
20xFF18E7
30xFF7A85
40xFF10EF
50xFF38C7
60xFF5AA5
70xFF42BD
80xFF4AB5
90xFF52AD

Sample Code

Below is the sample code to decode the key pressed on IR remote control and send on UART. We need an External interrupt to detect the pulses and timer to measure these pulse widths.

First two transitions will be ignored as they will mark SOF(Start of the frame). After this continuously 32-bit information will be captured in a variable. If the pulse width is greater than 2ms then it will be considered as LOGIC-1 else as LOGIC-0. If the pulse width is greater than 50ms then it will be considered as SOF(Start of the frame).

1ms Delay Calculation:

Using IR Remote Library

Downloads

Download the complete project folder from this link: Examples and Code Library

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *