
Просмотров: 1724
Первое, что надо понять назначение кнопок клавиш пульта, а также, что за кодирование реализовано в ИК- пульте. Для назначения клавиш обратимся к описанию, а для взлома кодирования воспользуемся старым и добрым Saleae Logic.Для тех кто связан модернизацией и управлением ресиверов Trimax часто возникают вопросы по синтезу или декодированию команд инфракрасного пульта, а так-же создания устройств по управлению ресиверами по одно проводной шине. В этой статье приведен пример создания как приемника так и передатчика, а также управление TV-тюнером на PIC-микроконтроллере.
Назначение кнопок пульта
Клавиша | Основное назначение | Код ИК последовательности |
![]() |
Включение – Выключение | 10000000101111110011101111000100 |
![]() |
Режим MUTE | 10000000101111110011100111000110 |
![]() |
Выбор номера канала непосредственным вводом | 10000000101111110100100110110110 |
*** | ||
![]() |
10000000101111110010001111011100 | |
![]() |
Переключение с приема телевидения на прием радиостанций | 10000000101111111001101101100100 |
![]() |
Возврат на предыдущий канал | 10000000101111110100000110111110 |
![]() |
Отображение меню управления на экране | 10000000101111111010100101010110 |
![]() |
Возврат в предыдущее меню или выход из меню управления | 10000000101111111010001101011100 |
![]() |
Переход до следующей программы или меню управления | 10000000101111110100101110110100 |
![]() |
Переход до предыдущей программы или меню управления | 10000000101111110100101110110100 |
![]() |
Регулировка громкости уменьшение или переход по меню влево | 10000000101111111001100101100110 |
![]() |
Регулировка громкости увеличение или переход по меню вправо | 10000000101111111000001101111100 |
![]() |
Вызов списка программ или активация выбранного пункта меню | 10000000101111110111001110001100 |
![]() |
Вызов функции программного гида | 10000000101111110101101110100100 |
![]() |
Информация о выбранном канале | 10000000101111110001000111101110 |
![]() |
Отображение окна поиска | 10000000101111110110100110010110 |
![]() |
Переход в режим теле текста | 10000000101111110100001110111100 |
![]() |
Управление субтитрами | 10000000101111111100001100111100 |
![]() |
Отображение окна ЗВУК | 10000000101111110010000111011110 |
![]() |
Перелистывать список вверх | 10000000101111111011101101000100 |
![]() |
Перелистывать список вниз | 10000000101111110011000111001110 |
![]() |
Отображение списка избранных групп | 10000000101111110110101110010100 |
![]() |
Перемотка назад | 10000000101111111100000100111110 |
![]() |
Перемотка в перед | 10000000101111111110001100011100 |
![]() |
Нет функций | 10000000101111111010000001011111 |
![]() |
Пауза/воспроизведение | 10000000101111110100000010111000 |
![]() |
Остановить воспроизведение | 10000000101111111100000000111111 |
Более подробно можно ознакомиться с функциями пульта по описанию на модель TR-2012HD [wpdm_file id=310 template=”link-template-calltoaction3.php”]
Последовательности формируемые ИК-пультом.
Последовательность передачи команд управления классическая. Она команда за которой передаются комода авто повтора. Сама команда начинается со стандартной преамбулы, за которой следует 32 бита данных (4 байта данных). Заканчивается стробом.
Декодирование ИК-команд
Кодирование бит широтное (сканы кодов представлены с выхода ИК приемника). Параметры длительностей для формирования данных сведены в таблицу, синхронизация для декодирования берется от отрицательного фронта.
Для команды | |
Назначение бита | Длительность |
Преамбула | 13.409 ms |
Длительность бита 0 | 1.120 ms |
Длительность бита 1 | 2.232 ms |
Для авто повтора | |
Преамбула | 11.174 ms |
Частота модуляции несущей 38 кГц (но можно использовать и 36 если приемник другого типа).
Для декодирования можно использовать CCP модуль в режиме захвата. Настройка (для 16 серии PIc-контроллеров)
// настройка CCP4 в режиме захвата T1CON=0b00110001; // настройка таймера T1CON // |||||| | // |||||| +-- TMR1ON таймер включить // |||||+---- T1SYNC синхронизация отключена // ||||+----- T1OSCEN генератор отключен // ||++------ T1CKPS настройка предделителя 11 = 1:8 Prescale value // ++-------- TMR1CS выбор тактовой частоты FOSC CCP4CON=0b00000100; // вход RB0 // ++++-- CCPxM<3:0>: режим работы - Capture mode: every falling edge
Данные будут поступать на вход модуля CCP4, это RB0 в контроллерах типа PIC16F1936. Переменную для приема байт можно выбрать 8-16-32 бита. Если вы выберите unsigned long bait01;, то получите данные о полной команде, если меньше то соответственно только младшие байты. Для многих приложений достаточно 16 байт.
Сама функция декодирования происходит через прерывание от CCP модуля
if(CCP4IF)// ИК приемник { CCP4IF=0; // сброс вектора прерывания. pwm_reg=TMR1L; pwm_reg += TMR1H << 8; TMR1L=0; TMR1H=0; if(pwm_reg>13000&&pwm_reg<14000)// передача синхроимпульса должна сопровождаться переполнением таймера { chetchic=CLOBIT;//счетчик бит (3 байта 8*3=24) } else if (pwm_reg>11000&&pwm_reg<12000&&POV)// передача "бита автоповтора" { // POV - блокировка функции автоповтора если не было перед этим передачи команды AUTO=1; timerautopo=5;// инициализация таймера, блокировки автоповтора } else if (pwm_reg>2000&&pwm_reg<2500&&chetchic>0) // передача "1" { bait01<<=1; bait01 |= 1; chetchic--;//подсчет принятых бит if(!chetchic){PRIEM=1;POV=1;}// 32 установить флаг команда принята если переданы все 32 бита } else if (pwm_reg>1000&&pwm_reg<1200&&chetchic>0)// передача "0" { bait01<<=1; chetchic--;//подсчет принятых бит if(!chetchic){PRIEM=1;POV=1;}// установить флаг команда принята если переданы все 32 бита } }
Как работает само декодирование, мы настраиваем прерывание по отрицательному фронту сигнала. После появления этого события, мы считываем значение таймера и сразу его обнуляем. На этом, все декодирование и закончено, по большому счету. Далее просто у нас есть 4 типа длительностей, это преамбула для передачи данных, преамбула для автоповтора, и длительность передачи нуля и единицы. Нам необходимо только сравнивать эти длительности и при определении, что приняли ноль или единицу записывать его в переменную, которая выступает буфером приема. После принятия 32 бит сформировать флаг – данные готовы.
Более подробно можно ознакомится скачав проект по декодированию кодов пульта Trimax.
Коды IR- пульта для автомобильных магнитол. Длительность команды 32 бита.
Клавиша | >Функция | Код (десятичный) | Примечание |
ВКЛ/ВЫКЛ | 501 43455 | ||
Квадрат | 501 39885 | ||
В конец | 501 60285 | ||
MODE | Режим | 501 80175 | |
BAND | Диапазон | 501 88845 | |
Стрелка вверх | 501 90375 | ||
TITLE | 501 66405 | ||
SUB-T | 501 39375 | ||
Стрелка влево | 501 52125 | ||
ENTER | 501 84765 | ||
Стрелка вправо | 501 96495 | ||
SETAP | 501 65895 | ||
PBC | 501 82215 | ||
Стрелка вниз | 501 49575 | ||
ANGLE | 501 41415 | ||
SLOW | 501 78135 | ||
1 | 501 61815 | ||
2 | 501 94455 | ||
3 | 501 43655 | ||
4 | 501 56205 | ||
5 | 501 55695 | ||
6 | 501 69975 | ||
7 | 501 76095 | ||
8 | 501 76605 | ||
9 | 501 47535 | ||
0 | 501 88335 | ||
10+ | 501 97005 | ||
GOTO | 501 51615 | ||
APS | 501 72525 | ||
ST | 501 67935 | ||
VOL+ | 501 99045 | ||
ZOOM | 501 82725 | ||
LOC | 501 78645 | ||
SEEK- | 501 57735 | ||
SEL | 501 48045 | ||
SEEK+ | 501 72015 | ||
MUTE | 501 62325 | ||
CLK | 501 94965 | ||
VOL- | 501 80685 | ||
AUDIO | 501 43965 | ||
Эмуляция передатчика ИК-команд.
Передача это обратный процесс декодирования.
Для передачи необходимо также использовать модуль CCP в режиме ШИМ. Его назначение формирование несущей для ИК сигнала. В зависимости от используемого приемника необходимо выбирать 36 или 38 кГц. Хотя из практики приемники на 36 кГц нормально работают на умеренные расстояния и 38 кГц несущей. Но если необходимо уверенный прием или дальность то рекомендую использовать несущую которую использует преемник. Если корректно выбрано несущая, то при 25% наполненности несущей и согласовании приемника можно уверенно покрывать расстояния до 60 метров.
обновлено 2014-07-22
Продолжение следует…
Это может быть интересно
Проект с использованием MCC часть 08
Просмотров: 832 И так создадим проект в котором при помощи двух кнопок мы сможем управлять яркостью светодиодов. При использовании МСС у нас лафа полная, добрые дяди с Microchipa подготовили функции, …Сумеречное реле
Просмотров: 1258 Реле управления освещением, датчик день-ночь – одним словом фотореле для управления освещением или формирования сигнала для системы умный дом о понижении или повышении освещенности относительно заданного уровня. Реле выполнено по классической схеме, конденсаторный блок питания, от сети переменного тока …PIC18 – модуль DMA
Просмотров: 949 Введение Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной обработки …Индикатор температуры
Просмотров: 2507 Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе …Индикатор кода – RC-5 Protocol Philips
Просмотров: 877 Индикатор кода – RC-5 Protocol Philips При конструировании дистанционного управления на инфракрасных лучах для контроля удобно иметь индикатор кодов передаваемых пультом. Плата ch-c3000 позволяет изготавливать устройства с возможностью …Просто о внешних переменных
Просмотров: 654 Часто возникает задача когда необходимо предавать данные между модулями программы. Например, передать данные между файлами, или управлять работой модулей. Для этого создаем заголовочный файл и описываем наши переменные как …Цифровой спидометр для автомобиля
Просмотров: 9974 Универсальность печатной платы ch-c0030pcb позволяет создавать на её основе разнообразные устройства. Одним из таких устройств является электронный спидометр для автомобиля, в котором можно задать два компаратора скорости, например, для …Trimax – кодирование и декодирование ИК-команд
Просмотров: 1724 Первое, что надо понять назначение кнопок клавиш пульта, а также, что за кодирование реализовано в ИК- пульте. Для назначения клавиш обратимся к описанию, а для взлома кодирования воспользуемся …Светодиоды со встроенным драйвером WS2812B
Просмотров: 795 Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery …Часы + Календарь + Термометр + …
Просмотров: 2438 Часы + Календарь + Термометр + Индикатор влажности + Секундомер + Дистанционное управление на ИК лучах (пульты на RC-5 протоколе) + Автоматическая регулировка яркости + Возможность вывода данных через USB, …