Цифровой индикатор уровня топлива

Цифровой индикатор уровня топлива

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

Принципиальная схема представлена на рисунке. Используется микрокотроллер PIC16F676. Индикаторы с общим анодом.

Принцип действия заключается в следующем: в результтате изменения топлива в баке меняется сопротивление датчика (поплавка), штатный стрелочный индикатор также имеет свое споротивление и в последовательном подключении между собой образует резестивный делитель напряжения, которое через еще один делитель и стабилитрон на 5в для надежности подается на вход микрокотроллера. Он анализирует поступившую информацию и выдает ее на индикаторы. Для точной работы перед использование необходимо провести калиброку бакометра. Данная прошивка позволяет калибровать от 0 до 40 литров с шагом 2 литра. После наполнения бака каждыми 2 литрами нужно сохранять значения в памяти котроллера нажатием кнопки. Другими словами для правильной работы цифрового измерителя необходимо слить весь бензин, нажать два раза кнопку, бакометр перейдет в режим калиброки и выдаст 00, сохранить это значение (ведь бак у нас пустой) нажатием (таким образом подтверждаем отображенное значение с действительным значением в баке), после загорится 02, необходимо долить 2 литра и так же сохранить, и так далее до 40 литров. Дело не трудное, я калибровал водой, заодно и бак вымыл. После подтверждения последнего значения 40 л, бакометр перейдет в режим измерения, и будет в нем до тех пор, пока снова не нажмется кнопка два раза. Еще отмечу, что при использовании внешнего опорного напряжения, скачки в бортсети (от 9 до 14,5в) совершенно не страшны бакометру, показания он не поменяет.

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

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

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

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

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

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

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

Диапазон перемещения поплавка — 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) до 12 бака (ADC700):

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

