В продолжение первой и второй части по выводу температуры двигателя, Driving ECO2 и климата на экран MEDIA NAV.
Чего мне еще хотелось, так это знать напряжение аккумулятора, ну и, как обычно, это должно быть дешево и надежно. Достаточно долго пытался придумать как это сделать. В конце концов, пожертвовав выводом данных с климата, вывел напряжение в строку температуры в MEDIA NAV.

Как я это сделал? Изучив труды bayserg007, а именно его записи про канхакер, прослушал шину с ID климата, и нашел, что отсылает кнопка " Рециркуляция". Я так решил, что если включить ее, то на экране MEDIA NAV отобразиться напряжение, если выключить рециркуляцию, то отобразиться температура двигателя. Вообщем, думаю, удобно, хотя, возможно, у кого-нибудь будут иные предложения…

Дело осталось за малым, использовать любой аналоговый вход arduino ( я использовал A0) для измерения напряжения, и написать скетч. Схема для измерения элементарная, и, на всякий случай, добавил стабилитрон для защиты входа.

Скетч писал самостоятельно, хотя мне помогал мой старшенький, не зря ведь он институты посещает…
В скетче не использовал выход INT MCP2515, arduino опрашивает его всегда. Для усреднений значений АЦП в скетче есть кусок кода, все вылеты сглаживаются. В сроке скетча "volt=(50/345.0)*average+40;" делитель 345 — это калибровка напряжения, реальное, и выводящееся на MEDIA NAV. Зависимость, думаю, поймете самостоятельно. Теперь у меня на MEDIA NAV есть напряжение АКБ, температура двигателя и Driving ECO2.
В дальнейшем, думаю, сделать зуммер на предельные значения напряжения и температуры — ведь это как всегда, дешево и надежно…Если у кого есть еще идеи, или доработки в скетче, я буду только рад.
Комментарии 19
Отправьте ему личное сообщение. мы хотим прочитать значение дизельного автомобиля из данных DPF, в TORQUE мы читаем его следующим образом:
Нам нужно прочитать DPF-сажу (фильтр дизельных частиц). Отправить 22242C принять 62242C0000 стартовый байт 4
We need to read DPF Soot (Diesel Particle Filter). Send 22242C receive 62242C0000 start byte 4
Мы не можем прочитать его с ардуино
отличный рабочий товарищ, в первую очередь извините за язык, я из Испании, и я пользуюсь переводчиком. Я хотел бы видеть в media_nav моей Dacia Dokker, 1.5dci значение FAP. У меня есть формула pid, которую Torque использует в Android для просмотра этих данных, но я не знаю, как это сделать, чтобы Arduino мог ее прочитать.
Я был бы признателен за вашу помощь и помощь в моем проекте.
Вот бы нашелся человек написавший программку на CC+ под наше ГУ, что бы брать нужные данные из CAN шины (прописанные к примеру в ini файле) пересчитывать (формулы прописать в ini файле) и выводить результат поверх оболочки на экран. Одним словом получился бы своеобразный бортовой компьютер в ГУ.
Мечты… это было бу не плохо…
Как вариант можно было бы показывать температуру и напряжения переключая показания через секунд 5. А напряжение из кан шины можно достать или только ацп использовать?
Да переключать через время не проблема. Напряжение АКБ я думаю, где- то есть, я не искал.
Ну так значит и надо попробовать реализовать автоматическое переключение показаний через промежуток 3…5 сек.
Это легко можно реализовать, изменив только скетч. Сейчас жду зуммер с Китая, хочу сделать предельные значения АКБ, и температуры ОЖ. Что-то типа разряжен- 1 сигнал, перезарядка- 2 сигнала, превышение температуры ОЖ — непрерывный сигнал…
Т.е. берём стандартное устройство на одном ардуино и двух мср2515 для вывода температуры ОЖ, приделываем к ардуино делитель на резисторах, модифицируем скетч и вуаля?
Ага, делаем простой програмный таймер. Не ждем нажатия кнопки климата.
monsm
Да переключать через время не проблема. Напряжение АКБ я думаю, где- то есть, я не искал.
Напряжение передается по адресу 04AC
Спасибо, как будет время, попробую. Только как это будет выглядеть, при максимальном количестве знаков от -40 до 214, небольшую коррекцию нужно делать.
в сценарии блока упоминается
DataItem Name="BatteryVoltage_V2" Ref="1" FirstByte="2"/>
<scaled Unit="V" Step=" .06" Offset=" 6"/>
т.е. если не ошибаюсь формула (AX+B)/C
послушав CAN по адресу 4AC получил фрейм из пяти байт
90 90 02 00 A0
второй байт фрейма hex 90= 144
0.06*144+6=14.64 V
А кроме того что это хобби такое — создавать самому себе задачу, а потом с честью ее решать, есть еще хоть какое ни будь объяснение необходимости наличия этих показаний? Ведь ЕЛМка и Torque решают эту проблему за 300 рублей…
ELM есть, и согласен, он иногда он нужен, для более серьезной диагностики. Но, судя по отзывам, он, как и некоторые бортовые компьютеры теряет шину, и даже иногда глушит двигатель. На постоянку я не рискую его оставлять. Тем более я Сам могу решать, что я делаю с CAN шиной- либо ее читаю, либо что и куда отправляю. По поводу 300₽, так этот модуль рублей на 150 дороже будет.
Есть один существенны плюс при использовании самодельного устройства. В отличии от работы ЕЛМки+торк, это устройство просто слушает CAN шину не посылая в блоки управления запросов и лишний раз не нагружая их, не выводит их в диагностический режим при движении для считывания pid.
Хакеры блин😁👍
Да без запятой и в цельсиях
Лучшего решения пока нет, в гироскоп хотел воткнуть, но там еще хуже…