Сопряжения резистивных кнопок руля управления головным устройством в авто.
- Войдите на сайт для отправки комментариев
Втр, 27/01/2015 - 18:14
Нужна помощь с реализацией задумки.
Пытаюсь вкорячить в свой субарик Головное устройство от более новой модели авто, есть проблема с резистивными кнопками на руле.
Можно ли на Арудино сделать так?
Есть родных 6 кнопок на руле, у каждой свое сопротивление, ГУ (головное устройство) необходимо 2 блока кнопок, 4 кнопки и 4 кнопки, они подключаются к 2 разным входам на ГУ. Я хотел бы обойтись штатными, т.е при нажатии 2 кнопок одновременно - эмулируется на вход ГУ нажатие нужно кнопки на нужный вход. Для нового ГУ необходим доп. провод в "улитке" руля, сейчас управление руля реализовано на 2 проводах.
Вот номиналы:
008-up Impreza, 2009-up Forester (all without phone/BT buttons):
Mute 22 Ohms
Volume Up 90 Ohms
Volume Down 200 Ohms
Mode 360 Ohms
Channel Up 690 Ohms
Channel Down 1500 Ohms
No buttons 4700 Ohms
2011-up Impreza, Forester, and Crosstrek (all with phone/BT buttons):
Pin 4:
Seek Up 0 Ohms
Seek Down 330 Ohms
Volume Up 1000 Ohms
Volume Down 3110 Ohms
No buttons 100K Ohms
Pin 13:
Mode 0 Ohms
On hook 330 Ohms
Off hook 1000 Ohms
Talk 3110 Ohms
No buttons 100K Ohms
На Pin 13 ГУ
При одновременном нажатии Volume Up и Mute (в сумме 112ом) эмулируется нажатие On hook 330ohms
При одновременном нажатии Volume Down и Mode (в сумме 560ом) эмулируется нажатие Off hook 1000ohms
При нажатии Mode (360 Ohms) эмулируется нажатие Mode 0 Ohms
При нажатии Mute 22ohms эмулируется нажатие Talk 3110 Ohms (т к в новом ГУ эта кнопка не задействована, ф-ция Mute активируется длительным нажатием Mode)
Возможно ли такое, может кто-то делал уже похожий проект?
Т.е на аналоговый вход (АЦП) получаем определенное сопротивление, сверяем, создаем на других двух выходах ЦAП нужное сопротивление (как я подозреваю, такое невозможно) но может сделать просто управление на выходе подобранными резисторами?
В идаале иметь обучаемое устройство, с заложенной погрешностью резисторов, т.к на холодной машине номиналы резисторов "уплывают". Думаю такое устройство было полезно многим.
Заранее благодарен за помощь.
на выходе цап сделать сопротивление?
есть более реальный вариант: цифровой потенциометр
https://www.google.ru/search?q=%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B...
на выходе цап сделать сопротивление?
есть более реальный вариант: цифровой потенциометр
https://www.google.ru/search?q=%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B...
Спасибо, добрый человек, я и не слышал никогда про цифровой потенциометр, в голове у себя представлял как "ЦАП с изменяемым сопротивлением" :)
Проще кучу резисторов на кучу выходов поставить чем с ЦАПом .....
#define KnopkaUP 6
#define UP_on digitalWtite ( KnopkaUP , LOW);
#define UP_off digitalWtite ( KnopkaUP , HIGH);
Проще кучу резисторов на кучу выходов поставить чем с ЦАПом .....
#define KnopkaUP 6
#define UP_on digitalWtite ( KnopkaUP , LOW);
#define UP_off digitalWtite ( KnopkaUP , HIGH);
Сейчас прозвонил выводы ГУ, кнопка замыкается через резистор именно на землю, так, что через резисторы вполне реально. Буду думать как реализовать такой код, я в этом очень плохо волоку. Лудить - паять без проблем.
У цифровых потенциометров сильный разброс сопротивления, нелинейность, ненулевое сопротивление в нуле, а низкоомных и совсем не бывает, удобны только на громкость или операционнику в обратную связь...
а может действитель цап. все равно основной блок измеряет же напряжение. подается напряжение. на делитель получившийся и так далее
можно просто измерить это напряжение и выдавать его
ГУ принимает значения сопротивлений в широком диапазоне, например, на холоде с утра, после заводки авто, залипает кнопка громкость вниз. Это и понятно, ибо на новом ГУ "Громокость" вниз это 3310 Ом, а на кнопках руля, сейчас No button 4700 Ом, и на холоде уходит номинал резистора, при этом ГУ считает нажатой кнопку. Т.е разница в целых 1390 Ом на холоде.
а может действитель цап. все равно основной блок измеряет же напряжение. подается напряжение. на делитель получившийся и так далее
можно просто измерить это напряжение и выдавать его
Это мысль! Сейчас попробую измерить напряжение на управляющих выводах ГУ. Есть ли там вообще какой либо потенциал.
Выдавать напряжение - не уверен, 3,3В на выводах ГУ.
Проще кучу резисторов на кучу выходов поставить чем с ЦАПом .....
#define KnopkaUP 6
#define UP_on digitalWtite ( KnopkaUP , LOW);
#define UP_off digitalWtite ( KnopkaUP , HIGH);
Очень неудачное решение просто никакая точность при морозах. Зимой не работает -проверено. Цифровой потенциометр отличный вариант - проверено, точности для этого применения - выше крыши. Есть двухканальные - Ваш вариант. Что касается шести кнопок, то на них можно выполнить 18 действий : короткое нажатие, длинное нажатие, двойное нажатие.
Проще кучу резисторов на кучу выходов поставить чем с ЦАПом .....
#define KnopkaUP 6
#define UP_on digitalWtite ( KnopkaUP , LOW);
#define UP_off digitalWtite ( KnopkaUP , HIGH);
Очень неудачное решение просто никакая точность при морозах. Зимой не работает -проверено. Цифровой потенциометр отличный вариант - проверено, точности для этого применения - выше крыши. Есть двухканальные - Ваш вариант. Что касается шести кнопок, то на них можно выполнить 18 действий : короткое нажатие, длинное нажатие, двойное нажатие.
Я уже поизучал даташиты на цифровые потенциометры, проблему сейчас вижу лишь в одном, т.к у них разрядность 256, а номиналы 1, 10, 100кОм, мне необходим двухканальный на 10кОм, но для режима No button, нужен 100кОм. Вот думаю как такое реализовать.
по нажатиям, длинные нажатия уже задействованы в ГУ, например в новой ГУ, длинное нажатие Mode = Mute. По мне так проще, нажимать две кнопки сразу, тем более у меня для этого удачно расположены кнопки.
полевиком земплю можно отключать или замыкать резистор 90ком)
Если отобразить схематически, должно быть что-то такое. Простите за корявый рисунок, делал на скорую руку в новой для меня проге. Все резисторы на выходе должны притигиваться на землю с помощью транзистора (ключ).
2 x 5 резисторов - это формирование Uвых ?
2 x 5 резисторов - это формирование Uвых ?
Можно сказать и так. С Головного устройства на этих 2 парах выводов есть земля и 3,3в. Ардуино должна просто замыкать через резистор эти выводы по заданному сценарию. 3 вида сценария нажатия рулевых кнопок: нажатие одной кнопки, длинное нажатие одной кнопки, одновременное нажатие 2 кнопок.
Заготовка скетча, пока не прописаны номиналы резисторов, волнует реализация длительных нажатий, части скетча позаимаствовал на просторах рунета:
если вам нужно два канала управляемого напряжения 0...3,3 V - то эти 10 резисторов не помогут, нужна резистивная матрица R2R на 5 входов ! ( просто резисторов будет больше )
res_dt1, res_d; им хватит и int , там не более 1023....
если вам нужно два канала управляемого напряжения 0...3,3 V - то эти 10 резисторов не помогут, нужна резистивная матрица R2R на 5 входов ! ( просто резисторов будет больше )
Я своим рисунком ввел в заблуждение. Нарисовал неправильно. Идея в том, что Ардуино будет просто управлять выводом как реле. Вместо реле - транзистор. Постараюсь перерисовать схему.
Доброго времени суток.
Хочу реализовать подобную задумку на Nissan x-trail, только через двух канальный цифровой потенциометр MCP42100.
получилось реализовать проект?