В диапазоне от 12 бака (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в преобразователь собран на МС34063 по типовое схеме из даташита. дроссель murata 1812. Указанный на схеме стабилитрон на 3,3в я профукал при разводке и допаивал сверху.

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

Индикатор распологается вне платы на приборной панели автомобиля и соединяется с ним 11 жильным шлейфом. Плата помещается в крохотный корпус http://www.simple-devices.ru/utils/15-utilites/149-2012-09-01-19-35-34 (второй, тот что с 4мя проводами-клеммами) лишний пластик из корпуса удалили бокорезы.

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

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

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

Индикатор топлива и напряжения АКБ для автомобиля V.4 на микроконтроллере (МК) ATMega8 дисплее Nokia 1202 с управлением ИК пультом формата RC5.

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

V.1 в штатном корпусе индикатора на дисплее Nokia 3310

В прилагаемом архиве все сохранившиеся по этой версии материалы, в том числе и исходник на С в CodeVisionAVR.

V.2 в штатном корпусе индикатора на дисплее Nokia 1110

V.3 универсальная без корпуса так же на дисплее Nokia 1110 и совместимых 1110/1200/1110i/1112

Версии 2 и 3 изначально были опубликованы мной на портале datagоr.ru, но без исходников и там ограниченный доступ к материалам статей.

Здесь я выкладываю все материалы в том числе и исходники на С в CodeVisionAVR.

V.4 универсальная без корпуса на дисплее Nokia 1202, управление ИК пультом формата RC5

Схемы

Возможные замены:
U4 LM2576 — LM2575
D6 SS16 — любой диод Шоттки с близкими параметрами
U2 TSOP 32136 — можно ставить любой ИК-приемник на 36 кГц с питанием 5В
D1-D3, D7 SMBJ6.0CA — можно заменить на обычные стабилитроны 5.1В

Платы

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

Совместимые пульты формата RC5

Наверняка это не все возможные виды пультов формата RC5, но это те, что мне удалось найти и проверить.

Подключение

Подключение производится по ниже приведенной схеме.

Сигнал габариты берется в любой точке с подсветки приборной панели, этот сигнал служит для переключения яркости подсветки дисплея днем и ночью.
Питание , допустимые пределы напряжения питания 8-30 В.
Датчик подключается непосредственно на вход, штатный индикатор должен быть отключен.

Между собой платы соединяются соответственно приведенным сигналам, на плате процессора на этот же разъем выведены сигналы для внутрисхемного программирования.

Если кто еще не заметил, обратите внимание на ИК-приемник, на плате он отображен рабочей частью в сторону межплатного разъема, а на реальной плате стоит рабочей частью в сторону клемника, это не ошибка, это разновидности ИК-приемников, например TSOP2136

Читайте также:  Унитаз раковина что это

Ставится так как указано на монтажной плате, а TSOP31236

Ставится так как у меня на плате на фото, а вообще можно ставить любой ИК-приемник на 36 кГц с питанием 5в.

Управление

Управление производится цифровыми кнопками 1, 2, 3, 4, 5, 6, 8

1 — вход в установки
2, 8 — перемещение по пунктам установок вверх/вниз
4, 5 — изменение выбранного параметра -/+
3 — выход из режима установок

Емкость — выбирается емкость бака 10-99 литров (для правильной работы весь выбранный диапазон должен быть откалиброван)
Инерция — выбирается значение 2-10 (принцип работы: раз в секунду в буфер со сдвигом записываются данные датчика, значение инерции указывает сколько значений берется из буфера для вычисления среднего отображаемого значения)
Свет день / Свет ночь — соответственно установка уровня яркости подсветки дисплея днем/ночью 0-254
Контраст — переключается между двумя крайними значениями минимум/максимум контрастности
Инверсия — переключение режима дисплея обычный/инверсный

2 — вход в режим калибровки бака
2, 8 — изменение литров +/-
5 — сохранение текущего значения датчика в выбранную ячейку литров
3 — выход из режима калибровки бака

Литры — выбирается значение литра в которое будет сохранено текущее значение датчика
В памяти — отображается сохраненное значение датчика в выбранном литре
Датчик — отображает текущее показания датчика

Настройка

Подстройка входного делителя под сопротивление датчика в баке:

Резистор R5 и датчик в баке образуют входной делитель напряжения

Где:
Vs — напряжение питания равное 5в.
Rd — максимальное сопротивление датчика в баке
Vo — напряжение подаваемое на АЦП МК, оно расчитывается по формуле Vo = Vs*Rd/(R5 + Rd)
R5 равное 1к подойдет под большинство датчиков, но если Вы хотите более полно использовать диапазон АЦП необходимо подобрать резистор R5 таким образом, чтобы Vo было близко к 2.5в.

Например: если максимальное сопротивление датчика Rd=400 Ом, при R5=1 кОм Vo будет равно 5*400/(1000+400)=1,4. в., правильнее будет с таким датчиком поставить R5=430 Ом, тогда Vo будет 2,4. в.

Настройка опорного напряжения:
Подбором резисторов R14, R15 добиваемся на выводе 3 TL431 напряжения 2.56в

Настройка напряжения индикации:
1. Подключаем индикатор к бортовой сети
2. Подключаем параллельно вольтметр
3. Резистором R2 выставляем напряжение на индикаторе как на вольтметре

Калибровка бака:
1. Входим в установки "1" выставляем необходимую емкость бака, выходим из установок "3"
2. Входим в режим калибровки бака "2"
3. При пустом баке выставляем литры "2", "8" в 0000, нажимаем "5" — сохранить
4. Заливаем в бак 1 литр бензина, выставляем литры на 0001, нажимаем "5" — сохранить
5. Заливаем в бак 1 литр бензина, выставляем литры на 0002, нажимаем "5" — сохранить
и т.д. до заполнения бака, затем нажимаем "3" — выход из режима калибровки, все, индикатором можно пользоваться.

В архиве схемы, монтажные платы, платы в формате DipTrace, прошивка.

Небольшое видео работы устройства:

Сам я уже третий год пользуюсь второй версией и она ни разу меня не подвела, но тем не менее

Помните это все таки не профессиональное устройство, поэтому стандартно предупреждаю: Если Вы будете собирать это устройство, Вы собираете его на свой страх и риск, автор не несет никакой ответственности за последствия использования этого устройства!

Внимание!

Правильный номинал резистора R11 в схеме версии 4 указан в перечне элементов и равен 1.8 кОм.

Версии 1 и 2 выложены как есть, т.е. вся информация по ним, схемы, прошивки, исходники это то, что осталось от этих версий на момент публикации статьи, и я не гарантирую, что это последние, правильные и полностью рабочие версии прошивок и исходников. Эти версии выложены чисто для информации и для любителей самим "поковыряться" в исходниках. Тем, кто не разбирается в программировании МК я настоятельно не рекомендую делать эти версии, поскольку технической поддержки по ним не будет.

Ссылка на основную публикацию
Adblock detector