Индикатор расхода топлива для инжекторного двигателя – версия 2

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

В конструкцию прибора были внесены некоторые изменения, касающиеся стабилизации питания и отображения результатов измерений.image

Поговорим обо всем по порядку. Итак – начну с питания. Несмотря на то, что схема понижения и стабилизации напряжения питания микроконтроллера, примененная в первой версии устройства работала без нареканий, ее решено было переделать. По большей части причиной послужило то, что в моем распоряжении появилась горсть low-drop регуляторов напряжения на 5 вольт – TLE4275.

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

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

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

Второе изменение в конструкции моего прибора коснулось отображения информации. Во время использования первой версии устройства, я заметил, что при особенно интенсивном разгоне, потребление топлива становится настолько большим, что если принять его за 100%, потребление во время не особо напористого движения не превышает 20-40%. Таким образом, на приборе редко загоралось больше 4-5 делений из 10.

Для борьбы с этим явлением в устройство было добавлено две кнопки, позволяющие задать порог отображения расхода. Поясню на примере. Как вы помните, устройство самообучающееся – каждый раз, обнаружив новое максимальное потребление топлива за единицу времени, система запоминает его, и впоследствии ведет отображение относительно этого нового максимального значения. Примем его за 100%. В новой версии устройства, я могу принудительно заставить шкалу заполниться полностью при, к примеру, 70% от максимума. Таким образом, при потреблении 35% от максимума, будет гореть половина шкалы, при 70% и выше – вся шкала. Меня такое положение дел вполне устроило – устройство не предназначено для точного учета расхода (хотя и этот функционал может быть совсем просто реализован – нужно лишь подключиться к датчику скорости и дописать несколько строк кода), а для эффектного визуального отображения информации.

Кроме того, я внес в схему возможность вывода цифровой процентной информации на трехзначный семи-сегментный дисплей LB203YB – я не использовал его в своем авто, а лишь припаял дисплей на саму плату, но возможно, кому-то захочется посадить его на провода и вывести на панель приборов.

Для экономии ног микроконтроллера, дисплей подключен через доступные сдвиговые регистры 74HC164 – соответственно написаны функции для динамичного вывода информации. Этот геморрой занял больше всего времени при написании софта.

В схеме также присутствуют кнопки перезагрузки и сброса настроек устройства на первоначальные значения.

Таким образом, всего есть 4 кнопки – они разведены на плате, а также предусмотрена возможность подключения внешних кнопок, через разъемы на плате.

На плате предусмотрен разъем для внутрисхемного программирования чипа – ISP. Да кстати, контроллер поменялся на Atmel Atmega8 в стандартном DIP корпусе.

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

Для входа в режим настройки достаточно несколько секунд подержать нажатыми кнопки SW3 и SW4. После того как сигнальный светодиод отмигает свои пять раз, на цифровом дисплее отобразится процент порога отображения расхода, как я и объяснял раньше. Тот же порог отобразится и на шкале, но с разрешением в 10% – большего от простой шкалы добиться невозможно. Порог можно двигать, нажимая те же кнопки SW3 и SW4. По окончанию процесса настройки нажмите кнопки SW3 и SW4 на несколько секунд снова.

Для сброса максимального значения расхода подержите нажатой кнопку SW2 – по окончании процесса сброса, сигнальный светодиод мигнет десять раз, после чего система начнет обучаться с нуля заново.

Еще одно изменение в схеме коснулось подключения к форсунке – теперь оно осуществляется через оптрон (я использовал 4N37). Это гарантирует отсутствие фатальных помех по сигнальной линии.

В остальном схема осталась без изменений – более конкретные объяснения есть в упомянутых мной статьях о первой версии устройства.

Стоит упомянуть, что на контроллере осталось четыре неиспользованных ноги – возможно, кому-то захочется расширить функционал устройства с их помощью.

Итак, вот схема устройства:

fuel_meter_4

После базовой отладки схемы в Proteus’е, была разведена вот такая плата:

fuel_meter_2fuel_meter_3

Далее изготовление:

fuel_meter_5

Пайка (красные проводки на схеме только для отладочных целей – впоследствии они были удалены):

fuel_meter_7

Отладка (слева виднеется программатор, справа макетка для подачи питания и тест-сигнала):

fuel_meter_6

Ну и готовый девайс:

fuel_meter_8

Плата получилась размерами 94х54мм. На плате широко использованы SMD компоненты – нет у меня сил сверлить дырки.

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

О установке – тут, разумеется каждый решает сам. Я разместил плату в пластиковой коробочке глубоко под торпедой, врезал все 11 светиков прямо в панель приборов, а четыре кнопки управления установил в отделении для перчаток под рулем. Кнопки использовал неприметные тактильные, но требующие значительного (для их скромного размера) усилия для нажатия, и установил их так, что они не мешают использовать отделение для перчаток по прямому назначению.

