• Простой универсальный цифровой спидометр на pic16f628a. Автомобильный цифровой спидометр на PIC16F628

    29.01.2021

    Выполняя пожелания посетителей, я разработал этот девайс. Прибор измеряет скорость в диапазоне 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) — служебная константа (не менять!)


  • Спидометр предназначен для измерения скорости автомобиля(мотоцикла), особенность прибора - очень широкий диапазон калибровки, что позволяет ему работать практически в любом автомобиле с любым датчиком скорости. Изначально калибровка сделана для датчика скорости, имеющего 6 импульсов на 1 оборот и при соотношение пробега к обороту датчика 1 метр пробега = 1 оборот. Диапазон измерения скорости 0...255 км в час. Шаг измерения - 1 км в час. Программа имеет гистерезис измерения, что исключает "дрожание" младшего разряда индикации.

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

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

    Калибровка выполняется так: нужно кратковременно замкнуть (можно и отверткой) любой из джамперов. На дисплее появиться калибровочная константа, в первом случае она равна 150. Это некая условная величина, не имеющая каких либо единиц измерения. Далее замыкая один из джамперов можно уменьшать или увеличивать эту константу в пределах 0...255. Если не прикасаться к джамперам несколько секунд - прибор выйдет из режима калибровки обратно в режим измерения скорости. Калибровочная константа будет сохранена в энергонезависимой памяти EEPROM. Точное значение калибровочной константы подбирается экспериментально.

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



    Файл:
    Размер:
    Содержимое:

    speed_universal.rar
    32.9 КБ
    Рисунок печатной платы (LAY) и файлы прошивок (HEX)

    КОНКУРС

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

    Начну с предыстории.
    Поставил я как-то в машину торпедо от иномарки и понял, что спидометр ужасно не совпадает с реальными показателями скорости. Решено было поставить бортовой компьютер. Сказано – сделано. Множество функций, и т.п., со временем он отказал, и пришлось делать самому.

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

    На просторах интернета я подсмотрел кое-что по отдельности и свёл это всё в законченное устройство представленное ниже.
    Из необходимых показаний я выбрал: вольтметр бортовой сети, спидометр и одометр (общий пробег не сбрасываемый, и суточный, сбрасываемый).
    Так же, в моей панели не показывал штатный показатель уровня топлива в баке, я поставил переключатель показаний вольтметра, там показывает либо напряжение бортовой сети, либо падение напряжения на датчике бака. Показания конечно не в литрах, а в каких-то цифрах, по этому я запомнил показания пустого бака, четверти, половины, 0,75 бака, и полного. И по показаниям я могу ориентироваться о количестве топлива в баке.

    Теперь о схеме.

    Вольтметр собран на микроконтроллере pic16f676 , транзисторы я применил PNP
    Индикатор с общим анодом, с динамической индикацией на три разряда.
    В спидометре-одометре применён микропроцессор pic16f873a, транзисторы работающие на аноды, обратной проводимости, индикатор на спидометр на три разряда с динамической индикацией с общим анодом, на одометр я взял два индикатора с ОА с динамикой.

    Описание датчика :

    Алгоритм работы таков:
    Напряжение 12 вольт с аккумулятора на схему подаётся всегда, а вот с ножки замка зажигания 15/1 подаётся и на схему, как питание, и на ножку 21 МК, и при выключении зажигания, схема не сразу обесточивается, а идёт запись данных о пробеге в EEPROM контроллера, когда запись прошла удачно, микроконтроллер даёт команду на ключи, которые снимают напряжение питания всей схемы. Во время записи на индикаторе одометра загорается надпись «запись»
    В печатной плате предусмотрен переключатель, который питание на аноды спидометра либо подаёт напрямую, либо пускает через резистор, что в свою очередь, в ночное время, «приглушает» яркость свечении, чтобы не ослепляло, но кому не надо, можно на плате поставить перемычку. (что я у себя и сделал)
    При повороте ключа зажигания, загораются показания вольтметра, спидометра и общего показания пробега, чтобы перейти в суточный пробег, надо кратковременно нажать кнопку ресет, А чтобы сбросить показания суточного пробега, эту же кнопку надо удержать долго, и на индикаторе появится слово «сброс»
    Схема работает на моей машине, и уже на машине друга. Так что схема полностью работоспособна и отработана в полевых условиях
    И еще, в вольтметре, вместо подстроечного резистора, я поставил постоянный 13 кОм (в моём случае) , чтобы показания под воздействием вибрации не сбивалось.
    И ещё, на фото приведена плата из первого опыта, там не дорисованы дорожки, но вам представлена полностью готовая плата, со всеми изменениями.

    Фото готового устройства

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

    Спидометр выполнен на базе широко распространенного микроконтроллера PIC16F84A-04I/P фирмы "MICROCHIP". В качестве устройств отображения информации использованы светодиодные индикаторы SC10-21YWA (высота знака 25,4 мм, жёлтый свет, общий катод) фирмы "Kingbrihgt".
    Подключается устройство к сигнальному контакту штатного аналогового спидометра. Нажатием кнопки (дублируется звуком), можно изменять яркость свечения индикаторов "по кругу". При желании можно дополнительно установить кнопку с фиксацией для отключения питания спидометра (на схеме не показано).
    При неплотно закрытой двери автомобиля (сигнал низкого уровня относительно корпуса) и скорости движения более 9 км в час, раздаётся прерывистый сигнал, и показание скорости на индикаторе сменяется включенной на полную яркость аббревиатурой "dor" (сокращённое от англ. "door" - дверь).
    Питание на спидометр берётся с замка зажигания (контакт - "зажигание"). При каждом включении яркость свечения индикаторов устанавливается такой, какой она была выставлена пользователем ранее. Все незначащие нули на индикаторе кроме младшего разряда отключаются. При использовании других подобных индикаторов, возможно, потребуется подборка токоограничивающих резисторов в цепи анодов их сегментов. Звукоизлучатель со встроенным генератором HA1, можно заменить любым самодельным генератором звука с частотой 1000-1500 Гц, способным работать от источника питания напряжением 5 вольт. Рисунки печатной платы в приложении.
    Исходные тексты программы и НЕХ-файлы для микроконтроллера под:

    • японский стандарт (2500 импульсов на один км пути)
    • международный стандарт (6000 импульсов на один км пути)
    • стандарт 10000 импульсов на один км пути

    находятся в приложении.

    Следует отметить, что в первом варианте время измерения, а затем индикации составляет 1,44 секунды (для удобства программно уменьшено до 0,72 секунды). Во втором варианте 0,6 секунды, а в третьем варианте 0,36 секунды. Для установки времени измерения импульсов от датчика скорости с точностью до 1 км в час, необходимо разделить 3600 на количество импульсов датчика скорости на 1 км пройденного пути. Полученное значение времени измерения (в секундах) необходимо занести в программу. Например, 3600/2500=1,44 сек. Время индикации и смена показаний индикатора во время движения вполне удобочитаемо во всех представленных случаях.

    Похожие статьи