Цифровой спидометр/одометр

Выполняя пожелания посетителей, я разработал этот девайс. Прибор измеряет скорость в диапазоне 0…254 км в час, а также имеет аж 4 счетчика пробега — это общий, суточный, пробег от последнего включения зажигания и до замены масла. Суточный одометр считает не только сотни, но и десятки метров, а также еще и тысячи километров, что можно назвать особенностью прибора. А управление всеми функциями возложено на одну единственную кнопку. Индикация выполнена на 7-ми сегментных светодиодных индикаторах: 3-х значный без точки для скорости, и два 3-х значных с точкой для счетчиков пробега. Кроме того, имеется светодиод SERVICE NOW, который сигнализирует о том, что пора срочно заменить масло. Прибор откалиброван под 6-ти импульсный датчик скорости и на соотношение пробега 6 импульсов на 1 метр пути (все переднеприводные ВАЗы). Но калибровка может быть изменена практически под любой автомобиль.

Подробнее о работе девайса (на первый взгляд сложно и без стакана не разберешься :-)). Когда зажигание выключено, индикаторы погашены и ток потребления ничтожно маленький. Если включить зажигание, прибор включает все сегменты индикаторов, это своего рода самодиагностика, сразу будет видно, если какой сегмент не исправен. Также зажигается и светодиод SERVICE NOW. Далее через пару секунд прибор начинает индикацию скорости и ранее выбранного пробега (после 1-го подключения прибора будет индикация общего пробега). Коротким нажатием на кнопку переключается режим индикации суточного или общего пробега. Когда на дисплее суточный пробег, длинное нажатие (более 2 сек) обнуляет счетчики суточного пробега. Когда на дисплее общий пробег длительное нажатие на кнопку ничего не делает. После выключения зажигания прибор, на несколько секунд, индицирует пробег от последнего включения зажигания, когда индикаторы потухнут этот счетчик обнулится, а также все значения одометров будут записаны в энергонезависимую память EEPROM, поэтому даже отключение АКБ не вызовет сброс состояний всех одометров, кроме одометра от последнего включения зажигания. Если же зажигание выключили и на дисплее еще не потухла индикация пробега и тут же включить зажигания — сброса пробега не произойдет, пробег от последнего включения зажигания сбрасывается только тогда, когда все индикаторы погашены. Если до замены масла осталось менее 100 км то при включении зажигания на дисплее одометра будет не выбранный пробег, а остаток до техобслуживания, коротким нажатием кнопки будет включен ранее выбранный режим общего или суточного одометра. Если счетчик до замены масла полностью исчерпан, то будет постоянно гореть светодиод SERVICE NOW. Когда зажигание выключено и все индикаторы потухли, коротким нажатием на кнопку вызывается на несколько секунд текущее состояние счетчика пробега до замены масла. Когда масло заменили сброс счетчика на новый цикл осуществляется так: нужно при выключенном зажигании нажать и удерживать кнопку в течение 5 секунд, далее не отпуская кнопку нужно включить зажигание, спидометр включиться в обычном режиме, перейдя к индикации скорости и пробега (суточного или общего), а счетчики пробега до техобслуживания будут установлены на следующие 10 тысяч километров, точнее на 9999,99 км.