Вот коротенькое видео работы девайса во время отладки дисплея – он просто считает до ста:

В Proteus’е отладить дисплей не вышло – индикация динамическая, поэтому для отладки подойдет только реальный дисплей и реальный человеческий глаз.

Видео работы финальной версии в авто:

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

Ну вот, пожалуй, и все. Буду рад, как всегда, ответить на вопросы.



У этой записи 26 комментариев

  1. kipovetc

    здравствуйте,уважаемый автор.могу я задать Вам пару вопросов по индикатору топлива?перелопатил почти весь интернет и остановился на Вашем сайте,окончательно запутавшись.все самодельщики берут сигнал с форсунки.для моновпрыска это понятно, а для нормального инжектора с четырьмя форсунками не очень.ведь все они жрут топливо,и по идее нужно учитывать и это (умножать на 4),но никто про это не пишет,объясните,пожалуйста.

  2. -=MindHunteR=-

    @ kipovetc:
    привет. к сожалению сейчас мне надо бежать по делам. развернуто отвечу в теч. дня.
    спасибо за ваш комментарий.

  3. -=MindHunteR=-

    Привет еще раз!
    Ответ прост. ВО первых стоит почитать мою первую статью о инжекторе – https://techno-mind.ru/avto/indikator-rasxoda-topliva-dlya-inzhektornogo-dvigatelya-chast-0b11.html
    из нее можно понять немного теории, а так-же то, что я не собирался мерить точный расход топлива в каких бы то ни было единицах. Я хотел лишь графическое отображение расхода, в виде шкалы, без единиц измерения, где 0 это ноль, а максимум – это максимально возможное потребление топлива (т.е. получаемое при полном газе при большой нагрузке на двигатель). Абсолютные величины меня не интересовали.
    Тем не менее посчитать это абсолютные величины в литрах/час или даже литрах/100км можно, хотя и геморройно.
    Для подсчета расхода в литрах/час нужно знать давление топлива в рампе (которое кстати меняется в зависимости от нагрузки на мотор – там есть спец. регулятор), сечение разбрызгивающего отверстия форсунки (которое со временем подзасирается, и знать его точно сечение нереально) и время открытия форсунки. Затем, вооружившись несколькими формулами можно подсчитать сколько бензина пропустит через себя форсунка за час, умножить на 4 (для 4рех цилиндрового мотора) и получится искомый расход.
    Есди хочется в литрах/100км, то дополнительно нужно подключаться к датчику скорости и интегрированием считать пробег.

    На мой взгляд это геморрой, и за исключением случаев, когда просто хочется заморочиться, проще купить бортовой компутер, например https://techno-mind.ru/avto/bortovoj-kompyuter-multitronics-vc731-mini-obzor-modernizaciya-ustanovka.html, который может точно считывать время открытия форсунки прямо с мозга двигателя, и считать расход, основываясь на этом значении, а также данным полученным в результате первоначальной калибровки.

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

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

    Рад помочь.

  4. kipovetc

    спасибо.А так хотелось собрать простой измеритель бензина и бака для рено логан (там ни о чем не говорящий столбик прямоугольников).Получается,ни одна из найденных схем не подходит (я не умею писать программы для мк.)Ни кто из умельцев не хочет связываться, как вы говорите,с гемороем.А бортовой комп.берет сигнал с ЭБУ или есть варианты ?

  5. -=MindHunteR=-

    @ kipovetc:
    Я не совсем понял, какая связь между измерением расхода топлива и уровнем топлива в баке?
    В гугле немало проектов, где люди делали измерители расхода в литрах в час, по описанному мной выше способу, т.е. с помощью подсчета производительности форсунок.
    Бортовой комп, тот что я ставил, да и большинство Мультитрониксов, штатно подключается к ЭБУ, но для старых машин имеется возможноть напрямую считывать инфу с форсунки, датчика топлива в баке и датчика скорости.

  6. kipovetc

    Извените за беспокойство,просто живу я в дали от радиомагазинов,по этому желание есть,а возможности нет.Имею в наличие несколько “камней”(мега8,PIC16F628,F84,тини2313),несколько семисегментников и небходимость в приборе с возможностью “напрямую считывать инфу с форсунки, датчика топлива в баке и датчика скорости”.Извените,что вас цитирую,но это именно то что я ищу пока безуспешно.Может есть у вас чтото похожее,или ссылочку,буду признателен очень.

  7. dikes3

    А на дизель можно что нибудь такое смастерить? =)

  8. -=MindHunteR=-

    @ dikes3:
    На современные дизеля скорее всего да. Нынче форсунки электроникой управляются. Можно попробовать к ней подцепиться и поизучать,что за сигналы идут. Пл идее все должжно быть похоже.

  9. dikes3

    @ -=MindHunteR=-:
    У меня такая проблема.На борт.комп. нужен прямоугольный сигнал от форсунки,а так как у меня форсунки механические(форд мондео 3 tddi)то такой возможности нет.По этому у меня возникла мысль смодулировать такой сигнал исходя из импульса датчика положения коленвала.Одним словом импульс от дпкв переделать в прямоугольный.Возможно?

  10. -=MindHunteR=-

    @ dikes3:
    Возможно все. Но зная частоту коленвала вы максимум сможете построить тахометр.

  11. dikes3

    @ -=MindHunteR=-:
    У меня есть фото что я хочу,только что то с тел. не могу отправить.Приеду домой с компа отправлю.В общем мне надо на два оборота коленвала,что бы был один прямоугольный импульс.Возметесь?Разумеется не безвозмездно! =)

  12. -=MindHunteR=-

    dikes3 написал:

    @ -=MindHunteR=- :У меня есть фото что я хочу,только что то с тел. не могу отправить.Приеду домой с компа отправлю.В общем мне надо на два оборота коленвала,что бы был один прямоугольный импульс.Возметесь?Разумеется не безвозмездно!

    Датчик коленвала это опто-сенсор. Он и так выдает красивые прямоугольные импульсы. Стоит только учесть кроме ипульсов положения коленвала, там есть еще один узенький импульс точти отсчета – без него абсолютно тончно нельзя было бы знать положение коленвала.
    Но для работы с этим датчиком не нужно сложной электроники – разпознавание и обработку импульсов проще всего сделать программно…

  13. dikes3

    @ -=MindHunteR=-:
    Так не смог я фотки сюда загрузить,давайте свой емэйл адрес,отправлю вам на почту…

  14. dikes3

    @ -=MindHunteR=-:
    Ну я отправил,только не понял что значит запостить линк

  15. -=MindHunteR=-

    dikes3 написал:

    @ -=MindHunteR=- :Ну я отправил,только не понял что значит запостить линк

    Ну мне нужен адрес… Чтобы зайти и посмотреть картинки…

  16. dikes3

    @ -=MindHunteR=-:
    Ну вот так наверно,только я сам по этому адресу захожу и ни чего не вижу,не проще было бы на почту

  17. -=MindHunteR=-

    Там нет картинок…
    Вы закрываете окно до того, как картинки успевают загрузиться…

  18. dikes3

    Да там картинки я уже уменьшил до 200кб полчаса что ли грузятся?@ -=MindHunteR=-:
    @ -=MindHunteR=-:

  19. -=MindHunteR=-

    Он пищет SAVING, пока они грузятся.

  20. Serg13

    @ -=MindHunteR=-:
    Очень интересная разработка!
    А можно, если вы не против, совета попросить?
    Есть датчик расхода Импульс- 0.46 ml/p
    http://ru.aliexpress.com/item/13mm-Gear-flow-sensor-Liquid-Fuel-Oil-Flow-Sensor-Counter-diesel-gasoline-free-shipping/32444769694.html?spm=2114.10010208.100009.1.PJBoDt
    Возможна ли схема(контроллер), которая позволит использовать этот датчик со стрелочным указателем в качестве указателя мгновенного расхода топлива в л/ч.?
    Указатель – не знаю какой, что-нибудь наподобие –
    http://ru.aliexpress.com/item/Universal-2Inch-52mm-AIR-FUEL-Ratio-Car-LED-Gauge-ELECTTRO-LUMINESCENT-Air-Fuel-meter-AIR-FUEL/2030927092.html?spm=2114.10010208.100010.15.Br7UVL

  21. -=MindHunteR=-

    @ Serg13:
    Я полагаю у вас инжекторный двигатель. 99.99% инжекторных двигателей испльзуют бензонасос в баке, который качает бензин в топливную рампу, а его излишки стравливаются обратно в бак через регулятор давления в рампе. И излишков этих процентов 99% =) Таким образом, почти все что накачал насос, утекает назад в бак, так что одним таким измерителем потока вы ничего не намеряете. Можно поставить 2 – один на линию туда, другой на линию обратно, и дифференцировать. Но резолюции даже самого дорогого дачтика с таким прицнипом работы не хватит, чтобы заметить разницу. Короче, единственный способ решить проблему – получить, каким то способом, время открытия форсунки. Я это делал напрямую, а можно и с компа бортового получить эту информацию.

  22. Serg13

    @ -=MindHunteR=-:
    Двигатель карбюраторный, поэтому и возникла такая идея. Что же до реализации, то тут у меня ни знаний ни опыта. Вот и прошу совета, в пользу бедных =) , как говорится.

  23. -=MindHunteR=-

    @ Serg13:
    И тем не менее, датчик этот несчастные граммы в минуту не уловит…

Добавить комментарий