Электронный датчик уровня топлива руками. Делаем емкостный датчик уровня топлива своими руками

Схема цифрового индикатора уровня топлива имеет высокую повторяемость и даже при небольшом опыте работы с микроконтроллерами, со сборкой и с настройками не возникнет никаких проблем. Для программирования avr микроконтроллера, мной был собран простейший программатор — так называемый программатор Громова , он великолепно подходит как для внутрисхемного программирования, так и для обычного, статья по данному программатору есть на сайте. Теперь езжу и не переживаю по поводу заправки «хватит или не хватит»:) Принципиальная схема индикатора показана ниже, кликните для увеличения:

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

Вот что делает данный прибор:

1. Отображает остаток топлива с точностью до литра, поддерживаемый объем бака выбирается от 30 до 99 литров
2. Отображает напряжение бортовой сети
3. Компенсирует качание поплавка в баке многократными (количество выбирается в меню) замерами и выводом среднеарифметического значения.
4. Меняет яркость подсветки в зависимости от освещенности, 2 режима, день/ночь, определяется по включению подсветки приборной панели.
5. Меняет режим отображения индикатора обычный/инверсный.

Список деталей индикатора на микроконтроллере:

R1 — 1 кОм
R2 — 75 кOм
R3 — 10 кОм подстроечный
R4 — 4,7 кОм
R5, R6, R8-R11 — 10 кОм
R23, R12-R15 — 3,3 кОм
R24, R16-R19 — 1,8 кОм
R20 — 2 кОм * подбирается в зависимости от подсветки
R21 — 240 Ом
R22 — 1 кОм * подбирается и ставится постоянный
C1, C2,C15 — 0,01 мк
C3, C4, C6-C11,C13-C15 — 0,1 мк
C5 — 47 мк
C12 — 4,7 мк
L1 — 100 мГн
DD1- LM7805
DD2 — ATMega8
DD3 — LM317T
VT1 — IRFZ44
LCD1 — Nokia 1110/1200/1110i/1112

Разъем РС10 — на схеме не обозначен, через него подключаются кнопки и выводы для программирования МК.

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

Основная плата формально двух сторонняя, но обратная сторона вся используется под «землю» с обратной стороны установлены только стабилизаторы и транзистор, остальные детали практически все SMD установлены со стороны дорожек. Отверстия с квадратными площадками «земляные» пропаиваются перемычками, остальные отверстия со стороны «земли» рассверлены.

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

Настройка цифрового индикатора уровня топлива

1. Программирование МК, производится внутрисхемно, любым программатором, фьюзы выставляются следующим образом.

2. Настройка показаний напряжения. Для настройки подключаем подключаем индикатор к напряжению 12-14 В, подключаем к этому же источнику вольтметр и подстроечным резистором R3 выставляем то же значение что показывает вольтметр.

3. Программная настройка. Выставляем емкость бака и калибруем его. Калибруем бак следующим образом, начинаем с пустого бака, ставим в меню калибровка значение литров 0 и нажимаем ОК, затем заливаем в бак 1 литр, ставим значение литров на 1 и снова нажимаем ОК и так с каждым литром до полного бака. Процесс конечно небыстрый, но сделать его нужно всего один раз. Если при калибровке еще и записать показания датчика, то при необходимости повторения устройства или при сбое, можно будет занести значения сразу в прошивку и не маяться с калибровкой. Остальные настройки устанавливаем на свой вкус. Конструкцию собрал и испытал: Федоров Иван.

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

Весь процесс создания и что из этого вышло читаем в статье далее.

Начальные условия:

  • Грузовой автомобиль (автобус) с бортовым напряжением 24в
  • Топливный бак для дизельного топлива на 220л
  • Датчик уровня топлива ДУМП39
  • Указатель уровня топлива ЭИ8057М-3

Нужно:

Сделать цифровой указатель уровня топлива, используя штатный датчик уровня.

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

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

Итак, роемся в инете и ищем инфу. Вот что я откопал:

Диапазон перемещения поплавка - 412мм

Номинальное сопротивление - 800 Ом (по другому источнику номинальное сопротивление - 761,0 – 193,5 Ом )

Рабочий диапазон от -40°С до +60°С

Наработка на отказ - 400тыс. км до 95% ушатывания ресурса

Масса 160 грамм, аналог - МАЗ.

В общем-то не густо.

Берём тестер и замеряем, в итоге получачается такая картина:
Схема включения:

Измеренные параметры датчика:

Полное сопротивление - 767 Ом

Дополнительное сопротивление - 187 Ом (оно обеспечивает минимальное сопротивление датчика).

