Добрый день! Помогите разобраться с кодами ИК пульта от сплит-системы Samsung. Хочу дальше ей управлять по ИК со своего ус-ва. Взял банально ардуину + приемник типа TSOP1736. У ардуины в библиотеках есть IRRemote, где есть пример разбора приходящих кодов. Поковырял его чуть-чуть, чтобы на другую ногу/прерывание перекинуть (мне подключиться так удобнее было), да размер буффера увеличил (по умолчанию не вмещалось, у меня путь чуть длиннее пакет формирует). Ну и по-записывал разные команды/режимы с пульта, каждый по 3 раза для исключения ошибок считывания. Результат тут: http://pastebin.com/kisrK5xw Пример одного пакета дам сразу тут:
Понятное дело цифры не точные, их надо нормализовать еще. Но да и так видно, что похоже всегда + пульс приходит всегда по ~600, а затем "-" пульс формирует 0 или 1 в зависимости от длины ~ -400 или -1400. Что из этого 0, а что 1 еще бы понять. Да и с концовкой не понятно. Почему в конце "+ 600, -1900 +3050" пульс со знаком минус от -1800 до - 2800 скачет? Это просто широкий диапазон или есть какой-то смысл в его длине? И ~+3000 в конце это видимо признак конца пакета?
roman.com, там ни слова про протокол Sanyo вообще. Тем более у меня как я понимаю какая-то его модификация, т.к. размер пакета нестандартный, а значит и другие параметры могут отличаться. Ссылка к сожалению никак не помогает. Вот тут как бы речь идет про аналогичную вещь: https://www.analysir.com/joomla/IRforum ... ?f=5&t=527 Но решение там тупо считывать и повторять последовательность RAW кодов, храня их на флэшке МК. Я же хочу "разобрать" протокол и формировать значения нормально, а не тупо хранить несколько десятков копий всего массива данных, где каждый раз пару бит меняется только.
Я же хочу "разобрать" протокол и формировать значения нормально...
Ну так а в чём проблема ? Записали и разобрали код любого пульта...
Я тут как то тоже решил помотреть коды всех пультов в доме)) У всех пультов принцип работы одинаоквый - передаётся адрес, и команда. У некоторых с повтором адреса и команды... у некоторых с инверсией адреса и команды...
Подключил TSOP и простейший индикатор к ATmega8. Нажимаю кнопки... на индикаторе смотрю коды всех кнопок...
Вот пример что я делал:
Отличия всех моих ИК пультов только в длительности преамбулы...
1- Значит мой пульт LG от кондиционера использует протокол NEC: (показания индикатора - 00000000~11111111 01101000~10010111), т.е. (адрес, ~ иверсия адреса, команда, ~ инверсия команды). Адрес для всех кнопок - одинаковый. Меняются только последнии биты: -00000001 кнопка "1" -00000010 кнопка "2" -00000011 кнопка "3" ... ... ... Всё ясно.)) При передачи/приёма кнопок пишу/читаю номер кнопки... Всё, с кнопками разобрались))
Дальше считал все остальные кнопки... У них другой адрес.
Всё. С пультом LG от кондиционера разобрался за пол часа))) ----------
A пульт SAMSUNG от телевизора использует протокол SAMSUNG:
(показания индикатора - 11100000=11100000 01001000~10110111), т.е. (адрес, адреса, команда, ~ инверсия команды). Адрес для всех кнопок - одинаковый. Только SAMSUNG у меня в качестве повтора использует повтор всего пакета...
Всё. С пультом SAMSUNG от телевизора разобрался тоже за пол часа))) ----------
Ещё... для интереса записал на компьютер сигнал от радиопультов. Вот например радиоуправляемая игрушка и автосигнализация... 433 Мгц ...
У моего кондиционера, как и большинства нет "кнопки". Он сразу передает все настройки в одном пакете. С этим и хочу разобраться. Что именно непонятно я написал прям в своем первом посте. Я не могу перевести в код это пока, у меня записаны длительности импульсуов. А радио мышка тут вообще не при чем.
Ну можно записать на компьютер весь код настройки кондиционера... целиком)) Только разобраться будет чуть дольше...
В кондиционере много функций? )) несколько режимов... температура.. что там ещё есть?)) Не знаю.. я бы записал на комп несколько режимов и сравнил бы их... думаю я бы быстро бы нашёл где там что... )) А может чуть повозиться... ))
не знаю... может конечно поковыряться в интернете и зная модель конциционера... можно найти протокол на пульт... Но помоему быстрее записать код и разобрать его самому))
А причём тут радио мышка ... я не понял... Код радиомышки я ещё не смотрел))
видно, что похоже всегда + пульс приходит всегда по ~600, а затем "-" пульс формирует 0 или 1 в зависимости от длины ~ -400 или -1400. Что из этого 0, а что 1 еще бы понять.
Это обычный манчестер. ... Только импульсы по идеи должны быть все одинаковой длительности.
Не похоже, если я правильно понял. В википедии написано, что кодировка там переходами с уровня на уровень кодируется бит. А значит длительность может быть некое T или 2T. А у меня все импульсы с + лишь Т по длительности, не бывают длительностью 2Т, как тут: https://upload.wikimedia.org/wikipedia/ ... ntions.svg
Ну можно записать на компьютер весь код настройки кондиционера... целиком)) Только разобраться будет чуть дольше...
В кондиционере много функций? )) несколько режимов... температура.. что там ещё есть?)) Не знаю.. я бы записал на комп несколько режимов и сравнил бы их... думаю я бы быстро бы нашёл где там что... )) А может чуть повозиться... ))
Так я их и записал, в 1ом посте ссылка на pastebin, там полный дамп с переключением всех возможных режимов по одному. Я пока не разобрался с ними, поэтому и вопросы задаю тут.
Цитата:
А причём тут радио мышка ... я не понял... Код радиомышки я ещё не смотрел))
Радио игрушку имел в виду, почему-то мышка мне почудилась.
Мне тут с analysir.com подсказали, что либа IRRemote под ардуину может неправильно работать с пакетной передачей от кондеров и отображать не весь пакет данных, а обрезать его. Посоветовали попробовать их прошивку для дампа кодов. Собираюсь опробовать чуть позже.
Это что? Всё импульсы должны быть или Т или 2Т .... это похоже на ошибку измерения. Ну не может пульт выдавать все импульсы разной длительности. Я таких пультов ещё не встречал)))
Я с IRRemote никогда не работал... сказать ничего не могу. Запишите на компе и посмотрите реальный сигнал пульта... Помоему у вас просто ошибка измерения длительности импульсов...
Там же подробно нарисовали... что логический "1" и логический "0" могут кодироваться разными способами... манчестером или длительность (ШИМ), но всегда длительность импульсов постоянная.
Ну понятное дело, что есть погрешность. Я же писал - надо нормализовать просто. Т.е. округлить все значения до +550, -400 и -1400. И да, получается он не все T и 2Т. Поэтому я и говорю, что кодировка другая. Пульсы все примерно одинаковые в пределах +500-+600. А "пробелы" либо -400, либо -1400 - и я думаю именно длинной пробела в данном случае 0 или 1 кодируется. Если без библиотеки IRRemote, просто подвесить на ногу прерывание и по нему без обработки считывать, вот что получается:
Явно IRRemote не весь пакет показывает просто. А вот эта кодировка с AnalysIR сказали "Vestel AC".
EDIT: Говорят приемник-то у меня на 36 кГц, а пульт на 38 кГц несущие. Вот и "пляшут" цифры так прилично. Но не беда, всё-равно прекрасно видно что и где и можно нормализовать (округлить).
Говорят приемник-то у меня на 36 кГц, а пульт на 38 кГц несущие. Вот и "пляшут" цифры так прилично. Но не беда, всё-равно прекрасно видно что и где и можно нормализовать (округлить).
каких только глупостей не наслушаешься в интернете)))
Киким образом переменные значения длительности импульсов могут зависить от частоты приёмника ???
Частота приёмника 36 кГц, вместо 38 кГц может влиять только на максимальную дальность связи.
Если в массиве получаем разную длительность импульсов, то это значит так фигово работает обработчик прерываний. Я без понятия кто писал эти библиотеки... Я обычно не пользуюсь всякими библиотеками ... Насмотрелся в протеусе как они работают коряво...))
Нормализовать в приёмнике можно всё. Проблемы могут возникнуть в передатчике. Мы же хотим не просто расшифровать код, а его транслировать с помощью самодельного передатчика. Поэтому желательно поточней знать длительность импульсов и придерживаться этих длительностей в самодельном передатчике.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения