Адаптер кнопок руля jvc своими руками

Адаптер кнопок руля jvc своими руками

Выкладываю свою версию адаптера рулевых кнопок.
На данный момент устройство работает — спасибо Дмитрию (Demon083)!
Я не претендую на гениальность.
Развивать данный адаптер дальше не буду, так как это временная мера.
Адаптер изготавливался под определенный руль и определенную магнитолу, но это не исключает возможность переделки и использования для других комплектов руль-магнитола.

Итак, поехали!
После установки руля с медиа-кнопками возник естественный вопрос: «А как его «подружить» с магнитолой?» Конечно, существует великое множество всевозможных адаптеров на любой вкус и кошелёк, но это не для нас.
Поскольку моя магнитола (Kwnwood KDC-6051U) понимает только протокол NEC, была использована имеющаяся Arduino Nano, немножко резисторов, стабилизатор 7812, пара кондеров и кусок монтажной платы. Всё это хозяйство было собрано на монтажке.

Для снятия кодов был использован самый обычный ИК-фотодиод, купленный с известного всем сайта, и родной пульт от магнитолы.
В скетче использовал специально заточенную под это дело библиотеку IRremote.h. На сколько я понял описание этой библиотеки, выход только D3. Его можно даже не прописывать, всё и так работает.

Достоинства:
Дёшево, быстро.

Недостатки:
Подходит только для магнитол с импульсным управлением. Настроить можно только на месте и только с ноутбуком, Нужна модифицированная библиотека: IRremote.zip.

#include
IRsend irsend ;
const int read1 = A0 ; //левый блок кнопок
const int read2 = A1 ; //правый блок кнопок
float val1 = 0 ;
float val2 = 0 ;
float lastval1 = 0 ;
float lastval2 = 0 ;
int pause1 = 180 ; //Задержка после нажатия кнопок
int pause2 = 200 ; //Задержка после нажатия кнопrи SRC
// Коды сняты с пульта
//[Влево] 9D6250AF
//[Вправо] 9D62D02F
//[Громкость +] 9D6228D7
//[Громкость –] 9D62A857
//[ + ] 9D62B04F
//[ – ] 9D6230CF
//[SRC] 9D62C837

//Расположение кнопок на блоках и значения
//Громкость + правый 843
//Громкость — правый 894
//Следующий правый 305
//Предыдущий правый 540
//Источник правый 696
//Громковсть + левый 540
//Громкость — левый 843
//+ левый 305
//- левый 696

void setup ()
<
pinMode ( read1 , INPUT );
pinMode ( read2 , INPUT );
Serial . begin ( 9600 );
>
void loop ()
<
val1 = analogRead ( read1 );
val2 = analogRead ( read2 );
/////////////////// Обработка правого блока кнопок //////////////////////
if ( val1 > 10 && val1 1000 ) //фильтр от помех
<
if ( val1 != lastval1 ) //если значение изменилось
// Serial.print(«Right «);
// Serial.println(val1);
<
delay ( pause1 ); //задержку подбирал на свой вкус
if ( val1 > 794 && val1 860 ) //Громкость +
<
Serial . println ( » R. Vol +» ); //Контроль
irsend . sendNEC ( 0x9D6228D7 , 32 );
lastval1 = val1 ;
>
if ( val1 > 877 && val1 910 ) //Громкость —
<
Serial . println ( » R. Vol -» ); //Контроль
irsend . sendNEC ( 0x9D62A857 , 32 );
lastval1 = val1 ;
>
if ( val1 > 644 && val1 745 ) //Выбор источника
<
Serial . println ( » R. SRC» ); //Контроль
irsend . sendNEC ( 0x9D62C837 , 32 );
lastval1 = val1 ;
delay ( pause2 ); //дополительная задержка
>
if ( val1 > 225 && val1 383 ) //Вправо
<
Serial . println ( » R. >>» ); //Контроль
irsend . sendNEC ( 0x9D62D02F , 32 );
lastval1 = val1 ;
>
if ( val1 > 462 && val1 592 ) //Влево
<
Serial . println ( » R. ); //Контроль
irsend . sendNEC ( 0x9D6250AF , 32 );
lastval1 = val1 ;
>
>
>
/////////////////// Обработка левого блока кнопок //////////////////////
if ( val2 > 10 && val2 1000 ) //фильтр от помех
<
if ( val2 != lastval2 ) //если значение изменилось
<
// Serial.print(«Left «);
// Serial.println(val2);
delay ( pause1 ); //задержку подбирал на свой вкус
if ( val2 > 462 && val2 644 ) //Громкость +
<
Serial . println ( » L. Vol +» ); //Контроль
irsend . sendNEC ( 0x9D6228D7 , 32 );
lastval2 = val2 ;
>
if ( val2 > 794 && val2 910 ) //Громкость —
<
Serial . println ( » L. Vol -» ); //Контроль
irsend . sendNEC ( 0x9D62A857 , 32 );
lastval2 = val2 ;
>
>
if ( val2 > 225 && val2 383 ) //Вверх
<
Serial . println ( » L. +» ); //Контроль
irsend . sendNEC ( 0x9D62B04F , 32 );
lastval2 = val2 ;
>
if ( val2 > 644 && val2 745 ) //Вниз
<
Serial . println ( » L. -» ); //Контроль
irsend . sendNEC ( 0x9D6230CF , 32 );
lastval2 = val2 ;
>
>
>

