Автомобильный измеритель расхода топлива своими руками. Простейший индикатор расхода топлива на инжекторный двигатель

24 декабря 2011 в 15:23

Самодельный расходомер для автомобиля

  • Разработка под Arduino

Привет! Расскажу вам о своей попытке сделать бортовой расходомер на основе Arduino Nano. Это моё второе изделие из ардуинки, первым был шагающий паучок. После экспериментов с лампочками и сервоприводами хотелось сделать что-нибудь более полезное.

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

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

Прибор вычисляет и отображает на дисплейчике километровый расход топлива: на нижней строке мгновенный, на верхней - средний за последний километр.

Мысль сделать эту штуку мне пришла давно, но этому мешала нехватка информации о том, что и как устроено в моей машине. Она у меня достаточно старая - Corolla E11 с двигателем 4A-FE. О двигателе мне было известно, что он инжекторный и что форсунки имеют более-менее постоянную производительность, на что рассчитывает и собственный блок управления. Поэтому основная идея измерения расхода - измерение суммарной длительности открытия форсунок.

ЭБУ, как подсказал хороший человек и как потом подтвердила инструкция, управляет форсункой следующим образом: плюс на неё подаётся всегда, а минус открывается и закрывается в зависимости от пожеланий ЭБУ. Стало быть, если подключиться к минусовому проводу форсунки, то можно отслеживать момент её открытия, измеряя потенциал: когда ЭБУ замыкает форсунку на массу, 14 вольт падают до нуля. Эта простая мысль меня посетила далеко не сразу, т. к. мои познания в электронике ограничены школьным курсом физики и законом Ома. Далее потребовалось превратить +14В в +5В, которые можно подавать на логический вход контроллера. Тут я каким-то образом допёр до известной всем электронщикам схемы шунтирования, но перед этим пришлось изучить мануалы и убедиться, что сопротивление форсунки пренебрежительно мало, а сопротивление логического входа почти бесконечно.

Чтобы вычислить километровый расход, необходимо было получить данные с датчика скорости. С ним оказалось всё проще, т. к. он выдаёт ступеньки 0… +5В, чем больше ступенек, тем больше пробег. Эти ступеньки пошли сразу на логический вход без преобразований.

Очень хотелось выводить данные на ЖК-дисплей. Я рассматривал разные варианты и остановился на текстовом дисплее МЭЛТ за 234 рубля на основе микроконтроллера Hitachi HD44780, с которым ардуино умеет работать с рождения.

После долгих и мучительных размышлений была составлена вот такая схема:

Помимо резисторов, понижающих напряжение с форсунки, здесь присутствуют стабилизатор напряжения, дабы запитать контроллер от бортовой сети, а также по советам деда и хорошего друга добавлены конденсаторы, дабы сгладить возможные пики напряжения, и по резистору «на всякий случай» для каждого логического входа. И да, я решил подавать сигналы с форсунки и датчика на аналоговые входы, о чём впоследствии нисколько не пожалел, т. к. в цифровом режиме аналоговые входы не хотели понимать разницу между закрытой и открытой форсункой, а в аналоговом очень чётко показывали разный уровень напряжения. Возможно, это недоработка моей схемы, но всё делалось впервые, вслепую и без тестирования на макете, в общем, наобум.

Вслед за схемой я накидал разметку печатной платы (да, я сразу ломанулся печатать, т. к. возиться с копной проводов на монтажной плате не очень хотелось):

Плату травил в первый раз и с некоторыми нарушениями технологии, поэтому результат вышел так себе. Но после лужения всё пришло в порядок. Травил методом лазерного утюга, учился по хорошо известным роликам на easyelectronics. После травления плата получилась вот такая:

Чтобы припаять на плату элементы, пришлось изрядно её продырявить. Мне не хотелось покупать дорогую дрель типа Dremel или подобной, и чтобы сэкономить пару тысяч рублей, я сколхозил микродрель из моторчика и цангового зажима, которые были куплены в радиомагазине неподалёку:

После сверления дырок, лужения и пайки плата стала выглядеть вот так:

Тут я по глупости припаял лишний стабилизатор, который впоследствии был заменён на резистор.

