IR-передатчик
- Войдите на сайт для отправки комментариев
Ср, 06/04/2016 - 21:30
Пытаюсь собрать адаптер резистивных кнопок на руле авто для управления магнитолой Kenwood на Arduino Pro Micro. На магнитоле есть вход для внешнего управления (ИК-протокол NEC).
С клавиатурой разобрался, коды пульта считал, сохранил. Но не могу найти примера для посылки кода.
Огромная просба: покажите пример посылки кодов (протокол NEC).
Список кодов:
Влево 9D6250AF
Вправо 9D62D02F
Громкость + 9D6228D7
Громкость – 9D62619E
[ + ] 9D62C03F
[ – ] 9D6230CF
SRC 9D62C837
Так возьмите пример из родной библиотеки NECIRremote.h Там есть.
Так возьмите пример из родной библиотеки NECIRremote.h Там есть.
А где взять эту суперсекретную библиотеку, о которой яндекс ничего не знает?
Или тяжело написать пару строк с примером?
А где взять эту суперсекретную библиотеку, о которой яндекс ничего не знает?
Где-то я её скачивал. Сейчас поищу, должна где-то валяться.
Или тяжело написать пару строк с примером?
Странно. Мне показалось как будто Вы меня упрекаете? Я Вам что-то задолжал?
Сейчас поищу библиотеку.
Я, конечно, не имею большого опыта в программировании, но про библиотеку NECIRremote.h первый раз слышу. У меня есть библиотека IRremote.h и примеры к ней, но я не могу разобраться что куда, поэтому и попросил ПРИМЕР с посылкой кода.
NECIRRemote В сети что-то не могу найти, но могу дать свою копию.
Впрочем, это не надо. В библиотеке IRRemote, которую Вы пользуете есть аж два примера отправки
https://github.com/z3t0/Arduino-IRremote/blob/master/examples/IRsendDemo...
https://github.com/z3t0/Arduino-IRremote/blob/master/examples/IRsendRawD...
Примеры очень короткие. Вы не можете их запустить? Что-то с ними не так?
послать_код 9D6250AF на пин3
Ну, там же примеры из трёх строк - смотрите как они посылают, и сами посылайте
Ладно, проехали. Будем считать, что сам разобрался, хотя, на данный момент, не совсем.
Прар вопрос по железу:
1. Хочу повесить IR-светодиод на пин3. Вроде бы последовательно с диодом должен быть резистор. Какой номинал резистора?
2. Необходимо снизить амплитуду выходного дапряжения до 3.3В (нужно для магнитолы). Как это сделать без потери качества сигнала?
3. Внешнее питание. Можно ли запитать от борт-сети авто напрямую и на какой пин или нет?
1. Хочу повесить IR-светодиод на пин3. Вроде бы последовательно с диодом должен быть резистор. Какой номинал резистора?
Открываешь даташит диода. Смотришь прямое напряжение (Up) и рабчий ток (I). Измеряешь напряжение на пине (Upin). Дальше считаешь (Upin-Up)/I - получаешь сопротивление. Берёшь ближайший больший номинал.
2. Необходимо снизить амплитуду выходного дапряжения до 3.3В (нужно для магнитолы). Как это сделать без потери качества сигнала?
Tcnm 100500 решений.
а) Делитель напряжения с последующим эммитерным повторителем,
б) делитель напряжения с последующим операционным усилителем.
в) Два операционных усилителя - первый понижает и инверитует, второй не трогает, но инвертирует обратно.
г) микросхема-буффер, например CD4050B
д) любая из схем в этой статье
е) готовый преоборазователь уровня за 23 рубля на ali
3. Внешнее питание. Можно ли запитать от борт-сети авто напрямую и на какой пин или нет?
Можно, если обеспечить дополнительную фильтрацию, т.к. бортовое питание колбасит не по-детски
1. Хочу повесить IR-светодиод на пин3. Вроде бы последовательно с диодом должен быть резистор. Какой номинал резистора?
Открываешь даташит диода. Смотришь прямое напряжение (Up) и рабчий ток (I). Измеряешь напряжение на пине (Upin). Дальше считаешь (Upin-Up)/I - получаешь сопротивление. Берёшь ближайший больший номинал.
Даташит на диод врядли найду, так как выдрал его из старого пульта.
Даташит на диод врядли найду, так как выдрал его из старого пульта.
Мда, они бывают на 20mA, а бывают и на 500.
Ну, экспериментируйте. Подбирайте ток, чтобы работал.
Даташит на диод врядли найду, так как выдрал его из старого пульта.
Мда, они бывают на 20mA, а бывают и на 500.
Ну, экспериментируйте. Подбирайте ток, чтобы работал.
Так сколько вешать в Омах?
(Подключаясь к всеобщему мозгу человечества, раскручивая магический шар и закуривая ядрёную траву) Воткните на 1КОм, попробуйте! Экс-пе-ри-мен-тируйте!
Так сколько вешать в Омах?
Да, хрен же его знает, что у Вас там за диод-то. Откуда хоть Вы его выдрали?
Если выдрали из более или менее стандартного пульта, то то ток может быть от 50ма до 1,5А. Например, вот такой.
Ну, попробуйте сделать 50мА нормой и 1,5А в пике. Должен заработать. Даже если 50 - многовато, сгореть не должен, там очень короткие импульсы.
Кстати, на такой ток не вздумайте вешать на пин, только через ключевой транзистор. При выборе транзистора помните, что до 1,5А в пике может быть.
Для светодиодов Vishay TSAL6100/6200 от 5В резистор 39 Ом, от 3.3В - 22 Ом. Они тёмно-синего цвета, 5 мм:
Для неизвестных светодиодов, выдранных из китайских пультов ставлю от 100 до 220 Ом, дальность выходит 5-10 метров. Они бесцветные, 3 мм:
Реально ток через них что-то около 15 мА. Хз, может можно больше.
Отрыл похожий светодиод
Может посоветуете схему обвязки?
Идёте на led.linear1.org и забиваете указанные вами цифры, получите номинал резистора, транзистор ставите такой чтобы выдержал этот ток (подсказка: КТ315)
Транзистор практически любой на ток от 150 mA (например, 2N2222A, C1815, 2N3904, S9013H, S8050D, A42, 2N5551 и т.п.).
Резистор в базу зависит от транзистора, когда выберете транзистор, посчитаете.
Схема включения зависит от типа транзистора, когда выберете транзистор - определитесь
Резистор в цепь нагрузки зависит от напряжения питания нагрузки. Какое у Вас? Берёте напряжение питания, вычитаете из него падение на светодиоде (1.6V) и падение на транзисторе (0,65В) и то, что получилось, делите на ток светодиода. Т.е., если напряжение питания у Вас 5В, получаете (5-1,6-0,65) /0,120 = 2,29Ом. Такой, вроде как бывает (в ряде E192), но я ни разу не видел. Из ряда Е24 берёте ближайший в большую сторону - 24 ома.
Что-то я вообще ничего не понял. Можно схемку?
Вы не знаете как транзистор ставить?
Вот здесь, на правой стороне страницы 2. Только там пачка диодов, а у Вас один будет. Резистор который там 2.2К - это то, что я называл "в базе", а резистор на 470 ом - в цепи нагрузки.
У Вас будут другие номиналы. но их не посчитать пока Вы не определитесь с транзистором. Всё от него считается.
В том же пульте есть транзистор 9014 128. Его можно использовать? В нашей дыре не всё можно найти.
Привет. Потратил уже 2 дня на решение своей проблемы, помогайте, гугл не даёт ничего. Собираю термостат, исходный код нашёл на ютюбе, у человека управление осуществляется кнопками на lcd шилде, я заменил часть с кнопками на свою, получается выйти в меню, но в самом меню почему-то не обрабатываются команды с пульта.
Если в меню не входить, то всё работает как задано здесь:
Помогите пожалуйста, как заставить работать кнопки в самом меню?
Влад, ну, что Вы как маленький, я же Вам написал в посте №19
Транзистор практически любой на ток от 150 mA
Кто Вам не даёт открыть даташит 1914 и посмотреть, что ток у него до 100mA? значит не подходит. Почему я за Вас смотрю? Для этого какие-то особые знания и умения нужны?
И что у Вас за дыра такая, что нет ни почты, ни "Евросети"?
Если время терпит, то закажите на али по 2р. 45 коп. за штуку - доставка по почте от трёх недель до полутора месяцев.
Если не терпит, закажите в чипедипе по 7р. за штуку - доставка в любой, ближайший к Вам магазин "Евросеть" в течение нескольких дней.
В моей дыре вообще нет ни одного магазина, торгующего деталями. Каждый резистор, каждый конденсатор - всё заказываю, и ничего, живу.
Привет. Потратил уже 2 дня на решение своей проблемы,
А ничего, что это тема о другом? Откройте свою и там спрашивайте.
Перенес сие извращение на Arduino Nano, ибо Pro Micro слабовата по току. Nano зажигает гирлянду светодиодов и ничё. Попробую сначала с переменным резистором на 1К последовательно.
Вроде заработало.
Плата Arduino Nano, выход беру с D3
Помогите с обвязкой ардуины.
Если на D3 подключаю ИК-светодиод и подношу его к магнитоле - всё нормально. Если подключаю D3 на прямую к магнитоле - результат - 0.
Вопрос по совместимости кодов. Почему один и тот же код в ардуине выглядит так "9D6228D7 (32 bits)", а официально так: адрес: 0x46B9 значение: 0x14? Как их переводить один в другой?
http://www.wheelremote.ru/rc.shtml?kenwood_rc-547
http://www.sbprojects.com/knowledge/ir/nec.php
Что-то как-то не сростается с официальным описанием.
или так: адрес 8 бит 0x40 команда 0x01
или так: адрес 16 бит 0x6B86 команда 0x01
Совсем не похоже на 0x9D6250AF. Где тут адрес, где команда?
Единственное, 0x9D62 присутствует во всех кодах с моего пульта, но перевод из HEX(9D62) в DEC получается 55650 (не 18105). Вот меня и интересует перевод из ардуинного NECа в стандартный NEC.
Там младшие биты вперед,
0x00000001 будет передано как 0x80000000.UPD: Прошу прощения, ошибся, нужно смотреть формат данных и реверсировать их согласно описанию (см. ссылку на описание протокола). Например, если адрес = 0x10, то начало передачи будет: 0x08F7..
UPD2: Рассмотрим твои данные: 9D6250AF
Это адрес прямой и инверсный, команда прямая и инверсная.
Адрес 0x9D в реверсе: 0xB9
Команда 0x50 в реверсе: 0x0A
Сам себя запутал. Не то значение взял
9D6228D7
Есть адрес 0x46B9 и значение 0x14 (HEX). Как его перевести на язык ардуины?
Кажись немного въехал
9D62 -> 1001110101100010 -> инвертируем 100011010111001 -> 46B9
Первые четыре цифры - это адрес.
Со значением застрял
14 -> 00010100 -> 00101000 -> 28 где еще 2 цифры? D7 что это?
"Реверс" это младший бит поменять со старшим и т.п. Если непонятно, распиши в двоичном виде. Это примерно как прочитать слово наоборот, с конца. Было "вася", стало "ясав" (представь себе, что каждая буква - это один бит). Было b10100010 стало b01000101. Зеркало. Если и это непонятно, то я уже ничем не могу помочь, изучай двоичную систему счисления:
https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F
По аналогии перевожу команду из ардуины 28D7 получается EB14, но тут EB явно лишние или я что-то не понял или ардуина с библиотекой врёт.
irsend.sendNEC(0x9D6228, __); Как это правильно написать?
В описании протокола всё написано,
irsend.sendNEC(0x9D6228, __); Как это правильно написать?
void sendNEC (unsigned long data, int nbits) ;
Видимо дело не в програмной части, а в аппаратной. С ик-диодом работает, с магнитолой нет. Видимо нужна схема согласования.
"коды пульта считал, сохранил." Если коды сохранены и распознаны библиотекой IRremote как коды протокола NEC, то нужно их точно так же и отправлять (sendNEC(code, 32)), как они получены, без всяких заморочек с реверсом битов и т.п.
Если есть вторая ардуина, то есть смысл с одной посылать код, на второй принимать и проверить, работает ли передатчик, а уже потом пробовать на магнитоле, иначе один немой, другой слепой, если передатчик не пашет, то и работать не будет. Сразу проверить дальность уверенного срабатывания, т.е. на каком удалении начинаются сбои в приеме кодов, либо ни начинают считываться с ошибками.
"С ик-диодом работает, с магнитолой нет." - вот это не совсем понял, передатчик работает? Кто передает и кто принимает?
Arduino nano в качестве адаптера рулевых кнопок (скетч в посте #27 под спойлером).
К выходу D3 подключаю ИК-светодиод и направляю на магнитолу, на руле нажимаю кнопки - реагирует.
Выход D3 подключаю ко входу Remote магнитолы ... - не работает.
Подключаю другой контроллер, который выдает протокол NEC? ко входу Remote магнитолы ... - работает. Другой контроллер оставить не могу, нужен для других целей.
Не нашел в этой теме и никогда не использовал разъем Remote, потому не совсем понятно, откуда информация, что там нужно 3,3В на входе, плюс не совсем понятно, с чего это вдруг нужно подавать модулированный сигнал, предназначенный для IR, на какой либо вход магнитолы? Есть какая то распиновка входного разъема или какое то описание в инете? Что то с трудом верится, что такое вообще бывает (может ошибаюсь, но не верю).
Магнитола - Kenwood kdc-6051u. Есть вход REMOTE для подключения адаптера резистивных кнопок. Данная магнитола на указаном входе понимает только протокол NEC. Про 3.3 вольта: другой адаптер выдает на выходе, который соединен с магнитолой, 3.3 вольта. Вот я и подумал, что нужно 3.3В.
http://arduino.ru/forum/programmirovanie/obrashchenie-k-pamyati-mikrokon...
Извините, что не в тему, прошу о помощи братья
http://arduino.ru/forum/programmirovanie/obrashchenie-k-pamyati-mikrokon...
Извините, что не в тему, прошу о помощи братья
Так создайте свою тему
Магнитола - Kenwood kdc-6051u. Есть вход REMOTE для подключения адаптера резистивных кнопок. Данная магнитола на указаном входе понимает только протокол NEC. Про 3.3 вольта: другой адаптер выдает на выходе, который соединен с магнитолой, 3.3 вольта. Вот я и подумал, что нужно 3.3В.
Увы, не нашел ничего на эту тему, есть только разъем для подключения CDChanger, и управления с кнопок руля, через специальный адаптер. Управлять можно через CAN или аналоговые кнопки. Всё.
Давай порассуждаем логически:
Какой смысл делать вход, как с IR передатчика (а там модулированный частотой 38КГц сигнал)? Никакого, потому что это бессмысленно. Потому что чтобы использовать такой вход нужно лепить специальный адаптер, который NEC сигнал промодулирует. А нафига производителю такой гемор.
Распиновка этого разъема есть? (к которому подключается руль через адаптер).
В том то и дело, машина у меня hyundai accent 2. Там мультируль изначально не предусмотрен. Вставил от getz. Далее адаптер. Есть адаптер (с другого, профильного, сайта). Запрограммировал выход адаптера, который подключен к магнитоле, через прилагаемую оболочку, на выдачу ик-кода nec. Коды снимал этим же адаптером с родного кенвудовского пульта. Совпадают 100% с кодами (ссылка выше). Далее, магнитола. Разъем стандартный, кннвудовский, на который выведено питание, колонки, вход mute, выход питания (наверно для включения усилка или активной антены) и вход remote con.
Так вот что получается: этот (покупной) адаптер считывает нажатые резистивные кнопки и выдает ик-протокол nec, который магнитола проглатывает на ура. Но! Он выдает 3.3В и на выходе стоит какой-то транзистор? и еще чегото. Плата многослойная, точнее не могу сказать.
Предполагаю, что на выходе ардуины должен стоять активный элемент-повторитель, но я в этих делах не силён.
"адаптер считывает нажатые резистивные кнопки и выдает ик-протокол nec, который магнитола проглатывает на ура."
Схема есть или какое либо описание адаптера? Пока что видится странным такая сложная конструкция. Я еще понимаю, если адаптер содержит в себе ИК светик и выдает на пульт команды.
По скольку я сам был в неведении, то получается ввёл в зблуждение...
Адаптер выдает ИК-код, только не модулированный, поэтому у меня ничего и не получается при подключении к магнитоле. наверно надо править саму библиотеку, чтобы отключить передачу модуляции, а протокол - тот же.
Проблема решена. Устройство работает совместно с магнитолой кенвуд и выдает инверсный сигнал. Правда пришлось использовать модифицированную библиотеку (спасибо Дмитрию Г.) в которой удалена модуляция сигнала. Ссылка на библиотеку http://pccar.ru/attachment.php?attachmentid=43584&d=1461668795
1