Читайте также:  Браслеты для барби своими руками

const int analogPin1 = A0 ; // Для левого
const int analogPin2 = A1 ; // Для правого
float val1 = 0 ;
float val2 = 0 ;

void setup ()
<
pinMode ( analogPin1 , INPUT );
Serial . begin ( 9600 );
>

void loop ()
<
val1 = analogRead ( analogPin1 );
val2 = analogRead ( analogPin2 );
delay ( 200 );
if ( val1 1000 )
<
Serial .print( «Lefr » );
Serial . println ( val1 );
>
if ( val2 1000 )
<
Serial .print( «Right » );
Serial . println ( val2 );
>
>

int RECV_PIN = 10 ;

IRrecv irrecv ( RECV_PIN );

void setup ()
<
Serial . begin ( 9600 );
irrecv . enableIRIn (); // Start the receiver
>

// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) <
// decode_results *results = (decode_results *)v
void dump ( decode_results * results ) <
int count = results -> rawlen ;
if ( results -> decode_type == UNKNOWN ) <
Serial .print( «Unknown encoding: » );
>
else if ( results -> decode_type == NEC ) <
Serial .print( «Decoded NEC: » );
>
else if ( results -> decode_type == SONY ) <
Serial .print( «Decoded SONY: » );
>
else if ( results -> decode_type == RC5 ) <
Serial .print( «Decoded RC5: » );
>
else if ( results -> decode_type == RC6 ) <
Serial .print( «Decoded RC6: » );
>
else if ( results -> decode_type == PANASONIC ) <
Serial .print( «Decoded PANASONIC — Address: » );
Serial .print( results -> panasonicAddress , HEX );
Serial .print( » Value: » );
>
else if ( results -> decode_type == JVC ) <
Serial .print( «Decoded JVC: » );
>
Serial .print( results -> value , HEX );
Serial .print( » (» );
Serial .print( results -> bits , DEC );
Serial . println ( » bits)» );
Serial .print( «Raw (» );
Serial .print( count , DEC );
Serial .print( «): » );

for ( int i = 0 ; i count ; i ++) <
if (( i % 2 ) == 1 ) <
Serial .print( results -> rawbuf [ i ]* USECPERTICK , DEC );
>
else <
Serial .print(-(int) results -> rawbuf [ i ]* USECPERTICK , DEC );
>
Serial .print( » » );
>
Serial . println ( «» );
>

При изготовлении своего адаптера рулевых кнопок мне стало интересно, почему полученные с пульта у библиотеки IRemote.h (протокол NEC) данные отличаются? Стал копать данную тему и вот что я накопал. Для примера рассмотрим адрес/команду кнопки [Vol+] стандартного пульта автомагнитолы Kenwood. В Ардуине это выглядит так: 9D6228D7, а вот в официальном описании так: адрес:46B9 команда:14. (HEX)
Нужна была программа, которая умеет конвертировать между собой, шестнадцатеричные, десятичные и двоичные числа и первая, которая пришла мне на ум была калькулятор из винды в расширенном виде и обратил внимание на двоичный код и пришло прозрение!
Возьмем наш код из ардуины 9D6228D7, где 9D62-является адресов, а 28D7-командой.
Теперь представим 9D62 в двоичном виде и получим 1101100101100010. А теперь самое интересное. Надо прочитать с конца данный двоичный код 0100011010011011 и преобразовать обратно в HEX. Получаем 469B. Это уже знакомые нам цифры, не так ли?
Теперь команда. С ней немножко сложнее. Её надо разбить на 2 части 28 и D7. Получаем
28 00101000
D7 11010111
Как видим, одно значение инверсно другому. Читаем 28 наоборот и получаем 14.