После того, как изделие было готово, я приступил к тестированию в боевых условиях, т. е. прямо на машине. Для этого по моей просьбе провода от форсунки и датчика были выведены в салон. Для микроконтроллера я написал тестовую программу, которая писала в COM-порт сырые данные - число импульсов с датчика скорости и милисекунды, в течение которых была открыта форсунка. Посидев в машине с ноутбуком и увидев, что данные соответствуют действительности, я несказанно обрадовался и пошёл домой писать рабочую версию программы.

После двух-трёх сеансов тестирования программа стала показывать годные данные. Поначалу я вычислял средний расход по временному интервалу (5-10 минут), что вызвало интересный эффект: после пяти минут стояния на светофоре (даже не пробка, а лёгкое подобие) километровый расход подскакивал до запредельных величин в 50-100 литров на 100 км. Я поначалу недоумевал, а потом понял, что это обычное дело, т. к. расход километровый, а усредняю я по времени: часики тикают, бензин льётся, а машина стоит. После этого мне пришла в голову светлая идея усреднять по пробегу: в текущей версии программа вычисляет, сколько бензина было израсходовано за последний километр, и показывает, сколько литров уйдёт, если проехать 100 км в таком же темпе. «Моментальный» же расход вычисляется как средний за последнюю секунду и каждую секунду обновляется.

Исходный код (если кому интересно) я

Привет! Расскажу вам о своей попытке сделать бортовой расходомер на основе Arduino Nano. Это моё второе изделие из ардуинки, первым был шагающий паучок. После экспериментов с лампочками и сервоприводами хотелось сделать что-нибудь более полезное.

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

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

Прибор вычисляет и отображает на дисплейчике километровый расход топлива: на нижней строке мгновенный, на верхней - средний за последний километр.

Мысль сделать эту штуку мне пришла давно, но этому мешала нехватка информации о том, что и как устроено в моей машине. Она у меня достаточно старая - Corolla E11 с двигателем 4A-FE. О двигателе мне было известно, что он инжекторный и что форсунки имеют более-менее постоянную производительность, на что рассчитывает и собственный блок управления. Поэтому основная идея измерения расхода - измерение суммарной длительности открытия форсунок.

ЭБУ, как подсказал хороший человек и как потом подтвердила инструкция, управляет форсункой следующим образом: плюс на неё подаётся всегда, а минус открывается и закрывается в зависимости от пожеланий ЭБУ. Стало быть, если подключиться к минусовому проводу форсунки, то можно отслеживать момент её открытия, измеряя потенциал: когда ЭБУ замыкает форсунку на массу, 14 вольт падают до нуля. Эта простая мысль меня посетила далеко не сразу, т. к. мои познания в электронике ограничены школьным курсом физики и законом Ома. Далее потребовалось превратить +14В в +5В, которые можно подавать на логический вход контроллера. Тут я каким-то образом допёр до известной всем электронщикам схемы шунтирования, но перед этим пришлось изучить мануалы и убедиться, что сопротивление форсунки пренебрежительно мало, а сопротивление логического входа почти бесконечно.

Чтобы вычислить километровый расход, необходимо было получить данные с датчика скорости. С ним оказалось всё проще, т. к. он выдаёт ступеньки 0… +5В, чем больше ступенек, тем больше пробег. Эти ступеньки пошли сразу на логический вход без преобразований.

Очень хотелось выводить данные на ЖК-дисплей. Я рассматривал разные варианты и остановился на текстовом дисплее МЭЛТ за 234 рубля на основе микроконтроллера Hitachi HD44780, с которым ардуино умеет работать с рождения.

После долгих и мучительных размышлений была составлена вот такая схема:

Помимо резисторов, понижающих напряжение с форсунки, здесь присутствуют стабилизатор напряжения, дабы запитать контроллер от бортовой сети, а также по советам деда и хорошего друга добавлены конденсаторы, дабы сгладить возможные пики напряжения, и по резистору «на всякий случай» для каждого логического входа. И да, я решил подавать сигналы с форсунки и датчика на аналоговые входы, о чём впоследствии нисколько не пожалел, т. к. в цифровом режиме аналоговые входы не хотели понимать разницу между закрытой и открытой форсункой, а в аналоговом очень чётко показывали разный уровень напряжения. Возможно, это недоработка моей схемы, но всё делалось впервые, вслепую и без тестирования на макете, в общем, наобум.

Вслед за схемой я накидал разметку печатной платы (да, я сразу ломанулся печатать, т. к. возиться с копной проводов на монтажной плате не очень хотелось):