Левая (по фото) часть сопротивления - 203 Ом (13 отводов на ползунок), правая часть Ом 376 (17 отводов на ползунок).

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

В общем-то такое подробное описание привожу только для любопытствующих, нам же нужно значение напряжения, которое мы имеем на выходном контакте при различном уровне топлива. При крайнем левом положении контакта на выходе у нас получилось 1,57в , при крайнем правом положении 3,28в, половина бака - 2,44в. В начале сектора включения лампы остатка резерва 2,95в.

Ещё для любопытных. Общая схема подключения датчика уровня топлива выглядит примерно так:
Катушки L1A, L1B, L2 - это отклоняющая система указателя уровня топлива (по сути миллиамперметр) Резистор - термоконпенсационный.

На самом деле это схема классического электромагнитного автомобильного прибора, а конкретно ЭИ8057М-3 - это уже нечто другое: внутри расположена электронная схема, стрелка приводится в движение шаговым электродвигателем, и управляется всё это при помощи микроконтроллёра PIC .

В принципе, этого достаточно для тарировки цифрового указателя, если бы не парочка неприятностей:

1. Указанный объём топливного бака в 220л не соответствует действительности, на самом деле в баке помещается больше топлива.

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

3. Измерив рулеткой геометрию бака, убеждаемся, что это прямоугольный параллелепипед с незначительно закруглёнными длинными гранями, размеры 40х112х60 см . Соответственно перемножив стороны, получаем внутренний объём в 268л, что, согласитесь, сильно отличается от заявленных 220 л, и очень сомнительно, что внутренние перегородки, сетка, топливозаборник, и тп. занимают аж почти 50 л .

4. Как уже написано выше, сопротивление датчика на протяжении длины его сопротивления нелинейно.

Что делаем:

Заливаем полный бак и контролируем напряжение на выходе ДУТ. Получается, что после достижения отметки 1,57в в бак ещё входит добрых двадцать литров топлива.

Снимаем поплавок и ставим датчик на место. Естественно тяга, лишённая поплавка, уходит на самое дно бака, смотрим напряжение - оно составляет 3,02в ! Это важно, т.к. фактически при таком положении в баке уже нет топлива, а подвижный контакт ещё не дошёл до крайнего положения в 3,28в , при этом штатный прибор ЭИ8057М-3 показывает что в баке осталось ещё 1/8 объема. (Поставив поплавок в центральное положение, на штатном ЭИ8057М-3 наблюдаем вместо положенных 1/2 бака аж 5/8 уровня, при полном баке штатный прибор зашкаливает).

Смотрим на график нашего датчика уровня топлива,

Возмём три точки - сопротивления датчика, первая точка это его наименьшее сопротивление (подвижный контакт слева) образованное дополнительным сопротивлением в 187 Ом (на фото вертикальный чёрный прямоугольник), вторая точка при среднем положении контакта когда последовательно включены 187 Ом и 203 Ом , т.е. 390 Ом , полное сопротивление соответственно будет 390 + 376 = 766 Ом.

(по горизонтали - сопротивление в Омах, по вертикали условные единицы длины)

Ничего приятного в этой картине нет, датчик вродебы и линеен но имеет существенный излом.

С такой картиной мы либо получим точность посередине, либо на концах ломаной, либо чтото среднее произведя аппроксимилацию:

Получив формулу с поправкой и коэффициентом можно в принципе уже сделать нечто похожее на цифровой указатель уровня топлива, коэффициент R 2 линии тренда в 0,97 конечно не плох, можно в принципе использовать всё что больше 0,95.

а можно получить для каждой прямой свой коэффициент пересчёта, что будет более точно:
Сразу замеряем значение АЦП в нужных нам точках чтобы 5% допуск на резисторы делителя на входе АЦП нам ничего не подпортили и получаем в диапазоне от пустого бака (ADC822) до 1\2 бака (ADC700) :

(по горизонтали полученные отсчёты АЦП, по вертикали объём топлива в литрах)

В диапазоне от 1\2 бака (ADC700 ) до полного (ADC456 ):
Из вышеприведённого имеем следующее:

1. С увеличением кол-ва топлива сопротивление датчика уменьшается, и уменьшается падение напряжения на нём.

2. Дельта напряжения датчика составляет 1,45в , что при 10 битном АЦП составит 56% что более чем достаточно для масштабирования результата АЦП в шкалу 0....220л и позволит обойтись просто оцифровыванием результата без использвания ОУ для подгонки под нужный диапазон напряжения.

Схема проста до безобразия:

Микроконтроллёр Mega8, LED индикатор на 3 разряда с общим катодом, входной делитель из двух резисторов R1, R2 . Стабилитрон (по буржуйски зенер "zener" диод:)) для защиты входа МК на всякий случай. Цепи питания я рисовать не стал, там классические 0,1мкф керамика и какой нибудь электролит на 100...1000мкФ как и гасящие резисторы между МК и индикатором, подойдут любые в диапазоне 80...100Ом в зависимости от напряжения питания МК и яркости индикатора. Напряжение на борту автомобиля при заведённом двигателе составляло 27,5в .

Мой вариант разводки платы:
Справа на плате я расположил преобразователь питания обеспечивающий при бортовом напряжении 10...30в преобразователь собран на МС3406 3 по типовое схеме из даташита. дроссель murata 1812 . Указанный на схеме стабилитрон на 3,3в я профукал при разводке и допаивал сверху.

Почему я применил Mega8 когда есть куда более удобная Tiny26 и тп. ? потому что у Mega 8 имеется 1кБ оперативки, зачем столько? микроконтроллёр не просто замеряет напряжение на входе и выводит на индикатор пересчитанное значение, он постоянно записывает замерянные значения в одну из 256 ячеек памяти, заполняя их по замкнутому кругу и после записи каждой ячейки производит расчёт усреднённого значения по всем имеющимся в текущий момент 256 ячейкам.

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

Плата односторонняя, без перемычек:

Сначала распаял ШИМку и проверил работы, работает. покрыл лаком. можно продолжить сборку:

P.S. Проект создан при огромной поддержке Романа Викторовича, за что ему огромное спасибо, также спасибо человеку Jonson из Украины за математическую помощь и некоторые идеи.


Применяется с родным датчиком уровня(в баке),и вместо штатного стрелочного(на торпеде).
Данное устройство(в основе 16f676) выводит на двухразрядный семисегментник (с общим анадом)показания датчика топлива в баке(40л).Питание от бортовой сети авто – 12в.К входу «in» подключаем датчик в баке.


Калибровка устройства:Нажимаем кнопку на устройстве-на индикаторе засветяться мигающие нули,это означает что у нас пустой бак.Если действительно пустой нажимаем кнопку еще раз.если нет опустошаем полностью и нажимаем кнопку.
На индикаторе засветится 02(2 литра)-заливаем 2 литра и нажимаем кнопку.
После засветится 04-заливаем еще 2 литра (в баке уже 4 литра)и нажимаем кнопку.
Таким образом при калибровке все значения на индикаторах в мигаищем режиме,а нажимая кнопку мы соглашаемся что в баке действительно находится n-литров при мигающем его значении.После калибровки на дисплее отобразится 40-что означает 40литров бензина в баке(ведь так оно и есть)и мигания прекратятся.Устройство перешло в режим измерения.Кнопку больше не трогаем,чтоб не сбить настроек.При падении уровня топлива ниже 6 литров индикаторы начинают мигать,это говорит о том что пора на заправку.В комплекте идут прошивки с разным шагом калибровки,все рабочие и достаточно точные.
Точно устройство показывает в состоянии покоя,когда бензин в баке не плещется и поплавок не качает.
Подводные камни были с подбором делителя 1,5кОм,у меня схема заработала без проблем при сопртивлении 500 Ом!





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

Виды датчиков

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

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

  • Магнитные;
  • Радиоуправляемые;
  • Ульразвуковые.

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

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

Как сделать емкостный датчик

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

1.Оба электрода изолируются от электрического контакта.

  1. Когда датчик погружается в топливо, пространство между электродами свободно заполняется горючим, а когда уровень понижается, электроды остаются в воздухе.
  2. В бак измеритель устанавливается не ровно, а слегка под наклоном.
  3. Питание, подаваемое на прибор, не должно быть больше 5 Вт, иначе бензин загорится от искры.
  4. Сама схема располагается близко к датчику, чем ближе, тем лучше.
  5. Протяженность проводов от схемы до датчика не должна быть более 2 см.
  6. Емкостный датчик состоит из двух модулей, связанных между собой тремя проводами: модуль самого датчика и модуль отображения. Два провода подают питание на модуль датчика, а третий передает сигнал от датчика на модуль отображения.

Если в баке много горючего, то емкость датчика выше, а времени на зарядку нужно больше. Реализовать этот принцип измерения можно с помощью встроенного микроконтроллера. Часть напряжения подается на вход резистивным двигателем. Когда измеритель получает напряжение, включается микроконтроллер. При достижении напряжением пиковой отметки включается таймер. С таймера данные поступают на модуль отражения.



error: Контент защищен !!