Читайте также:  Журнальный столик с рисунком своими руками

Теперь обратное преобразование
Возьмем адрес:46B9 и команду:15 [Vol-] и переведем это на язык ардуины.
46B9 -> 0100 0110 1011 1001 ->1001 1101 0110 0010 -> 9D62
15-> 0001 0101 -> 1010 1000 -> A8 (читаем наоборот)

1010 1000
0101 0111 -> 57 (инвертируем)
Складываем всё в кучу и получаем 9D62A857.
Надеюсь кому-нибудь пригодится.

Источник

Адаптер кнопок на руле для магнитол JVC

Bogstas

mediatek

да уж, не раз люди к нам в сервис обращались. все изыскания — говорят «никак»!
но один клиент вернулся и сказал, что купил сию радость через интернет на каком-то голландском или австрийском сайте. ждал месяц. цена вопроса ок 4 рублей (нашими ) не знаю с пресылкой или нет. так что лучче, наверное купить и не мучаться, к тому же не на жигули это дело ставится, а явно на престижную европейку.
вот оно:

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

Справочная информация

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

  • Диагностика
  • Определение неисправности
  • Выбор метода ремонта
  • Поиск запчастей
  • Устранение дефекта
  • Настройка

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

Неисправности

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

  • не включается
  • не корректно работает какой-то узел (блок)
  • периодически (иногда) что-то происходит

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

  • О прошивках

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

    На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.

    • Прошивки ТВ (упорядоченные)
    • Запросы прошивок для ТВ
    • Прошивки для мониторов
    • Запросы разных прошивок
    • . и другие разделы

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

  • Схемы аппаратуры

    Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:

    • Схемы телевизоров (запросы)
    • Схемы телевизоров (хранилище)
    • Схемы мониторов (запросы)
    • Различные схемы (запросы)

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

  • Читайте также:  Автоматный ремень своими руками
  • Справочники

    На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).

    Marking (маркировка) — обозначение на электронных компонентах

    Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.

    Package (корпус) — вид корпуса электронного компонента

    При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

    • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
    • SOT-89 — пластковый корпус для поверхностного монтажа
    • SOT-23 — миниатюрный пластиковый корпус для поверхностного монтажа
    • TO-220 — тип корпуса для монтажа (пайки) в отверстия
    • SOP (SOIC, SO) — миниатюрные корпуса для поверхностного монтажа (SMD)
    • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
    • BGA (Ball Grid Array) — корпус для монтажа выводов на шарики из припоя

  • Краткие сокращения

    При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

    Сокращение Краткое описание
    LED Light Emitting Diode — Светодиод (Светоизлучающий диод)
    MOSFET Metal Oxide Semiconductor Field Effect Transistor — Полевой транзистор с МОП структурой затвора
    EEPROM Electrically Erasable Programmable Read-Only Memory — Электрически стираемая память
    eMMC embedded Multimedia Memory Card — Встроенная мультимедийная карта памяти
    LCD Liquid Crystal Display — Жидкокристаллический дисплей (экран)
    SCL Serial Clock — Шина интерфейса I2C для передачи тактового сигнала
    SDA Serial Data — Шина интерфейса I2C для обмена данными
    ICSP In-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
    IIC, I2C Inter-Integrated Circuit — Двухпроводный интерфейс обмена данными между микросхемами
    PCB Printed Circuit Board — Печатная плата
    PWM Pulse Width Modulation — Широтно-импульсная модуляция
    SPI Serial Peripheral Interface Protocol — Протокол последовательного периферийного интерфейса
    USB Universal Serial Bus — Универсальная последовательная шина
    DMA Direct Memory Access — Модуль для считывания и записи RAM без задействования процессора
    AC Alternating Current — Переменный ток
    DC Direct Current — Постоянный ток
    FM Frequency Modulation — Частотная модуляция (ЧМ)
    AFC Automatic Frequency Control — Автоматическое управление частотой

    Частые вопросы

    После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

    Кто отвечает в форуме на вопросы ?

    Ответ в тему Адаптер кнопок на руле для магнитол JVC как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

    Как найти нужную информацию по форуму ?

    Возможность поиска по всему сайту и файловому архиву появится после регистрации. В верхнем правом углу будет отображаться форма поиска по сайту.

    По каким еще маркам можно спросить ?

    По любым. Наиболее частые ответы по популярным брэндам — LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

    Какие еще файлы я смогу здесь скачать ?

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

    Полезные ссылки

    Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.

    Источник

  • Оцените статью