Плату травил в первый раз и с некоторыми нарушениями технологии, поэтому результат вышел так себе. Но после лужения всё пришло в порядок. Травил методом лазерного утюга, учился по хорошо известным роликам на easyelectronics. После травления плата получилась вот такая:

Чтобы припаять на плату элементы, пришлось изрядно её продырявить. Мне не хотелось покупать дорогую дрель типа Dremel или подобной, и чтобы сэкономить пару тысяч рублей, я сколхозил микродрель из моторчика и цангового зажима, которые были куплены в радиомагазине неподалёку:

После сверления дырок, лужения и пайки плата стала выглядеть вот так:

Тут я по глупости припаял лишний стабилизатор, который впоследствии был заменён на резистор.

После того, как изделие было готово, я приступил к тестированию в боевых условиях, т. е. прямо на машине. Для этого по моей просьбе провода от форсунки и датчика были выведены в салон. Для микроконтроллера я написал тестовую программу, которая писала в COM-порт сырые данные - число импульсов с датчика скорости и милисекунды, в течение которых была открыта форсунка. Посидев в машине с ноутбуком и увидев, что данные соответствуют действительности, я несказанно обрадовался и пошёл домой писать рабочую версию программы.

После двух-трёх сеансов тестирования программа стала показывать годные данные. Поначалу я вычислял средний расход по временному интервалу (5-10 минут), что вызвало интересный эффект: после пяти минут стояния на светофоре (даже не пробка, а лёгкое подобие) километровый расход подскакивал до запредельных величин в 50-100 литров на 100 км. Я поначалу недоумевал, а потом понял, что это обычное дело, т. к. расход километровый, а усредняю я по времени: часики тикают, бензин льётся, а машина стоит. После этого мне пришла в голову светлая идея усреднять по пробегу: в текущей версии программа вычисляет, сколько бензина было израсходовано за последний километр, и показывает, сколько литров уйдёт, если проехать 100 км в таком же темпе. «Моментальный» же расход вычисляется как средний за последнюю секунду и каждую секунду обновляется.

Исходный код (если кому интересно) я

Автомобильный измеритель расхода топлива.

Машина не роскошь, – а средство передвижения, именно этими словами хотелось бы открыть эту тему. Любое транспортное средство не может двигаться без топлива, которое, как известно, стоит денег. А кто из нас точно знает, сколько литров на единицу времени или пути сжигает автомобиль. А ведь зная текущий расход топлива можно легко выбирать стиль езды, экономящий понапрасну сжигаемое топливо. Удобно выявить оптимальные режимы с точки зрения рационального компромисса между экономией и достаточной приемистостью, именно для вашего двигателя. Многие авто уже оборудованы штатными индикаторами, да, именно индикаторами (не измерителями) расхода с названиями ECONOMY или тому подобными. Данный прибор скорее отображает качество усвоения топлива двигателем, нежели расход. Он измеряет разряжение под дроссельной заслонкой, – а это не есть точный параметр расхода топлива…

Многие контроллеры управления впрыском, имеют внешнюю цифровую шину, с которой можно считывать информацию о расходе, но описания протоколов обмена по этой шине не являются свободно доступными, и проще с этой шиной не работать.

Разработанная мною конструкция является достаточно точным прибором для отображения реального, текущего расхода топлива Вашего авто.

Единственным ограничением на использование этого прибора является то, что двигатель должен быть инжекторным (mono или multi point), а если дизельный, то впрыск должен быть электронным. Современные автомобили в основной своей массе именно таковыми и являются.

Это связано с тем, что исходный сигнал снимается непосредственно с клеммы электромагнита форсунки. Измерение расхода основано на измерении времени открытия форсунок за единицу времени измерения, учитывая то, что давление топлива в магистрали - константно.

Расход отображается в литрах в час с точностью 0.1 литра в час. Для подключения требуется всего 4-е провода: масса, +12в постоянно, +12в при включении зажигания и сигнал от форсунки (если их больше одной, то от любой одной). Существуют два основных режима работы - измерение и калибровка. Для чего нужна калибровка. У разных моделей авто различный объём двигателей, разное давление в топливной магистрали и т.п. Для процесса калибровки необходимо только одно - знать точное количество топлива сгоревшее за какое то время. Начало и окончание этого времени отмечается пользователем. При этом, в режиме калибровки, можно запускать и глушить двигатель и ехать на любых скоростях и режимах. Важно лишь отметить контроллеру начало и окончание отсчёта времени, за которое сгорело точно известное количество топлива. После этой процедуры прибор будет откалиброван именно для вашего авто. Процедура калибровки, работающая с 32-х битными числами - достаточно сложна и подробного описания её работы не будет.

