Официальный сайт компании Arduino по адресу arduino.cc
ИК пульт проблема в кодировке
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 01/09/2015 - 22:03
Здравствуйте Участники форума, помогите разобраться.
Собрал схему на ардуино нано с ик приемником, и есть пульт от кондиционера. При попытке с читывания с него кодов кнопок некоторые выдаются с одинаковым кодом, например выбор температуры на +16 градусов совпадает с 1-ой скоростью вентилятора, а температура +18 градусов, с кнопкой выбора автоматической регулировки скорости вентилятора. Иззачего такое возможно ведь посути у каждой кнопки должен быть свой код.
А какова разрядность кода?
Ни типа ик приёмника, ни ссылки на библиотеки для декодирования, ни анализа стабильности приёма кода одной и той же кнопки с пульта. Можно предполагать все что угодно.
Приемник вроде на 36 библиотека стандартная ардуиновская, из всех кодов пульта повторяются только три кода всего 27, коды выдаются стабильно. Пульт универсальный для кондиционеров (HUAYU Q-1000E)
про разрядность незнаю, а как его можно проверить
Здравствуйте Участники форума, помогите разобраться.
Собрал схему на ардуино нано с ик приемником, и есть пульт от кондиционера. При попытке с читывания с него кодов кнопок некоторые выдаются с одинаковым кодом, например выбор температуры на +16 градусов совпадает с 1-ой скоростью вентилятора, а температура +18 градусов, с кнопкой выбора автоматической регулировки скорости вентилятора. Иззачего такое возможно ведь посути у каждой кнопки должен быть свой код.
Учтите только одну вещь, с пультами от любого кондиционере есть одна проблемка. Когда вы нажимаете на любую кнопку, пульт посылает весь пакет информации который в нём есть. То есть например пульт настроен на 24°С,охлаждение и т.д. . Когда вы читаете (записываете) код команды ВКЛ/ВЫКЛ, на самом деле вы записываете команду 24°С,охлаждение, ВКЛ/ВЫКЛ и т.д. . После, я так понимаю вы собираетесь управлять кондиционером при помощи ардуинки, так вот если он был настроен на 30°С, нагрев , и т.д. и т.п. и вы пошлёте эту команду думая что вы просто включаете его, на самом деле вы его перенастроете на 24°С,охлаждение, ВКЛ.
Примите это к сведенью :).
Вот пара ссылок, почитай на досуге
https://vk.com/topic-54138417_30293323
https://www.youtube.com/watch?v=Ez2rbGADazs
http://geektimes.ru/post/258012/
Затея втом что бы сделать самодельную электронику для управления кондиционером (Переделка оконного кондицыонера) с управлением от пульта. Примерно как https://www.youtube.com/watch?v=KOk0yA-wkGY
Тс, коды в студию.
для более точного распознавания надо несколько раз тыкать в считыватель родным пультом. Универсальный дает погрешность. На то он и угиверсальный. Я свой кондей завел с ардуины. Там посылается один код. Только вкл, например. И только выкл. Если последняя установленная температура была 22 градуса, то он так и оставляет. Поэтому заранее выставив нужную температуру, можно только включать и выключать кондей. Использовал библиотеку irlib.
Про кодировку: ик отсылает 16-ричный код команды. В чем отсылать - не важно. Можно послать 10-чный аналог - число все равно будет то же.
В данном универсалном пульте можно выбрать марку кондиционера с каким он должен работать, и в зависимости от марки он может отцылать как один код так и несколько сразу например при нажати на кнопку в ключения он дает код на установку последней температуры, скорости вентилятора, положения заслонки, и какой режим установлен.
вот код
При загрузке такого текста в микроконтроллер
ну блин. :(
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
подскажите как быть, я все еще не победил данный пульт от кондея.
Я искренне пытаюсь помочь, чем могу. Так как сам недавно спотыкался о те же грабли и завел всетаки кондей. Но у меня он посылал одну команду.
давайте по порядку разберем. Код, который у вас распознает сигналы с универсального пульта - работает? Он на нажатие одной клавиши выдает в сериал один результат или несколько? То есть в буфере "+20" или что-то еще?
Потом, во втором примере какие два кода вы посылаете? Вкл и выкл? Тогда он совсем не то распознает... Числа разные получаются.
код распознается, на включение он отцылает три кода это включение, положение заслонки и температура, дальше коды идут по одному
во втором примере да я нажималь две разны клавиши это температура +18 и 1-ая скорость вентилятора это те кнопки которые повторяются, по первым строчкам ( Decoded NEC:) видно они одинаковые
А может не обращать внимание например на то, что совпадает код температуры с кодом скорости. Если скорость будет ВАРИО, сделайте это в режиме авто, а код будет задавать только температуру.
И если пульт универсальный, может попробовать перепрограммировать его под другой кондей, может там совпадать не будет.
P.S. Рад что мои труды так Вас вдохновили.
нехотелось бы урезать функфионал пульта.
Подругим также совподают и тажа кенетель а вы с какого кондея брали пульт может такая же кодировка в моем есть.
Название не помню, но знаю что не из новых и на сколько помню, от того кондея как раз один пульт и остался. На обратной стороне упаковки от пульта должно быть показано как поменять кодировку. Просто можно пойти в этом нарпавлении чем разгадывать почему коды совпадают.
в данном универсальном пульте по заявлению производителя вшито 1000 моделей, чтож попробую дальше перебрать, может повезет
Перебрал все модели в универсальном пульте, все тоже самое (попадаются одинаковые кодировки кнопок), кто нибудь подскажите, что делать а то я его скоро раскалю((((.
Т.е. Меняются коды со сменой модели но всё равно коды с некоторыми кнопками одинаковые?
нет, сами коды разные, но взависимости от модели коды совпадают на некоторых режимах, это выбор температуры и выбор скорости вентилятора, теесть если я ставлю одну модель то у нее похожие команды это на выбор температуры +18 совпадает с 1-ой скорость вентилятора, + 20 и скорость вентилятора авто, а если выбираю другую модель то +24 с 3-ей скоростью, а есть модель где коды совпадают сразу с +19 и 1-ая скорость, +21 и 2-скорость, +22 и 3-я скорость. и так по всем моделям где совпадает 2-е команды, где сразу четыре, некоторые модели кондицыонеров вообще не определяет или при нажатии одной и тойже кнопки код каждый раз новый. Мне кажется что стандартная библиотека не отлавливает весь код.
пульт такой?
Нет, вот такой
Ну смотри, я по опыту, тоже далал регулировку скорости, и автоматический и ниразу не использовалась скорость ниже максимальной. Некоторые кнопки запрограммировал на настройку часов при выключеном, пользовался этим пару раз т.к. время там не смотрю.Иными словами за всё время пользуюсь только тремя кнопками, какими догадаться не сложно, а тормозить проэкт из за этого, ну точно не стоит.
hugoboss317 А почему вы в своем проэкте использовали отдельный микроконтроллер для ик датчика.
Потому что:
Во-первых на контроллере Atm32 библиотеки ИК и сервы конфликтовали между собой и мне пришлось их корректровать под таймеры вышеупомянутого контроллера, или нужно было переписывать бибу под использование другого таймера но это не главная причина...
во-вторых когда на одном контроллере навешано много железа, то ему нужно время чтоб всё обработать и в это время "летит" ИК импульс который просто игнорируется, а если ИК приёмник будет обрабатываться отдельным контроллером и только он, вероятность выполнения команды почти 100%
На логическом анализаторе наблюда могочисленные пакеты при нажатии кнопки пульта кондея митсубиши
тут мой код (не использую IRremote.h)
http://arduino.ru/forum/programmirovanie/sketch-dlya-pokupnogo-ik-pulta#comment-173491
раскоментируйте serial.print = через терминал увидите код своих кнопок