Volkswagen Transporter T4 (Лучший друг)

Установка панели приборов Venator. Часть 4.

Я їжджу на Volkswagen Passat B5
Харків, Україна

Теперь разберемся с, так называемым, блоком сбора данных.
Напомню: к нему относится Arduino Mega 2560 R3 и шилд. Так вышло, что Arduino необходимо пояснить что и как собирать. То есть нужна программа, называемая Скетч. Разработчики постарались и написали скетч. Более того, не один. К разным версиям программы и разным шилдам — разные скетчи. Да и те, что подходят — не совсем таки подходят. Так я столкнулся с этой проблемой. Скачать его можно вот в этой теме: Цифровая приборная панель на автомобиль своими руками
Ну допустим скачали скетч из темы. Открываем — а оно не открывается. Для того, чтоб открыть для просмотра и редактирования, а тем более для закачки в Arduino — рекомендую зайти на Сайт по Arduino и установить и подключить как там описано. Для китайской версии Arduino нужно еще скачать и установить драйвера. Так же могу порекомендовать Много полезного по Arduino. Ссылка ведет на сайт с подробным описанием и видео по подключению и настройке, а так же с ссылками для скачивания драйверов и прочего.
Теперь мы открываем скетч и о чудо!, он открывается. И вот мы видим кучу непонятных букв.

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

Во вторых зная какие выходы куда ведут лезем в скетч и видим… Ну в общем мы видим совсем не те входы и не то назначение, которое нужно. Например в скетче используются прерывания 0 и 1, однако на распиновке шилда видно, что они попросту не подключены. Расстройству моему не было предела. Думал нужно будет собирать себе еще кусок с подключением прерываний. Однако заметил, что есть еще два прерывания, как раз подключенные — 4 и 5 прерывания.
Поковырявшись, я понял, что не важно соответствие выходов. Их можно назначить самостоятельно. Важно то, какое место в пакете данных займут данные.
Пакет данных, который передается из Arduino в программу, имеет вид вот такой:
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00000000000000000000000000000:
Каждый ноль — это определенные данные. Конечно сейчас это только нули, но при подключении они изменяются в зависимости от показаний датчиков. Через запятую нули — это аналоговые данные. Без запятой — цифровые. Данные, как аналоговые, так и цифровые, имеют тип int. Это значит, что они могут принимать значения от -32 768 до 32767. Однако такие большие диапазоны касаются в основном аналоговых данных. Цифровые обходятся гораздо меньшими значениями. Вот по порядку к каждому нулю:
Аналоговые:
2й — напряжение
3й — топливо
4й — температура охлаждения
5й — температура в салоне
6й — температура за бортом
7й — дифферент
8й — крен
9-17 — резервные (не нашли что еще можно подключить)
Цифровые:
18й — зажигание
19й — ночной скин
20й — кнопка выбора и кнопка действия
21й — левый поворот и правый поворот
22й — габариты и дальний свет фар
23й — ПТФ передние и ПТФ задние
24й — чек
25й — уровень тормозной жидкости
26й — ручник
27й — износ колодок
28й — лампа топлива
29й — уровень охлаждающей жидкости
30й — давление масла
31й — лампа вентилятора
32й — зарядка
33й — ABS
34й — SRS
35й — ремень
36й — двери
37й — p
38й — r
39й — n
40й — d
41й — s
42й — пустой
43й — пустой
44й-46й — у меня не хватило пинов на шилде для них, но они есть.
И того 15 аналоговых и 29 цифровых. Это в сумме 44. Однако я написал 46 и отсчет начал со 2го. Дело в том, что в программировании все начинает отсчет с нуля, и выходит, что мы видим первый ноль, а он на самом деле нулевой. Так реальный 0й и 1й нули являются значениями спидометра и тахометра.

И вот еще что: в случае с цифровыми данными, они имеют 2 значения — вкл и выкл. Но переменная заложена под них огого. И мудрые разработчики решили, что можно повесить не 1 индикацию, а сразу 2 и более. Так вышло с ПТФ, поворотами и габаритами с дальним светом. Могли бы и больше, да функционала в машине не хватит. Не хватает даже на то, что уже есть. С таким пакетом данных хоть гирлянду из индикаторов делай, да входов на Arduino не хватит, хотя она и Mega. Но все же даже на меге при желании все же есть куда повесить дополнительные входы. Да и даже один аналоговый можно перевести (в идеальном случае) в туеву хучу цифровых входов (не без танцев с бубном). Но а смысл? Хоть бы эти заполнить.

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

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

И напоследок для общего развития распиновка Arduino Mega 2560. Вдруг понадобится?

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

Опубліковано: 27 лютого 2018р. 21:41
0 0 0

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.