Измеритель может быть выполнен на любом процессоре с структурой команд 8051, например 1816ве51,80с31,89s52…, с внутренней или внешней памятью программ не менее 4К.

Измеритель состоит из блока индикации на 1-2-х рядном индикаторе с контроллером HD44780, блока клавиатуры и самого процессорного модуля. В качестве индикатора лучше применить двухрядный 2х16 знаков или полуторорядный, в котором второй ряд имеет матрицу символа 4х5 точек. Можно использовать и однорядный индикатор, но в этом случае не будет работать пиковый индикатор расхода, реализованный именно в втором ряду знакомест.

Клавиатура состоит из пяти кнопок, работающих на замыкание, обозначим их цифрами 1..5 для простоты упоминания о них в дальнейшем описании. Блок индикатора и блок клавиатуры могут быть удалены от процессора практически любым кабелем на расстояние более двух метров. Это сделано для удобства установки прибора в авто, например: индикатор на приборный щиток, клавиатуру рядом с ручкой ручного тормоза, а процессор в любое другое место, но обязательно в салоне. Для обеспечения этой возможности выбраны достаточно низкие скорости обмена процессора с индикатором и клавиатурой, а также реализован программный контроль дребезга клавиатуры.

Функционально кнопки имеют сл. Значения:

1 уменьшения значения переменной

2 увеличение значения переменной

3 предыдущая переменная

4 следующая переменная

5 мастер-кнопка

Включение контроллера происходит при включении зажигания, путём формирования сигнала сброса процессора, а выключение происходит автоматически при отсутствии сигнала с форсунки более 15-ти сек. После выключения процессор и индикатор переводятся в режим микропотребления, основное питание при этом не прерывается.

При включении могут быть три варианта запуска

Холодный старт для первого включения или разрушенной информации в пзу

Тёплый старт, значения всех параметров берутся при этом из пзу и озу процессора

Тёплый старт, но с очисткой только озу процессора для запуска откалиброванного измерителя после отключений аккумулятора или иных сбоев в системе электропроводки.

А теперь, собственно, инструкция по эксплуатации.

Для установки в авто необходимо установить индикатор, клавиатуру и процессорный модуль в удобные места. Подключить массу к корпусу авто,+12в к постоянно присутствующему питанию, например к клемме аккумулятора, зажигание к проводу, на котором +12в присутствует только при включенном зажигании и последний провод к форсуне, если форсунок более одной, то к любой из них. Подключаться нужно через резистор 10кОм к тому проводу электромагнита форсунки, на котором напряжение пульсирует в момент открытия последней. В целях безопасности, этот резистор следует установить непосредственно у форсунки. Напряжение с форсунки должно быть близком к нулю при открытии форсунки и близким к 12в при закрытии, в противном случае необходимо самостоятельно установить дополнительный инвертор для смены фазы сигнала с форсунки, в схеме контроллера.

При первом включении перед включением зажигания необходимо нажать кнопки 1,2 и 5 одновременно и потом включить зажигание. После включения зажигания, отпустить кнопки и дождаться запуска контроллера. Далее следует нажать кнопку 5, и после появления в самом правом знакоместе символа * ,нажать кнопки 1 и 2 до появления надписиSETUP, далее отпустить все кнопки.

На экране появится название первой переменной системного меня и её значение. Выбор переменной производится кнопками 3 и 4,а значение меняется кнопками 1 и 2.Для первого случая не следует ничего менять и следует нажать кнопку 5 до появления обычного дисплея. При этом начальные значения пропишутся в пзу и в дальнейшем контроллер будет нормально стартовать при включении. Следует отметить, что при выполнении вышеописанной процедуры инициализации, калибровочный коэффициент останется ошибочным, он пропишется только после удачного цикла калибровки на автомобиле. Это вызовет тольо лишь ошибочную индикацию рахода! Поэтому удобнее пзу 24с02 заранее запрограммировать значениями: 5,100,10,10,32,0,197,0,0,10. Эти данные следет прописать с нулевого адреса пзу.