Чтобы небыло путаницы в одометрах, каждый счетчик имеет свой формат индикации.

  • общий одометр XXXXXX (младщий разряд 1 километр), 6 знаков, точки не горят.
  • суточный одометр ХХХХ.ХХ (младший разряд 10 метров), 6 знаков, горит 4-я точка
  • от последнего включения зажигания XXX.X (младший разряд 100 метров), 4 знака, горит 4-я точка, 1-й и 6-й знак не горит.
  • до замены масла XXXX (младший разряд 1 км), 4 знака, точки не горят, 1-й и 6-й знак тоже не горит.

    Данный девайс изначально откалиброван для датчика имеющего 6 импульсов на один оборот и на соотношение 1 метр пробега равен одному обороту датчика, но он также может быть откалиброван для работы с практически любым датчиком и соотношением пробега к импульсам. Пока это реализовано вручную, путем правки 1-й и 2-й ячейки EEPROMа. 1-я ячейка это время измерения скорости * 10 миллисекунд (т.е. если в ячейке 60, то реальное время 600 мс). 2-я ячейка это количество импульсов датчика на 10 метров пути (пример для ВАЗ-2109 — 6 импульсов = 1 метру, следовательно 10 метров это 60 импульсов). Изменение остальных ячеек EEPROM может привести к неправильной работе прибора, но их изменение может понадобиться для задания начального значения общего одометра.

    Перечень ячеек EERPOM:
    Адрес ячейки — (значения) — описание | (все значения указаны в десятичной системе, а адреса в шестнадцатеричной.
    00 — (0..255) — Время измерения скорости * 10 мс.
    01 — (0..255) — калибровка одометра (кол-во импульсов на 10 метров пути)
    02 — (0..99) — сотни тысяч и десятки тысяч километров общего пробега.
    03 — (0..99) — тысячи и сотни километров общего пробега
    04 — (0..99) — десятки и единицы километров общего одометра
    05 — (0..99) — сотни и десятки метров общего одометра
    06 — (0..99) — тысячи и сотни километров суточного пробега
    07 — (0..99) — десятки и единицы км суточного пробега
    08 — (0..99) — сотни и десятки метров суточного пробега
    09 — (0..99) — тысячи и сотни километров пробега до ТО
    0A — (0..99) — десятки и единицы километров пробега до ТО
    0B — (0..99) — сотни и десятки метров пробега до ТО
    0C — (90) — служебная константа (не менять!)

  • прошивка
    печатная плата

    30 комментариев

    1. Александр Скачко Ответить 30.11.-0001 около 00:00

      Здравствуйте! Собрал сей девайсик по причине того что приятелю в ЯВУ нужен был спидометр. Долго его оговаривал от подобной затеи но так и не отговорил. У явовского колеса длина окружности 2 метра. Хотел поставить датчик холла на перо и два магнита на обод разнести на 180 градусов. подскажите какие цифры нужно писать в первую и вторую ячейки еепрома что бы считало не 6 импульсов на метр а 1 импульс\метр. перепробовал много значений. перепрошивал раз 100 контроллер и пришёл к такой последовательности: главное держать соотношение 60\60. если так то при 100 Гц мы получим 60 км на спидометр и считать одометр будет правильно. Если поставить 120\30 то при 100Гц скорость будет соответственно 120км. Дальше- 240\15 и опять то же самое-100Гц-240км. мне бы подставить значения 360\10 и было бы самое оно! но так сделать нельзя. всё упирается в эти 100Гц. вот если бы при 10Гц было показане 36км то было бы здорово! Не подскажете как это реализовать?? wacko

    2. все ж подробно в статье)))

    3. Александр Скачко Ответить 30.11.-0001 около 00:00

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

    4. там в программе перед програмирования непосредственно перед самим програмирования в ячейку соответствующую в эпром памяти можно вписать цыфру количества импульсов на 10ть метров. отдельный параметр идет на одометр и отдельно на спидометр

      [i]Данный девайс изначально откалиброван для датчика имеющего 6 импульсов на один оборот и на соотношение 1 метр пробега равен одному обороту датчика, но он также может быть откалиброван для работы с практически любым датчиком и соотношением пробега к импульсам. Пока это реализовано вручную, путем правки 1-й и 2-й ячейки EEPROMа. 1-я ячейка это время измерения скорости * 10 миллисекунд (т.е. если в ячейке 60, то реальное время 600 мс). 2-я ячейка это количество импульсов датчика на 10 метров пути (пример для ВАЗ-2109 — 6 импульсов = 1 метру, следовательно 10 метров это 60 импульсов). Изменение остальных ячеек EEPROM может привести к неправильной работе прибора, но их изменение может понадобиться для задания начального значения общего одометра. [u]

    5. Александр Скачко Ответить 30.11.-0001 около 00:00

      Значит мне нужно вводить 10 и 10 в две ячейки? я вводил и нечего путного не получалось. а к источнику меня не отправляйте, просто дайте ответ, пожалуйста, если можете. я ведь с ис-прогом работал и менял эти ячейки. забивал в них не 3с и 3с а 0А и 0А и ничего не получалось. что я неправильно делаю?

    6. ну если на метр один импульс то да надо 10ть 10ть вводить и не забыть прошить

    7. Александр Скачко Ответить 30.11.-0001 около 00:00

      и получаем в итоге смутно работающий девайс!!! он начинает работать как частотомер с показаниями 1к 1 а одометр считает всякую фигатень. это пробовал и я и ещё пара электронщиков с работы. перепробовали всякие варианты и 2 дня потратили и ничего не вышло. адекватно прибор работает только с ячейками 60-60

    8. вывод значить таков что надо больше импульсов на 10ть метров пути

    9. Александр Скачко Ответить 30.11.-0001 около 00:00

      ну что и требовалось узнать. я поставил соотношение 240-15 и 3 магнита на колесо. Попробую всё всунуть в стандартную явовскую банку а после подключть через стандартный привод диск с прорезями а вместо Холла поставлю оптопару.
      Спасибо что развеяли мои сомнения в моей неграмотности))

    10. та я чисто на догадке))

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

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

    13. дак сохраняются,там есть суточный пробег и общий, может с пиком что то не то

    14. kem3631.bsr.lmk

    15. Возможно. Куплю новый,прошью и попробую.После отпишусь.

    16. Добрый день или вечер! Купил новый контролёр и ни как не могу воткнуть прошивку. Ссылается ошибку данных по адресу 0000h. Пробовал двумя программаторами и разными программами,результат один и тот же. Со старой микросхемой было то же самое,но я всё таки умудрился путём изменения конфигурации её прошить. Но похоже программный код записался не корректно. В общем получается либо пишется программный код,а данные выдают ошибку.Либо наоборот.Всё вместе ни как писаться нормально не хочет. Может что в прошивке по этому адресу нужно изменить?

    17. надо правильно некоторые ноги подключить на даном микроконтроллере, я например прошивал вот таким программатором http://dmitrstas.ucoz.ru/publ….-1-0-23 , так как пытался другими и не выходило

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

    19. извини, я на работе и не всегда за компьютером))

    20. Спасибо. Соберу на всякий случай и этот программатор. Контролёр поставил.Пробовал на несколько секунд отключать аккумулятор,вроде бы не обнулился. Ещё один вопрос; стоя на месте при работающем двигателе на спидометре не всегда 0 км/ч, а плавающие показания. Может надо экранированный провод кидать до датчика,или это связано с чем то другим?

    21. может быть помехи по питанию

    22. Возможно.Проверю ёмкость в генераторе.Если что фильтр поставлю.Спасибо.

    23. Я так понял индикатор с общим катодом?
      Нужно с общим анодом!

    24. Если можно проэкт прошивки на (b.aa@i.ua) и где поменять на OA! Или прошивку с ОА!

    25. Скажите пожалуйста. эта прошивка рабочая. у меня три ноля на индикаторе! И не двигается!

    26. Устройство рабочее, вот только беда с прошивкой. Все считает, все показывает, а вот в EEPROM по ходу не пишет. Как только снимаешь постоянный +12, конденсаторы разрядились, все данные слетели. 🙁 Что с этим делать ума не приложу.

    27. Собрал на конец себе это устройство работает идеально. Поставил себе на газель считает расход газа. Я его снимал раз тридцать с машины на несколько дней, для доработок ,потому что не все индикаторы показывали и ни чего не сбрасывалось,ни один показатель. Жаль не могу фотки прикрепить. Единственное что не смог править прошивку не силен в программировании. Показывает больше ровно на 10км/ч, чем реально еду. Может кто подскажет какое значение прописать в прошивке.

    28. Вот разные приборы для щитка. Ничего прописывать в EEPROM не надо, все выставляется через меню!
      http://baa527.wixsite.com/bogdan

    29. Прибор хороший. Но не доработаный.
      Проблема! Если в процессе перезаписи еепрома микры пропадает питание, или понижается напряжение все данные пропадают. Проблема усугубляется невозможностью прошить внутрисхемно. Колодки под микросхему не выход. При условии использования его его на мотоцикле/скутере. Вибрации. Поэтому использовал SMD вариант всех деталей с последующей проклейкой эпоксидкой.
      Для «Александр Скачко»! На скутер был изготовлен самодельный датчик(4 им. на оборот, можно хоть 10 при желании) скорости. Вышло 62 импульса на 10 метров. Очень простая конструкция и вкручивается на место штатного тросика.
      Как случилась потеря данных.
      подцепил ионистор на 5,5вольт на 5 фарад в цепь питания контроллера.Это очень много. прибор спокойно включался и мерил скорость, но после выключения и просмотра км. сервиса, и повторного включения(при напряжении 4вольта) данные потерялись. Реанимировать не удалось. Стал считать — импульс 10м, то бишь оборот датчика 40 метров.
      Медленно обновляется дисплей. Пример набора скорости 15-47-72; останавливаюсь на светофоре, 52-18-2(когда уже остановился)-0.
      Хотелось бы пообщаться с разработчиком по мылу лично. Есть идейка как этих косяков избежать.
      С уважением к мастеру и к людям