05.10.2023

Универсальный цифровой спидометр на PIC16F628 - Устройства на микроконтроллерах - Схемы устройств на микроконтроллерах. Автомобильный цифровой спидометр на PIC16F628. Схема Спидометр одометр часы на pic16f628a


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

Спидометр выполнен на базе широко распространенного микроконтроллера 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 сек. Время индикации и смена показаний индикатора во время движения вполне удобочитаемо во всех представленных случаях.

Спидометр-одометр, идея не нова, а вот реализация такого устройства имеют разные варианты, предлагаю вашему вниманию, несложную схему на распространенном МК ATmega8 , к схеме имеется два вида прошивок под индикаторы; 16х2 и 16х4. , а также проект работы схемы в протеусе.
Схема данного спидометра-одометра,

Коэффициенты под датчик скорости, можно настраивать прямо из пользовательского меню, под любой датчик скорости с любым (с количеством импульсов от 1 и до 9999……), а также задается и корректируется из пользовательского меню, количество импульсов на километр.

Характеристики схемы

:

Отображение текущей скорости, (отображение на ЖКИ, для 16х2 от 0.1 км/ч, для 16х4 от 0.001 км/ч)
километраж общий, (отображение на ЖКИ, для 16х2 от 0.1 км/ч, для 16х4 от 0.001 км)
километраж суточный (держитесь …..20 !!! суточных счетчиков, выбор № из меню),
отображение время активности каждого счетчика (общего и для суточных) проще говоря время в пути.
Возможность настроить сигнал о превышении скорости.
пользовательское меню, позволяет выставить все коэффициенты (скорости и учета километров) непосредственно с клавиатуры прибора.
Все данные сохраняются в память контроллера.


Здесь привожу описание работы меню и вывода показаний для дисплея 16х2 (под дисплей 16х4 это описание работы также полностью подходит, только вывод информации на экран 16х4 происходит более полный без сокращений).


Описание меню.
1) Выбор № персонального суточного счетчика км с учетом времени периода активности ячейки
2) Просмотр персонального суточного счетчика км (та которая выводится в первой строке, при нажатии кнопок вправо enter обнуляется.)
3) Сброс общего (тотального) км, (на суточные счетчики не влияет)
4) Сброс текущего счета км, (в EEPROM не сохраняется)
5) НАСТРОЙКИ
5.1) Частота кварца настройка коррекции тактов кварцевого резонатора ATmega8 на 1 секунду (влияет только на расчет скорости км/ч)
5.2) Количество импульсов датчика скорости (по умолчанию 6 имп.)
5.3) Импульс на км, это количество импульсов со счетчика на 1 километр (по умолчанию 600 имп.)
5.4) Тактов в секунду - внутренняя переменная внутренних часов на выводе PB1 она выдаёт коротенький импульс 0.5Гц, если часы спешат - число надо увеличивать, если отстаёт - число надо уменьшать.
5.4) максимальная скорость,- настройка порога макс. скорости (зумер) .
5.5) Вост. умолчания - восстановить настройки умолчания.
5.6) Сохранить настройки - пока вы не нажали этот пункт - всё действует только до выключения.

Сохраняются в EEPROM такие данные;
а) общие настройки,
б)тотальные показания (общая сумма всех счетчиков) с фиксацией и отображением часов, периода работы активного состояния спидометра - одометра.
в)20 персональных ячеек показаний км, с фиксацией и отображением часов, периода работы активного состояния отображаемой ячейки.
Для тотальных и персональных данных за сохранение в память при обесточке схемы, отвечает вывод INT 0, он подсоединен через резисторный делитель, который подсоединен 2кОм на землю и 4.7кОм на + 12 V питания кренки.

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

Схема в протеусе.


Спидометр предназначен для измерения скорости автомобиля(мотоцикла), особенность прибора - очень широкий диапазон калибровки, что позволяет ему работать практически в любом автомобиле с любым датчиком скорости. Изначально калибровка сделана для датчика скорости, имеющего 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)