Системное меню имеет следующие переменные:

Mass time время измерения, которое следует выбрать для получения оптимальной для вас динамики смены показаний измерителя

Mass offs введение постоянной корректировки в показание измерителя в диапазоне от –100 до +100, что будет соответствовать корректировке показаний от – 10.0 л/ч до + 10.0 л/ч.

Mass /div эти параметры позволяют умножить и потом разделить результат измерения расхода на число от 1 до 10-ти для пропорциональной корректировки показаний. Иными словами можно умножить или разделить показания на 0.1….10.

*-displ /div коэффицент деления входного сигнала для пикового индикатора,служит для выбора усиления пикового индикатора.

*-displ mode режим пикового индикатора

0-одно движущееся знакоместо

1-обычный пиковый индикатор с меняющейся по длине полосой знакомест

*-работает только с двухрядным индикатором.

Tank calibr эта переменная влияет на результат калибровки, при её уменьшении показания реального расхода после калибровки увеличиваются и аналогично в обратном направлении.

О последней переменной подробнее. Измеритель спроектирован но работу процессора с кварцем 11мГц, но могут использоваться и другие частоты. Для простоты адоптации к другой частоте кварца и используется данная переменная. Для установки последней в правильное положение лучше всего собрать и подключить калибровочный генератор. Выход генератора подключается вместо сигнала от форсунки. Включив измеритель с генератором следует выбрать частоту и скважность импульсов генератора такими, чтоб показания не были нулевыми и максимальными(70л в час). Далее запустить калибровку скажем на 10 минут и сказать контроллеру, что сгорело 2литра после этого показания должны стать 6 литров в час, если этого не произошло, то следует подобрать переменную tank calibr ,повторяя режим калибровки до получения требуемого показания расхода.

После этой процедуры измеритель готов к калибровки на автомобиле.

Калибровка запускается нажатием кнопок 5 и 3 до появления надписи calibr stsrt, для окончания нажать кнопки 5 и 4 , появится надпись calibr stop, после отжатия кнопок контроллер попросит ввести реально сгоревшее количество топлива (real tank), если ввести 0, то калибровка продолжится. Это сделано для предотвращения ошибочной отмены режима. Если при калибровочных вычислениях возникнут грубые математические ошибки, например деление на ноль, то контроллер выдаст сообщениие calibr error и вернётся к прежним значениям. В режиме калибровки нельзя входить в системное меню, при попытке возникнет сообщение setup not run.Это связано с значением временем измерения, которое нельзя менять в режиме калибровки.

При возможно кажущейся сложности при инсталляции, измеритель обладает высокой гибкостью в адаптации к конкретным условиям работы. При установке кварца на частоту, отличную от 11мГц необходима двойная калибровка, хотя и с требуемым значением частоты (11мГц) кварца может потребоваться первичная калибровка для повышения точности измерений. В любом случае лучше выполнить оба этапа калибровки.

Тёплый старт с очисткой озу процессора отменяет только все незаконченные калибровочные процедуры на случай сбоя.

Технические данные

Измеряемый расход 0.1-70.0 л. на час

Калибровочный объём топлива 1-99 литров

Время измерения 0.2 – 1.5сек

Схема контроллера с внешней ПЗУ

Схема контроллера с внутренней ПЗУ

Схема калибровочного генератора

Фото индикатора работающего измерителя

Фото индикатора со стороны контроллер hd44780

Программы для прошивки пзу в hex и bin форматах

Схемы в формате sPlan . Файлы для прошивки приводятся в bin hex форматах. Прилагается две версии контроллера:

0…для однорядного индикатора

1…для двухрядного индикатора, хотя эта версия может работать с однорядными индикаторами, имеющими непрерывные адреса знакомест, конечно без пикового индикатора.

Индикаторы на основе hd44780 имеют не менее трёх, известных мне, разновидностей адресации внутреннего озу и совет прост, Попробовать обе прилагаемые версии, если это не помогает, то использовать другой индикатор При несовместимости индикатора, в любом случае, левые 8 знакомест будут отображаться корректно!

Как уже отмечалось -процессор любой, совместимый с системой команд 8051,с внешним или внутренним пзу объёмом 4кбайта. В случае использования внутреннего пзу порты Р0 и Р2 не используются.

