Цифровой индикатор количества топлива
Решил сделать цифровой индикатор количества топлива на грузовой автомобиль (автобус), используя штатный (довольно посредственный) датчик уровня топлива.
Весь процесс создания и что из этого вышло читаем в статье далее.
- Грузовой автомобиль (автобус) с бортовым напряжением 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в.
Мой вариант разводки платы: Справа на плате я расположил преобразователь питания обеспечивающий 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 из Украины за математическую помощь и некоторые идеи.
Цифровой указатель остатка уровня топлива на LCD дисплее
Схема цифрового индикатора уровня топлива обладает высокой степенью повторяемости, даже если опыт работы с микроконтроллерами незначителен, поэтому разобраться в тонкостях процесса сборки и настройки не вызывает проблем. Программатор Громова – это простейший программатор, который необходим для программирования avr микроконтроллера. Программатор Горомова хорошо подходит как для внутрисхемного, так и для стандартного схемного программирования. Ниже приведена схема контроля индикатора топлива.
Представленная ниже фотография является монтажной.
Функциональные возможности прибора:
На схеме не обозначен разъём РС10, через который осуществляется подключения кнопок и вывод для установления программного обеспечения на микроконтроллер.
Необходимо сделать две платы: одну для дисплея; вторая же будет основной. Обе платы должны иметь форму круга, а их диаметр корпуса должен составлять 50 мм. Достаточно трудно найти индикатор ответной части под разъём, поэтому рационально выполнить разводку под шлейф. Нужно также отпаять разъём от ответной части и на его место припаять только с обратной стороны припаять шлейф, сам же дисплей можно прикрепить при помощи двухстороннего скотча.
Главная (основная) плата является двухсторонней, однако, обратная сторона является базовой, а на второй стороне расположены стабилизаторы и один транзистор, со стороны дорожек устанавливается основная часть деталей. Базовые квадратные отверстия припаиваются перемычками, оставшаяся часть отверстий рассверливаются.
На месте разобранного разъёма, происходит соединение двух плат при помощи контактов. Под основную плату впаивается втулка с резьбой, к корпусу платы фиксируются при помощи одного винта. Кнопки отсутствуют, поскольку с практической точки зрения в них нет необходимости.
Они нужны лишь при выполнении начальной калибровки, поэтому и выводятся на разъём РС10, который расположен сзади корпуса. Через данный искусственный разъём выводятся также сигналы для программирования микроконтроллера.
Инструкция для настройки цифрового индикатора уровня топлива.
1 шаг. Внутрисхемно осуществляется программирования микроконтроллера, для этого можно использовать любой программатор, который имеется в вашем распоряжении.
2 шаг. Выставление фьюза происходит следующим образом. Для начала необходимо выполнить настройку показаний напряжения. Для этого необходимо подключить индикатор к напряжению 12-14В с целью его настройки, в этот же источник электрического питания подсоединяем вольтметр и подстроченный резистор R3, в котором выставляем значения, которые отображает вольтметр.
3 шаг. Далее необходимо выполнить программную настройку аппарата. Для начала необходимо выставить ёмкость бака и выполнить его калибрование. Калибрования топливного бака осуществляется следующим образом, задаём значение пустого бака – 0 литров и нажимаем клавишу ОК. Затем, наливаем 1 литр топлива и задаём значение 1 литр топлива и нажимаем вновь клавишу ОК.
Данную процедуру необходимо повторить многократно, вплоть до заполнения полного бака. Естественно данный процесс довольно таки продолжительный во времени, но его нужно один раз в обязательном порядке выполнить.
При калибровке также можно записать показания датчика, что позволить сэкономить существенный временной промежуток при выполнении каких-либо прошивок. Остальные виды настроек можно и установить в соответствии с индивидуальными предпочтениями.
Индикатор топлива позволит рационализировать повседневный расход бензина и тем самым сэкономить финансовые средства.
Датчик уровня топлива (ДУТ). Сборка, схемы, производство
Приветствую уважаемых читателей! Несколько лет подряд я писал на тему нашего сервиса мониторинга автотранспорта, об оборудовании, которое производим, приоткрывая внутренние аспекты производства и работы в целом. В этой статье я хочу рассказать о полном цикле производства такого очень важного элемента работы систем GPS мониторинга и контроля, как датчик уровня топлива (поисковики его знают как ДУТ). Будет теория, все чертежи и схемы для сборки данного продукта. Кому интересно — читаем далее.
0. Вступление
Забегая вперед скажу, будет три статьи, в этой я расскажу о самом простом варианте определения уровня дизельного топлива (только дизельного, использование на бензиновой технике абсолютно запрещено, так как взрывоопасно). В следующих статьях, если конечно будет читателю интересно, рассмотрим цифровой датчик уровня топлива, а в самом конце я планирую выложить схему и прошивку устройства для мониторинга, которое описывал в данной статье.
1. Немного теории
Самые популярные датчики измерения уровня топлива представляет собой электрический конденсатор, состоящий из двух трубок помещенных друг в друга, устанавливаются резервуар с топливом, уровень которого измеряется. Дизель свободно проникает в пространство между трубками, сигналом изменения уровня топлива в резервуаре является изменение электрической ёмкости датчика.
При изменении уровня топлива в резервуаре изменяется относительная диэлектрическая проницаемость пространства между обкладками конденсатора, поскольку диэлектрическая проницаемость топлива и воздуха в общем случае различна. А так как емкость прямо пропорциональна диэлектрической проницаемости изолятора, то в результате изменяется и электрическая ёмкость датчика. Датчики в большинстве своем изготавливаются из алюминия или меди, потому что они меньше всего подвержены влиянию агрессивных сред. Из многих способов измерения значения емкости конденсатора и последующим преобразованием его емкости в пропорциональное изменение постоянного напряжения на выходе, был выбран широтно-импульсный способ, как достаточно простой и надежный, но при этом обеспечивающий необходимый уровень точности измерения. Сразу требуется оговорка, это самый простой в плане финансов и достаточно простой в плане сборки ДУТ метод определения уровня дизельного топлива.
2. Описание работы электрической схемы датчика уровня топлива
Рис 2. Принципиальная схема датчика уровня топлива (ДУТ) (большая схема тут)
В реальности это будет выглядеть примерно вот так:
График уровня топлива + скорость.
3. Чертеж датчика уровня топлива, материалы
РИС 3. Чертеж датчика уровня топлива (ссылка на большой чертеж)
Уже упоминалось, что используется в основном алюминий, как видно из чертежа, наружная трубка впаивается любым удобным способом в «голову» ДУТ. При производстве своих датчиков мы используем сварку, т.к. имеем к ней доступ, пусть не самый эстетически красивый вариант, но, надежен и проверен временем. Внутри используется алюминиевый стержень, для фиксации которого нарезается резьба в верней части. Втулки используются из специального фторопласта, который максимально толерантен к дизельному топливу.
4. Итог
На данном решении построены подавляющее большинство датчиков уровня топлива представленных на GPS рынке СНГ и мира. Каждый производитель вносит свои изменения для увеличения точности измерения уровня топлива, такие как акселерометр, температурные датчики, цифровая обработка сигнала и прочее. Представленная мною схема самая простая, готовая к работе, как говорится, в полях без каких либо сложностей. Уважаемый читатель с прямыми руками вполне может сделать любые доработки, которые можно использовать как для своих целей, так и для коммерческих нужд.
PS. Немного эротики про то как подобное добро устанавливается на технику можно посмотреть тут.
Индикатор топлива и напряжения АКБ для автомобиля V.4
Но, чтобы все было по порядку и в одном месте, сначала кратко упомяну предыдущие версии, возможно кому то, что то пригодится.
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
Схемы
Платы
При монтаже дисплея сначала припаивается шлейф, затем дисплей заворачивается на другую сторону платы и сажается на двухсторонний скотч, для надежности можно еще зацепить за один уголок тонкой проволочкой.
Совместимые пульты формата 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 и датчик в баке образуют входной делитель напряжения
Например: если максимальное сопротивление датчика 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 выложены как есть, т.е. вся информация по ним, схемы, прошивки, исходники это то, что осталось от этих версий на момент публикации статьи, и я не гарантирую, что это последние, правильные и полностью рабочие версии прошивок и исходников. Эти версии выложены чисто для информации и для любителей самим «поковыряться» в исходниках. Тем, кто не разбирается в программировании МК я настоятельно не рекомендую делать эти версии, поскольку технической поддержки по ним не будет.















