Привет! Расскажу о своей попытке сделать бортовой расходомер на базе Arduino Nano. Это мое второе изделие от Ардуино, первым был ходячий паук.
Поэкспериментировав с лампочками и сервомоторами, мне захотелось сделать что-то более полезное.
Конечно, можно было купить готовое изделие, может даже и за меньшую цену (хотя за меньшую цену я его не нашел).
Но это было неинтересно, и возможно, в нем не было тех функций, которые мне были нужны.
К тому же хобби, как и спорт, редко оправдывает затраты в материальной форме.
Прежде чем рассказать о процессе, я покажу вам картинку того, как он выглядит сейчас.
Программа пока в стадии отладки, поэтому контроллер висит на проводах в салоне, а дисплей приклеен на двухсторонний скотч) В дальнейшем будет устанавливаться по-человечески.
Прибор рассчитывает и отображает на дисплее километровый расход топлива: мгновенный в нижней строке, средний за последний километр в верхней строке.
Идея сделать эту штуку пришла ко мне давно, но этому мешало отсутствие информации о том, что и как работает в моей машине.
Она у меня довольно старая – Королла Е11 с двигателем 4А-FE. Про двигатель я знал, что он инжекторный и что форсунки имеют более-менее постоянную работу, на что и рассчитывает собственный блок управления.
Поэтому основная идея измерения расхода заключается в измерении общей продолжительности открытия форсунок.
Блок управления, как подсказал хороший человек и как позже подтвердила инструкция, управляет форсункой следующим образом: на нее всегда подается плюс, а минус открывается и закрывается в зависимости от желания блока управления.
Поэтому, если подключиться к минусовому проводу форсунки, то момент ее открытия можно отследить, измерив потенциал: когда блок управления замыкает форсунку на массу, 14 Вольт падают до нуля.
Эта простая мысль пришла мне в голову не сразу, ведь мои познания в электронике ограничиваются школьным курсом физики и законом Ома.
Далее нам нужно было превратить +14В в +5В, который можно будет подать на логический вход контроллера.
Тут я как-то придумал известную всем электронщикам схему шунта, но перед этим пришлось изучить мануалы и убедиться, что сопротивление инжектора пренебрежимо мало, а сопротивление логического входа практически бесконечно.
Для расчета километража расхода необходимо было получить данные с датчика скорости.
С ним все оказалось проще, потому что он выдает шаги 0.+5В, чем больше шагов, тем больше пробег.
Эти шаги поступали непосредственно на логический вход без преобразований.
Мне очень хотелось отображать данные на ЖК-дисплее.
Я рассматривал разные варианты и остановился на текстовом дисплее MЭLT за 234 рубля на базе микроконтроллера Hitachi HD44780, с которым Arduino может работать с рождения.
После долгих и мучительных размышлений была составлена следующая схема:
Помимо резисторов, снижающих напряжение с форсунки, имеется стабилизатор напряжения для питания контроллера от бортовой сети, а по совету дедушки и хорошего друга были добавлены конденсаторы для сглаживания возможных пиков напряжения, и резистор «на всякий случай» для каждого логического входа.
И да, я решил подавать сигналы с форсунки и датчика на аналоговые входы, о чем в дальнейшем ничуть не пожалел, так как в цифровом режиме аналоговые входы не хотели понимать разницу между закрытой и открытой форсункой, а в аналоговые они очень четко показывали разные уровни напряжения.
Возможно это недоработка моей схемы, но все делалось впервые, вслепую и без тестирования на макетке, в общем методом тыка.
Следуя схеме, я записал разводку печатной платы (да, я сразу бросился печатать, так как не очень хотелось возиться с кучей проводов на плате):
Плату травили впервые и с некоторыми технологическими нарушениями, поэтому результат вышел так себе.
Но после лужения все пришло в порядок.
Травил с помощью лазерного утюга, учился по известным видео по легкой электронике.
После травления плата получилась вот такая:
Чтобы припаять элементы к плате, нам пришлось проделать в ней множество отверстий.
Покупать дорогую дрель типа Дремеля или аналогичную мне не хотелось и, чтобы сэкономить пару тысяч рублей, я сделал микродрель из моторчика и цангового зажима, купленных в радиомагазине неподалеку:
После сверления отверстий, лужения и пайки плата стала выглядеть вот так:
И с лицевой стороны:
Тут я по глупости впаял дополнительный стабилизатор, который позже заменил резистор.
После того как изделие было готово, я начал его испытания в боевых условиях, то есть непосредственно на автомобиле.
Для этого по моей просьбе провода от форсунки и датчика были выведены в салон.
Для микроконтроллера я написал тестовую программу, которая записывала в COM-порт сырые данные — количество импульсов с датчика скорости и миллисекунды, в течение которых форсунка была открыта.
Посидев в машине со своим ноутбуком и увидев, что данные соответствуют действительности, я был несказанно рад и пошёл домой писать рабочую версию программы.
После двух-трех сеансов тестирования программа начала показывать достоверные данные.
Сначала я посчитал средний расход за интервал времени (5-10 минут), что вызвало интересный эффект: после пяти минут стояния на светофоре (даже не пробка, а небольшое подобие) километраж расхода подскочил до запредельных значений 50-100 литров на 100 км.
Сначала я растерялся, но потом понял, что это обычное дело, ведь расход указан на километр, и я усредняю его по времени: часы тикают, бензин течет, а машина стоит на месте.
После этого мне в голову пришла блестящая идея усреднения по пробегу: в текущей версии программа подсчитывает, сколько бензина было израсходовано на последнем километре, и показывает, сколько литров уйдет, если проехать при этом 100 км.
шаг.
«Мгновенный» расход рассчитывается как среднее значение за последнюю секунду и обновляется каждую секунду.
Исходный код (если кому интересно) я опубликовано на PasteBin. Есть еще что дорабатывать, хотя бы стиль самой программы, так как она писалась достаточно спонтанно.
Еще не окончательный результат:
Теги: #расход топлива #arduino #самоделки #autolepra привет #Разработка для Arduino
-
Microsoft Ответила На Претензии Еврокомиссии
19 Oct, 24 -
Обзор Блога №44. Блог Не Верит Слезам
19 Oct, 24 -
Ваша Собственная Домашняя Атс
19 Oct, 24 -
It-Профессии Даются При Рождении
19 Oct, 24