И в заключение хочу отметить:

Данный прибор является частью моей разработки маршрутно-бортового компьютера. Разработка в целом будет коммерческой и по завершении будет отдельная статья с описанием конструкции и условий реализации прибора.

Данная версия (beta) является бесплатной в связи с тем, что я заинтересован в результатах испытаний на разных моделях авто.

Буду очень признателен за такую информацию.

С вопросами приобретения или заказа просьба пока не обращаться. Дополнительных функциональных возможностей в бесплатной версии также не будет.

Желаю удачи и безаварийной езды!!!

Наш автомобиль обходится нам в кругленькую сумму. Как бы мы не были благодарны ему за его работу, всё же нам время от времени хочется снизить траты на него и тщательнее контролировать расходы топлива, масел и технических жидкостей. Для того, чтобы осуществлять контроль за этими процессами, необходимо точно знать, каков расход топлива за тот или иной период времени. Естественно, что данную задачу нельзя выполнить вручную и на глазок - для быстрых и точных замеров Вам нужен современный прибор, который выполнит все необходимые работы и не отнимет у Вас много времени. Компания «Иннотех» предлагает всем автолюбителям приобрести расходомер топлива, чтобы всегда быть в курсе затрат бензина или дизеля.

Топливный расходомер

Топливный расходомер - это прибор, разработанный специально для измерения топлива в автомобильных и других системах. Данный прибор имеет широкий спектр применения - он широко используется не только для транспортных средств, но и для водных судов, дизельных генераторов и прочих агрегатов и оборудования, где источником энергии служит топливо. Большинство подобных приборов отличается безупречной точностью, так как монтируется непосредственно в топливную магистраль. Это значит, что показания, которые будет выдавать расходомеры дизельного топлива, будут лишены даже минимальной погрешности.

Данный вид расходомеров - это удобный и практичный прибор для всех видов техники, использующей жидкое топливо. Так, начать стоит с того, что расходомер топлива для автомобиля легко монтировать - Вам не потребуется на это много времени, а к работе расходомер может приступить сразу же после окончания монтажа.

Преимущества топливного расходомера

Идея купить расходомер топлива покажется Вам ещё более выгодной, если Вы узнаете о достоинствах этого прибора. Несмотря на его компактность и доступную цену, количество его ценный характеристик действительно впечатляет!

  • Высокая точность - как мы сказали, данный прибор отличается отсутствием погрешности в показаниях, что делает его стопроцентно эффективным в области поставленных задач;
  • Надёжный и крепкий корпус, что важно для прибора, работающего внутри другой системы. Ему не страшны случайные повреждения, способен выдержать нагрузки высокой интенсивности;
  • Прибор обладает высокой устойчивостью к износу, он способен проработать долгие годы - конечно, при условии, что Вы правильно его использовали и соблюдали все правила эксплуатации.

Топливный расходомер может работать с разными видами жидкостей. Кроме дизельного топлива это также минеральное масло, печное масло, а также иные разновидности жидкого топлива с определённой плотностью и вязкостью. Для того, чтобы не ошибиться с выбором прибора по этому параметру, внимательно читайте описание его технических параметров на упаковке.

Компания «Иннотех» ждёт Вас, чтобы помочь с выбором топливного расходомера для Вашего транспортного средства или оборудования. На расходомеры топлива цены у нас Вы можете найти различные - подходящие под любой бюджет и потребности. С нами у Вас не будет проблем с измерением топлива!

Сразу же после покупки автомобиля (Mitsubishi Lancer, 2003) озадачился установкой индикатора расхода топлива. Японцы сильно сэкономили на этом авто и не установили некоторые полезные функции — пришлось исправлять ситуацию.
Первой мыслью было или покупка готового — существуют множество промышленных устройств, в том числе заточенных под Lancer 9, или самостоятельная сборка какой-нибуть любительской конструкции — и таких немало. Поизучав немного тему выяснил, что все предложенные девайсы обладают избыточностью функций — а мне-то всего навсего нужен расходомер. Поэтому и было решено делать самому. Единственное место на панели куда-бы приборчик вписывался — на место штатных часов, поэтому хочешь-не хочешь он должен и время показывать. Ну и так как при применении 2-х строчного ЖК в этом случае остается незаполненный угол — значит и туда надо что-нибуть более-менее полезное вставить, например индикацию температуры. Кстати говоря, поначалу задумывалась индикация и некоторых других параметров — зарядка аккумулятора, расход на 100 км, мгновенный расход в цифрах и т.д. уже и не припомню — и почти все задумки были реализованы в первой версии индикатора.

