
Так как на магнитоле есть выход WR под мультируль решил использовать эту функцию, заказал беспроводной руль через алиэкспресс по прибытии обнаружил что пульт то не хочет дружить с магнитолой Pioneer, в ходе эксперементов выявил что при соеденении 2х диодов к проводам KEY1 KEY2 и соединении диодов в один начинают работать некоторые кнопки, ну а это значит что есть конкретное сопротивление и начались поиски проектов, перебрал их целую кучу но все никак не работало, остановился на этом и вот этом за что собственно им большое спасибо. но есть один момент, как я не пытался но по их схеме не мог получить желаемый результат, поэтому чуть доработать как на фото ниже(выход VL на массу(SLEEVE) разьема 3.5 джек VW на плюс(TIP) разьема 3.5 джек).еще один момент при подборке напряжений в режиме порта выставите скорость указанную в скетче( я долго мучался с тем что небыло ничего в режиме порта ), Ардуино использовал про мини 3,3 в 328., питание через LM7805 и Потенциометр ну и сам Мультируль






ну и сам скетч измененный под мой беспроводной мультируль:
// библиотека для потенциометра, скачать.
// скачивать тут sites.google.com/site/tfa…rscode/home/digipotx9cxxx
#include <digipotx9cxxx.h>
#include <softwareserial.h>
//задаем на каких пинах сидит управление потенциометром (INC, CS, U/D)
DigiPot pot(2,3,4);
//задаем начальные значение переменных
int i=0;
int prevButton=0;
float Vout = 0;
float r = 0;
// Коды имеющихся на руле кнопок
const int VOL_UP=1;
const int VOL_DN=2;
const int PREV_TR=3;
const int NEXT_TR=4;
const int MODE=5;
const int MUTE=6;
const int BAND=7;
const int DISP=8;
// задаем аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки
int wheelPin=A0;
int Reley1 = 7; // порт к которму подключен пин IN реле. (порт D7, пин IN1)
int Reley2 = 8; // порт к которму подключен пин IN реле. (порт D8, пин IN2)
//int csPin=4;
//int INCPin=2;
//int UDPin=3;// CS на цифровом потенциометре
void setup()
{
pinMode(wheelPin, INPUT);
pot.reset();
pinMode(Reley1, OUTPUT); //говорим, что порт Reley1, т.е. порт D7 явлюяется портом вывода
pinMode(Reley2, OUTPUT); //говорим, что порт Reley2, т.е. порт D8 явлюяется портом вывода
}
// Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0
int getR()
{
// читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине
int r=analogRead(wheelPin);
Serial.begin(115200);
Serial.println®; //можно вывести в терминал значение нажатой кнопки
// Ищем, какая кнопка соответствует этому сопротивлению.
// Данные значения сопротивлений подходят для Suzuki Swift, для других автомобилей числа будут другие.
if (r>=975 && r<=980) return(VOL_UP);
if (r>=880 && r<=885) return(VOL_DN);
if (r>=920 && r<=930) return(PREV_TR);
if (r>=810 && r<=820) return(NEXT_TR);
if (r>=780 && r<=790) return(MODE);
if (r>=730 && r<=740) return(MUTE);
if (r>=970 && r<=974) return(BAND);
if (r>=650 && r<=660) return(DISP);
// если ни одна из кнопок не нажата, возвращаем 0
return (0);
}
// ОСНОВНОЙ ЦИКЛ
void loop()
{
int currButton=getR(); // заносим в переменную currButton код нажатой кнопки
if (currButton!=prevButton) // если значение поменялось с прошлого раза
{
delay(10);
currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки
if (currButton!=prevButton) // если код кнопки точно поменялся с прошлого раза
{
prevButton=currButton; // сохраняем новое значение в переменную prevButton
// Выставляем сопротивление на потенциометре, тем самым посылаем команду на магнитолу.
// Значения сопротивлений даны для Pioneer, для магнитол других марок числа будут другие.
pot.reset();
switch(currButton)
{
case VOL_UP: pot.set(10); break; // 16k 13,5-18,5
case VOL_DN: pot.set(14); break; // 24k 19-29
case PREV_TR: pot.set(7);
digitalWrite(Reley1, HIGH);
delay (500);
digitalWrite(Reley1, LOW);
delay (500);
Serial.println("Reley1 — ON");
break;// 11k 9,5-13
case NEXT_TR: pot.set(5);
digitalWrite(Reley2, HIGH);
delay (500);
digitalWrite(Reley2, LOW);
delay (500);
Serial.println("Reley2 — ON");
break;// 8k 7-9
case MODE: pot.set(1); break; // 1.6k 0,4-2
case MUTE: pot.set(2); break; // 3k 2,5-4,5
case BAND: pot.set(18); break; // 1.6k 0,4-2
case DISP: pot.set(5); break; // 3k 2,5-4,5
default: pot.reset(); break; // 0k
//------------------------------------------------------
}
}
}
delay(5);
}







Комментарии 4
интересная тема, я климат контроль собирал на ардуино
Нива с кондиционером?
в том то и дело что пока без него.
да и в случае нивы надо делать электрическую заслонку (т.к управлением вентилятора толком не решишь).
хотел только для зимнего времени сделать, чтоб поддерживала одну температуру
Saper008
Нива с кондиционером?
поэтому проект этот пока заглох