В связи с тем, что после встраивания в панель планшета и переноса магнитолы вниз пульт ДУ от нее видит магнитолу только когда руль вывернут вправо и пульт находится максимально внизу. В общем в 80% времени он не может отдавать команды на магнитолу. Появилось желание как нибудь установить подрулевой переключатель от какой нибудь машины. Поиск в инете навел на несколько переключателей, но понравился один ситроен/ пежо. Нашел на просторах авито такой и заказал.
На драйве много записей где за пять минут с перекуром подобрав резисторы разных номиналов заставляют работать этот переключатель с магнитолами сони и пионер, но вот с jvc и кенвуд такое не прокатывает так как у них импульсный режим чтения в отличии от резистивного на сони и пионер.Так как у меня стоит классика JVC Chameleon KD-LX555R я попал в список счастливчиков :big:
Поиск на просторах интернета вывел на форум где люди пытаются подключить свою магнитолу jvc к разного рода пультам.
Потом я нашел на ютубе ролик где человек с помощью ардуино заставляет работать именно такой джой как у меня и магнитолу jvc. На странице с видео он оставил ссылки на схему и прошивку. Все это я закинул на Ядиск
Так вот в ардуине я не шарю от слова совсем:big: и хотелось бы попросить местных умельцев переназначить в прошивке кнопку которая на торце (по умолчанию в прошивке пауза / смена источника данных) на ATT — приглушение звука / выключение, включение магнитолы при зажатии клавиши. Ну и если получиться при зажатии клавиш след. трек/пред. трек чтоб выполнялась перемотка песни.
Звук с планшета идет через aux мафона и так же мафон используется как резервный источник звука (если что-то случится с карПС).
В общем буду признателен если кто-то поможет решить данную проблему.
Сразу отвечу на вопрос "зачем городить огород, когда можно собрать схему на нескольких резисторах": Дело в том, что кнопки джойстика сделаны настолько убого, что имеют плавающее сопротивление, и это может доставлять проблемы с нечетким включением, включением одной функции заместо другой.
Это для магнитол сони/пионер. За пять минут можно собрать.
// Wire signals to be generated for a '1' bit
void bONE() { // Send a binary ONE over the line
if (DebugOn == 1) {
Serial.print(" 1 ");
}
digitalWrite(PINO, HIGH); // Pull 3.5mm TIP low
delayMicroseconds(Length); // for 537us
digitalWrite(PINO, LOW); // Allow 3.5mm TIP to go high
delayMicroseconds(Length * 3); // for 537 * 3 = 1611us
}
// Wire signals to be generated for a '0' bit
void bZERO() { // Send a binary ZERO over the line
if (DebugOn == 1) {
Serial.print(" 0 ");
}
digitalWrite(PINO, HIGH); // Pull 3.5mm TIP low
delayMicroseconds(Length); // for 537us
digitalWrite(PINO, LOW); // Allow 3.5mm TIP to go high
delayMicroseconds(Length); // for 537us
}
// Wire signals to be generated for a start of signal to a JVC
void Preamble() {
if (DebugOn == 1) {
Serial.println(" ");
Serial.print(" AGC ");
}
digitalWrite(PINO, LOW); // Not sure what this does
delayMicroseconds(Length * 1);
// Wire signals to be generated for a end of signal
void Postamble() {
if (DebugOn == 1) {
Serial.print(" STOP ");
}
bONE();
bONE(); // 2 stop bits
}
P.S. This JVC has not 3.5mm jack inpu
А это содержимое скетча который я выкладывал в первом сообщении:
// Address that the radio responds to
#define ADDRESS 0x47//47
unsigned long currentTime, holdbutton;
unsigned long loopTime;
int PrevState = 0;
void setup()
{
currentTime = millis();
loopTime = currentTime;
pinMode(OUTPUTPIN, OUTPUT); // Set the proper pin as output
digitalWrite(OUTPUTPIN, LOW); // Output LOW to make sure optocoupler is off
// Set the pins connected to the steering wheel remote as input / output
pinMode(VOLUP_PIN, INPUT_PULLUP);
pinMode(VOLDOWN_PIN, INPUT_PULLUP);
pinMode(NEXTTRACK_PIN, INPUT_PULLUP);
pinMode(PREVTRACK_PIN, INPUT_PULLUP);
pinMode(SOURCE_PIN, INPUT_PULLUP);
pinMode(SCROLLUP_PIN, INPUT_PULLUP);
pinMode(SCROLLDOWN_PIN, INPUT_PULLUP);
pinMode(LEDPIN, OUTPUT); // Set pin connected to on-board LED as output...
digitalWrite(LEDPIN, LOW);
digitalWrite(LEDPIN, HIGH);
delay(1000);
digitalWrite(LEDPIN, LOW);
// ...and turn LED off
}
// Send a value (7 bits, LSB is sent first, value can be an address or command)
void SendValue(unsigned char value) {
unsigned char i, tmp = 1;
for (i = 0; i < sizeof(value) * 8 - 1; i++) {
if (value & tmp) // Do a bitwise AND on the value and tmp
SendOne();
else
SendZero();
tmp = tmp << 1; // Bitshift left by 1
}
}
// Send a command to the radio, including the header, start bit, address and stop bits
void SendCommand(unsigned char value) {
unsigned char i;
Preamble();
for (i = 0; i < 1; i++) { // Repeat address, command and stop bits three times so radio will pick them up properly
SendValue(ADDRESS); // Send the address
SendValue((unsigned char)value); // Send the command
Postamble(); // Send signals to follow a command to the radio
}
}
// Signals to transmit a '0' bit
void SendZero() {
digitalWrite(OUTPUTPIN, HIGH); // Output HIGH for 1 pulse width
digitalWrite(LEDPIN, HIGH); // Turn on on-board LED
delayMicroseconds(PULSEWIDTH);
digitalWrite(OUTPUTPIN, LOW); // Output LOW for 1 pulse width
digitalWrite(LEDPIN, LOW); // Turn off on-board LED
delayMicroseconds(PULSEWIDTH);
}
// Signals to transmit a '1' bit
void SendOne() {
digitalWrite(OUTPUTPIN, HIGH); // Output HIGH for 1 pulse width
digitalWrite(LEDPIN, HIGH); // Turn on on-board LED
delayMicroseconds(PULSEWIDTH);
digitalWrite(OUTPUTPIN, LOW); // Output LOW for 3 pulse widths
digitalWrite(LEDPIN, LOW); // Turn off on-board LED
delayMicroseconds(PULSEWIDTH * 3);
}
// Signals to precede a command to the radio
void Preamble() {
// HEADER: always LOW (1 pulse width), HIGH (16 pulse widths), LOW (8 pulse widths)
digitalWrite(OUTPUTPIN, LOW); // Make sure output is LOW for 1 pulse width, so the header starts with a rising edge
digitalWrite(LEDPIN, LOW); // Turn off on-board LED
delayMicroseconds(PULSEWIDTH * 1);
digitalWrite(OUTPUTPIN, HIGH); // Start of header, output HIGH for 16 pulse widths
digitalWrite(LEDPIN, HIGH); // Turn on on-board LED
delayMicroseconds(PULSEWIDTH * 16);
digitalWrite(OUTPUTPIN, LOW); // Second part of header, output LOW 8 pulse widths
digitalWrite(LEDPIN, LOW); // Turn off on-board LED
delayMicroseconds(PULSEWIDTH * 8);
// START BIT: always 1
SendOne();
}
// Signals to follow a command to the radio
void Postamble() {
// STOP BITS: always 1
SendOne();
SendOne();
}
жека 3
27.02.2019 00:21
На видео джойстик от рено, у меня такой покупал на Авито к нему адаптер работает с кучей магнитолу, если найду ссылку скину
Меня не интересуют девайсы для подключения, я видел их. Меня интересует переназначение кнопок в коде, что выше.
жека 3
27.02.2019 08:35
Вы понимаете, что этот джойстик предназначен для подключения в штатном режиме через CAN шину и коды написаны для штатного режима
Ваш джойстик надо колхозить т. е. Выводить каждую кнопку и код написан для реновского джойстика, а эти коды выши вы не вкорячите в джойстик пыжика.Вы хоть посмотрите подключение джойстика от рено ипыжика и сравните.
belui
27.02.2019 09:19
Цитата:
Сообщение от жека 3
(Сообщение 408908)
Вы понимаете, что этот джойстик предназначен для подключения в штатном режиме через CAN шину и коды написаны для штатного режима
Джойстик это просто кнопки замыкающие контакты. Все. Я могу переткнув контакты в ардуине поменять кнопки местами и кнопка переключения треков на джойстике будет повышать громкость. Если вы почитаете форум что я выкладывал в первом сообщении то найдете там информацию, что люди вычисляют коды которые использует магнитола, вот пример с первой страницы:
И вот коды кнопок на моем пульте:
0x04 Vol +
0x05 Vol -
0x08 источник
0x0D звук
0x0e отключение звука
0x12 справа
0x13 слева
0x14 Up
0x15 вниз
Можно задействовать код любой кнопки с самого мафона или пульта ду к нему. Сам джой ничего кроме замыкания контактов не умеет. А через ардуину эти замыкания преобразуют в определенный код (простыми словами) понятный мафону.
Цитата:
Сообщение от жека 3
(Сообщение 408909)
Ваш джойстик надо колхозить т. е. Выводить каждую кнопку и код написан для реновского джойстика, а эти коды выши вы не вкорячите в джойстик пыжика.Вы хоть посмотрите подключение джойстика от рено ипыжика и сравните.
Я же в первом сообщении скинул видео где подключают джойстик от пежо к jvc. Последнее видео, что я скинул это мое видео с моим мафоном и моим джоем.
Джойстик от рено ничем особо не отличается от джойстика пежо, он так же тупо замыкает контакты.