Двигатель заглушен, поэтому прогрессбар отсутствует.
Плюсом первой версии считаю то, что при установке на автомобиль не пришлось абсолютно ничего сверлить, точить и т.д. Просто отщелкнуть штатные часы и на их место защелкнуть прибор. Кнопки управления (3 шт.) располагались справа от дисплея.
Но покатавшись некоторое время понял, что из всех функций мне нужны всего 3 (остальными за все это время я ни разу не воспользовался). И тут как раз попался новый дисплей, более симпатичный — решил поставить его ну и заодно переписать все заново — выкинуть ненужные функции. Просто переставить дисплей не получилось-бы во-первых из-за разных габаритов и во-вторых — новый дисплей негативный, надо менять систему диммирования.
Из-за больших размеров дисплея кнопки сбоку не поместились, пришлось высверливать 2 отверстия в подиуме, но это никак не повлияло на внешний вид а пользоваться стало удобнее. Вот фото нового индикатора


И вид сзади


Устройство показывает (повторюсь)

  • 1. Мгновенный расход в виде прогрессбара
  • 2. Время
  • 3. Температуру за бортом или в салоне — по выбору (переключается кнопкой)

Схема
Ничего особенного — микроконтроллер PIC16F876 считывает данные с датчиков температуры (DS18B20), с микросхемы часов (DS1307) и с ЭБУ, обрабатывает все это и выводит на дисплей (LCD 2×16). Сигнал с ЭБУ (Fuel) — один из тех, что идут на инжектор, можно использовать любой. Для формирования (скорее даже согласования) сигнала применен узел на n-p-n транзисторе. Питание устройства — через стабилизатор на 7805. Отдельного питания для микросхемы часов при заглушенном двигателе не предусмотрено т.к. backup батарейки согласно даташиту должно хватить лет на 10.
Управляется устройство 2-мя кнопками, одна из которых — «Mode» — переключает индикацию внутренней и внешней температуры, вторая — «Set» — в зависимости от того какая из температур выбрана устанавливает или часы или минуты.
Дисплей — любой подходящий по размерам двухстрочник, главное чтоб он был с расширенным температурным диапазоном.
Датчики температуры установлены — один в салоне, другой выведен под передний бампер.
Диммер — котакты реле размыкаясь просто подключают добавочный резистор в цепь питания светодиодов подсветки тем самым приглушая их. Реле включается от габаритов. Диммер, как уже указывалось, для негативного дисплея, разница между негативным и позитивным в том, что в первом случае днем дисплей должен подсвечиваться ярче чем в темноте. Второй же наоборот — днем подсветка вообще не нужна, включается только с габаритами.

МК кстати можно использовать и другой, послабее. Надо только перекомпиллировать программу под новый. Просто этот остался от предыдующего варианта…

Схема и разводка также выложены в архиве в форматах Splan и SprintLayout соответственно:

Управляющая программа
Прошивка написана на одном из самых простых для изучения и понимания компиляторов — PicBasic Pro.
Состоит из главной программы — mmc.pbp и 3-х подключаемых модулей

  • LCD.inc — описание подключения ЖК дисплея к выводам МК
  • LCDchar.inc — доп. символы ЖК дисплея
  • LCDbar.inc — функция прогрессбара, в этом же модуле содержится переменная, определяющая «чувствительность» прогрессбара BAR_range VAR WORD: BAR_range = 6000

Исходники достаточно подробно прокомментированы, так, что думаю не составит труда разобраться и при необходимости подправить ко-что «под себя». Например, изменить или вообще отключить заставку-анимацию при включении — сейчас пишет «Mitsubishi LANCER IX».

Сама прошивка (hex) и исходники.

Доп. информация по компилятору
Программа написана на PicBasic Pro, v2.5b (обязательно пропатчить до 2.5b, версия 2.5 насколько я понял некорректно отрабатывает OneWare команды, я намучился с температурными датчиками пока не поставил соотв. патч)
Сайт PicBasic
Надо скачать также Microcode Studio, чтобы не заморачиваться с командной строкой
Сергей — SSh