Цифровой измеритель остатка топлива и напряжения АКБ для автомобиля (ATMega8 и дисплей от Nokia 1110i)

Усовершенствование датчика топлива на ВАЗ-ах

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

В итоге появился этот индикатор, который умеет следующее:

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

 

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

немного истории…

Первой мыслью было поставить БК (Бортовой Компьютер) , но покупать готовый это не наш выбор, полазив по Интернету нашел схему БК, автор Ветров Ю.А., вобщем понравилось, сделал. Но захотелось немного переделать его под себя, попросил у автора исходники, и занялся изучением программирования МК (Микроконтроллеров). В итоге получилось вот это

Стоит вместо пепельницы)

Усовершенствование датчика топлива на ВАЗ-ах

Хотя речь дальше пойдет и не об этом БК, но одну вещь стоит упомянуть уже тут, ее я переделал еще тогда под первый БК, это датчик топлива в баке.
И так идем дальше, после установки БК остался не удел родной индикатор топлива, и мне пришла мысль сделать в его корпусе нечто типа мини БК, с отображением только топлива и напряжения. Так родилась первая версия индикатора,

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

На этом с предысторией закончено

Пока эксплуатировался первый вариант, разрабатывалась новая программа и подбирался другой дисплей…
И так новая программа готова, дисплей выбран, я остановился на дисплее от Nokia 1110/1200/1110i/1112,

по размеру практически влезает в корпус родного индикатора, нужно лишь чуть подпилить уголки подсветки.

Схема

Детали

Практически все детали использовал SMD, кроме резисторов R1 — используется как опорная часть делителя напряжения, у меня на нем был откалиброван бак еще в первом БК, чтоб не перекалибровывать, так и использую его, R20 — токоограничительный для подсветки, поскольку с подсветкой много экспериментировал, то решил там оставить обычный резистор.

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 — на схеме не обозначен, через него подключаются кнопки и выводы для программирования МК

Наверное стоит пояснить зачем стоит такой мощный транзистор на подсветку, ну во первых они у меня есть, а во вторых по такой схеме можно подключать любую подсветку и на любое напряжения +5 или +12, хотя на +12 предпочтительнее, не надо греть стабилизатор 7805 лишней нагрузкой. Сделал такое подключение еще и по той причине, что пока экспериментировал с дисплеем спалил подсветку, но немного извратившись сумел приспособить туда 2 сверхярких 3мм светодиода.
Резистор R22, по схеме он подстроечный, но потом решил что по месту настрою и поставлю постоянный.
Подключается индикатор через родной разъем, используются 4 провода, земля, плюс бортовой сети, подсветка приборной панели (+12в), датчик топлива.

Конструкция

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

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

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

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

Программа

Режимы работы, их два:

1. Рабочий режим

в него он входит после включения питания и отображает остаток топлива и напряжение бортовой сети.

2. Режим установок

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

В режиме установок перемещение по пунктам меню вверх/вниз производится кнопками Up/Down
Вход в подменю кнопкой Ок
Кнопка Menu в режиме установок служит для возврата в предыдущее меню.

Емкость

Здесь устанавливаем емкость бака

Калибровка

Здесь производится калибровка бака
Уровень, это ячейки каждого литра, выбирается кнопками Up/Down
Датчик, это то что выдается с датчика в баке в данный момент
В памяти, это то что записано в памяти в ячейке текущего литра

Плавность

Устанавливаемая цифра это количество замеров уровня топлива, затем выводится среднеарифметическое значение.

Яркость день/Яркость ночь

Здесь устанавливаем яркость подсветки соответственно днем и ночью, фактом дня и ночи является включение подсветки приборной панели.

Инверсия

Переключение режима работы дисплея, обычный/инверсный

Во всех пунктах меню для изменения значений используются кнопки Up/Down,
для применения измененных значений необходимо нажать кнопку Ок, на несколько секунд на дисплее появится надпись «Сохранено», чтобы выйти из текущего пункта меню без сохранения нужно нажать кнопку Menu

Настройка

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

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

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

Файлы

архив — скачать

51 комментарий