Спидометр одометр тахометр схема
В данной статье рассмотрим полностью готовый спидометр и тахометр.
Алгоритм работы программы думаю можно понять из комментариев в исходнике программы. Единственное на чем хочу заострить внимание так это интервал времени измерения скорости или оборотов двигателя. Замер производим на интервале 600 миллисекунд, такой интервал идеален для получения целых чисел. Для примера: скорость 1км/час = 6000импульсов/3600секунд, если мерить на интервале секунда, то мы получим 1,666666666666667импульса/секунду. А вот если мерить на интервале 600 миллисекунд, то мы получим: 6000импульсов делим на 3600000миллисекунд и умножаем на 600миллисекунд = 1импульс/600миллисекунд. Такой же принцип работает и для тахометра, с единственной поправкой, при расчетах оборотов двигателя полученную цифру мы умножаем на 50 (подсчет оборотов двигателя ведем с точностью 50 оборотов в минуту).
Но не идеальная жизнь вносит свои коррективы в идеальные математические расчеты. Так количество импульсов с датчика скорости моей машины оказалось на пять импульсов больше (на 10 метров пути, т. е. 65 взамен должных 60ти). Что заставило корректировать время измерения так сказать на ходу.
@ device PIC16F876, HS_OSC, WDT_OFF, PWRT_ON,PROTECT_OFF
Data @0, Word 030 '
Data @2, Word 000 ' Заносим в EEPROM при программировании
Data @4, 00 ' нужные нам показания
Data @5, Word 960 ' одометров
Data @7, 60 '
Data @8, 0
Cifra var Byte ' Для вывода нужной цифры на индикациюацию
Time var Word ' Для отсчета времени для спидометра
ImpSpedo var Byte ' Для хранения кол-ва импульсов спидометра
ImpOdo var Byte ' Для хранения кол-ва импульсов одометра
Sped var Byte ' Для хранения скорости движения
Odo123Km var Word ' Для хранения километров одометра (тысячи)
Odo456Km var Word ' Для хранения километров одометра (сотни)
OdoMetr var Byte ' Для хранения десятков метров без сброса
OdoTripKm var Word ' Для хранения количества километров суточного пробега
OdoTripM var Byte ' Для хранения десятков метров суточного пробега
OdoPR var Byte ' Для переключения и сброса одометра
SelOdo var Bit ' Для выбора одометра
Tme Con 294 ' Время для
Time = Tme ' отсчета скорости
ImpOdo = 60 ' Считаем по 10 метров пути (60 импульсов на 10 метров)
OdoPR = 200 ' Пауза для кнопки
Read 0, Odo123Km.byte0
Read 1, Odo123Km.byte1
Read 2, Odo456Km.byte0
Read 3, Odo456Km.byte1
Read 4, OdoMetr
Read 5, OdoTripKm.Byte0
Read 6, OdoTripKm.Byte1
Read 7, OdoTripM
Read 8, SelOdo
Pause 1000 ' Для стабилизации МК
On Interrupt Goto myint ' Если произошло прерывание, переходим к обработке этого прерывания
if PortA.5 = 0 then Save ' Если зажигание выключено то - переходим к сохранению данных
if PortA.3 = 0 then ' Если кнопка одометра нажата
OdoPR = OdoPR - 1 ' Уменьшаем время паузы кнопки
endif
if PortA.3 = 1 then ' короткое время
OdoPr = 200 ' Сбрасываем время паузы кнопки
SelOdo = SelOdo + 1 ' Заносим 1цу в переменную выбора одометра
if PortA.3 = 0 then ' держим долгое время
OdoPR = 200 ' Сбрасываем время паузы кнопки
OdoTripM = 0 ' Сбрасываем
OdoTripKm = 0 ' суточный одометр
endif
endif
Cifra = Sped Dig 0 ' Spedometr Cifra 1
GoSub Look
Pause 4
Cifra = Sped Dig 1 ' Spedometr Cifra 2
GoSub Look
Pause 4
Cifra = Sped Dig 2 ' Spedometr Cifra 3
GoSub Look
Pause 4
if SelOdo = 1 then
GoTo SytOdo
endif
Cifra = Odo123Km Dig 2 ' Odometr Cifra 1
GoSub Look
Pause 4
Cifra = Odo123Km Dig 1 ' Odometr Cifra 2
GoSub Look
Pause 4
Cifra = Odo123Km Dig 0 ' Odometr Cifra 3
GoSub Look
Pause 4
Cifra = Odo456Km Dig 2 ' Odometr Cifra 4
GoSub Look
Pause 4
Cifra = Odo456Km Dig 1 ' Odometr Cifra 5
GoSub Look
Pause 4
Cifra = Odo456Km Dig 0 ' Odometr Cifra 6
GoSub Look
Pause 4
Goto Main
Cifra = OdoTripKm Dig 2 ' Odometr Cifra 2
GoSub Look
Pause 4
Cifra = OdoTripKm Dig 1 ' Odometr Cifra 3
GoSub Look
Pause 4
Cifra = OdoTripKm Dig 0 ' Odometr Cifra 4
GoSub Look
Pause 4
Pauseus 350
Cifra = OdoTripM Dig 1 ' Odometr Cifra 5
GoSub Look
Pause 4
Cifra = OdoTripM Dig 0 ' Odometr Cifra 6
GoSub Look
Pause 4
GoTo Main
Disable
if intcon.1=1 then ' Если прерывание произошло по входу INT считаем счетчики
ImpSpedo = ImpSpedo + 1 ' Счетчик скорости
ImpOdo = ImpOdo - 1 ' Счетчик одометра (основной)
endif
if ImpOdo = 0 then ' Если проехали 10 метров пути
ImpOdo = 60 ' Начали сначала осчет 10 метров пути
OdoMetr = OdoMetr + 1 ' Заносим в переменную количество пройденных метров (общий одометр)
OdoTripM = OdoTripM + 1 ' Заносим в переменную количество пройденных метров (суточный одометр)
endif
if OdoMetr = 100 then ' Если проехали 1000 метров
OdoMetr = 0 ' Обнуляем счетчик метров
Odo456Km = Odo456Km + 1 ' Заносим 1цу в счетчик сотен километров
endif
if Odo456Km = 1000 then ' Если счетчик сотен километров одометра заполнился
Odo456Km = 0 ' Обнуляем счетчик сотен километров
Odo123Km = Odo123Km + 1 ' Заносим 1цу в счетчик тысячь километров одометра
endif
if Odo123Km = 1000 then ' Если счетчик тысячь километров одометра заполнился
Odo123Km = 0 ' Обнуляем счетчик тысячь километров одометра
Odo456Km = 0 ' Обнуляем счетчик сотен километров одометра
endif
if OdoTripM = 100 then ' Если проехали 1000 метров (суточный)
OdoTripM = 0 ' Обнуляем счетчик метров (суточный)
OdoTripKm = OdoTripKm + 1 ' Заносим 1цу в счетчик сотен километров (суточный)
endif
if OdoTripKm = 1000 then ' Если счетчик сотен километров одометра заполнился (суточный)
OdoTripKm = 0 ' Обнуляем счетчик сотен километров одометра (суточный)
endif
if intcon.2=1 then ' Если прерывание по переполнению TMR0
Time = Time - 1 ' Уменьшаем счетчик времени
if Time = 0 then ' Если счетчик времени отсчитал нужный промежуток времени
Time = Tme ' Начинаем отсчет времени заново
Sped = ImpSpedo ' Заносим в переменную полученную скорость
ImpSpedo = 0 ' Обнуляем счетчик импульсов скорости
endif
endif
Resume
Enable
LookUp Cifra, [$02, $BA, $24, $A0, $98, $C0, $40, $B2, $00, $80], PortB
Return
Disable
Pause 200
Write 0, Odo123Km.byte0
Write 1, Odo123Km.byte1
Write 2, Odo456Km.byte0
Write 3, Odo456Km.byte1
Write 4, OdoMetr
Write 5, OdoTripKm.Byte0
Write 6, OdoTripKm.Byte1
Write 7, OdoTripM
Write 8, SelOdo
Pause 50
End
Enable
End
@ device PIC16F84A, HS_OSC, WDT_OFF, PWRT_ON, PROTECT_OFF
Digit Var Byte
Time Var Word
Tcon Con 245
Imp Var Word
RPM Var Word
Pause 1000
On Interrupt Goto myint
Digit = RPM Dig 0
PortA.0 = 1: PortA.1 = 0: PortA.2 = 0
GoSub Look
Pause 4
Digit = RPM Dig 1
PortA.0 = 0: PortA.1 = 1: PortA.2 = 0
GoSub Look
Pause 4
Pauseus 300
Goto Main
endif
Digit = RPM Dig 2
PortA.0 = 0: PortA.1 = 0: PortA.2 = 1
GoSub Look
Pause 4
Goto Main
Disable
if intcon.1=1 then
endif
if intcon.2=1 then
if Time = 0 then
RPM = Imp * 50 / 10
endif
endif
LookUp Digit, [$80, $F2, $48, $60, $32, $24, $04, $F0, $00, $20], PortB
Return
End
Думаю, хватит теории, перейдем к сборке готового устройства.
Корпус был взят от родного спидометра, печатная плата выполнена по лазерно-утюжной технологии, маска была распечатана на прозрачной пленке и собрана из 4х слоев (это убрало свечение черного фона (лучше печатать на фото-принтере)), подсветка надписей сделана на чип светодиодах.
Тахометр и спидометр выполнены в одном корпусе. Зная, что найдутся те, кто скажет "Ой как все плотно, цифры в глазах рябить будут” спешу сказать, да, когда я в первый раз включил спидометр, так оно и было, но через неделю глаза привыкли и теперь взгляд выхватывает только то, что нужно в данный момент. Сверху маски наклеена легкая черная тонировочная пленка, это сделало днем более контрастными цифры.
Наверное учитывая то что это уже восьмая часть и логично было бы ее назвать хотя бы "Большое продолжение…" но все же для поисковиков это словосочетание уже стало ключем для поиска, по нему легко можно найти серию моих статей о приборах на семисегментных индикаторах, пересмотреть и вспомнить, и даже повторить если найдутся желающие. Так что оставляем название в покое и смотрим на очередное творение Горского Игоря (М.A.M.E.D.)
На этот раз устройство немного сложнее. На большем и дорогом микроконтроллере.
Как вы могли прочитать в названии это цифровой спидометр. В сети много цифровых спидометров на более простом и дешевом контроллере таком как PIC16F628A или PIC16F84 хотя цена последнего на сегодняшний день не такая уже и дешевая по сравнению с первым. НО кроме измерения скорости в них нет больше ничего интересно. Такой спидометр я в будущем хочу переделать в зеркальную индикацию но не полностью а только цифры и использовать для зеркального отображения проекции скорости на лобовом стекле в ночное время суток. Но это все планы.
Вернемся к "Многофункциональному спидометру счетчику пробега" Игоря. Счетчик пробега на автомобильном языке это называется одометром выводит это устройство далеко в перед по сравнению с бюджетными устройствами. И этих одометров аж 3.
1 — это общий спидометр. Он на сленге автомобилистов Миллионник. То есть 6-ти значный одометр.
2 — это суточный пробег. И тут Игорь отскочил от стереотипов и сделал его интереснее. Отойдя от стереотипов он сделал 2 знака после запятой. И суточный одометр показывает не только 100 метров но и 10. Я уже второй день катаюсь и засекаю километраж по деревне.
3 — это сервисный пробег. Настроен он на 10 000 км если быть точным то на 9999. Этот считает пробег до замены масла. 9900 он о себе даже не напомнит. По пройдя этот пробег Спидометр будет напоминать сколько осталось до замены при каждом включении зажигания.
4 — А вот эта функция мне понравилась больше всего наверное. Благодаря ей я знаю что от гаража до дома вокруг улицы у меня 700 метров, к бабушке 1200, а к отцу на роботу обезжая парадный въезд 2600 метров. Дело в том что эта функция чем то напоминает суточный пробег но как бы считает пробег от включения до выключения зажигания, обновляясь каждый раз когда вы заглушили машину.
Представляете такую штуку в такси. Сел клиент вы завели автомобиль доехали до нужного места. Заглушили автомобиль и одометр вам вежливо показывает пройденный вами километраж в виде -025.6-. И вы быстро и эффектно умножаете 25.6 км на цену за 1 км/пробега. Или просто выключаете зажигание, сморите на циферки и говорите 25 км 600 м с Вас хх грн. Мечта просто а не одометр.
Заинтриговал тогда идем дальше. Больше про устройство можно прочитать на официальном сайте автора Авторские электронные устройства
Я же опишу что и как сделал я.
Взяв схему у автора
Плату я разводил сам под свой размер индикаторов и габариты.
Плата получилась двусоставная.
Часовой пояс: UTC + 3 часа
Адаптация тахометра и спидометра
На автомобиль ГАЗель установлен двигатель TD27T и КПП от Атласа. Работает всё, кроме тахометра и спидометра.
По спидометру: На Атласовскую коробку изготовлен переходник под ГАЗелевский датчик спидометра. Таким образом, датчик на кпп и сам спидометр родные, ошибочно только передаточное отношение внутри коробки. Разбирать коробку и точить шестерни- не вариант.
Отсюда проблема- как скорректировать показания датчика спидометра? На датчик приходит +12V, земля, и выходит сигнальный провод, на котором генерируется импульс +6v
По тахометру: ДВС был бензиновый, сигнал тахометра был взят с катушки зажигания. Теперь двигатель дизельный, для тахометра остался только генератор. Взять с него сигнал с обмотки не проблема, подцепили его на вход тахометра- стрелку зашкалило на холостых.
Вопрос: как подключить ГАЗелевский тахометр к Мистралевскому генератору?
Какая приборная панель стоит на Газели? Я с газельными не сталкивался. А вот с ВАЗ_овскими копался. На ВАЗ ставят приборные панели VDO, АП (Автоприбор) и Счетмаш. Только в приборной панели VDO можно корректировать показания спидометра и тахометра, перепрошивая ЕЕПРОМ, в АП и Счетмаш можно только пробег поменять. Есть опыт подстройки приборки VDO под автомобиль ОКА, там частота импульсов у ОКИ в два раза ниже чем на ВАЗ. Ковыряли пошивку и подгоняли. С генератора тахометр управлялса на каких то Вогах, попадалось где то но я не вникал.
В журнале Радио №4 за 2010г. есть публикация с описанием конструкции "Корректор показаний цифровых спидометра и одометра." который позволяет подстраивать спидометр на любых электронных приборках и датчиках ДСА как 6 импульсных так и 10 импульсных.
Вот анотация к статье.
Цитата:
"С. Товкач. Корректор показаний цифровых спидометра и одометра.
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!
Вот за такой линк огромное спасибо!
На газели стоит старая доска, спидометр електронно-механический. Одометр барабанчиками, привод-электричество. Думаю, что без разницы какая доска, датчики-то одинаковые на коробке, буду собирать эту схему.
Как с тахометром быть? Нужно что-то подобное, чтобы можно было регулировать коррекцию погрешности тахометра, или пересчитав обороты генератора исходя из диаметров шкивов задавать эту погрешность
Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет
Как с тахометром быть? Нужно что-то подобное, чтобы можно было регулировать коррекцию погрешности тахометра, или пересчитав обороты генератора исходя из диаметров шкивов задавать эту погрешность
Имхо -Ваш тахометр привык считать импульсы с катушки зажигания и приучить его считать частоту напряжения генератора переменного тока навряд ли получится. Может порыть как это на Волгах делается, может приборку от Волги поставить. Или сгородить датчик импульсов оборотов коленвала, на тахометр. Кстати на ВАЗ_овских приборках есть высоковольтный вход тахометра, с катушки зажигаеия и есть низковольтный с выхода коммутатора.
Опубликованы материалы вебинара, посвященного решениям задач освещения с LED-драйверами MEAN WELL. LED-драйверы MEAN WELL насчитывают несколько десятков семейств, которые широко используются, и легко интегрируются в различные светодиодные светильники. На вебинаре были представлены новинки 2022 года. Рассказали о драйверах MEAN WELL, существующих режимах стабилизации, способах повышения устойчивости светильника к имеющимся помехам, а также предложили оптимальные семейства для различных отраслей применения.
Я себе так представлял. Снять с одной обмотки сигнал, отсечь диодом половину периода. Получим всплески как на катушке зажигания. Их и считать тахометром, только частота будет совсем не похожа, её и придётся скорее всего делить. Вот такую схему я ищу.
Для надежной работы в жестких условиях компания Mornsun предлагает лучшие в своем классе AC/DC-преобразователи концепции 305RAC, которые не только соответствуют стандартам класса B по уровню электромагнитного излучения, но и немного их превосходят.
Часовой пояс: UTC + 3 часа
Кто сейчас на форуме
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y
На микроконтроллере
Спидометр-одометр , идея не нова, а вот реализация такого устройства имеют разные варианты, предлагаю вашему вниманию, несложную схему на распространенном МК 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 питания кренки.
Очень хороший материал он довольно сложный. А нельзя ли его упростить. Сделать на более доступном микроконтроллере например на 16f628а и на цифровых светодиодах в три цифры. Без показания текущей скорости а отображения установленной скорости ограничения. Сделать по умолчанию скорость в 60км и две кнопки + и – по 10км от 20км до 140км с кнопкой коррекции к установленному датчику скорости. Это был бы очень хороший прибор и многие автолюбители были бы очень благодарны. Я считаю что установленного спидометра в полене достаточно а постоянно смотреть на него утомительно про ограничениях скоростей на протяжении от 2км до 10км. и езда в пределах населённого пункта.
На микроконтроллере
Спидометр это измерительное устройства, для определения скорости автомобиля. По способу измерения, есть несколько видов спидометра центробежные, хронометрические, вибрационные, индукционные, электромагнитные, электронные и напоследок спидометры по системе GPS.
Индикатор тоже бывает разной.
- стрелочные – они наиболее часто применяются
- Ленточные – на Газ 24 стоит именно такой
- Барабанные
- Цифровые
В данной статье будем рассматривать схему светодиодную, цифровую спидометра. Схема довольно проста, там всего пару деталей, соберет и новичок.
Нам нужные компоненты для сборки
- микроконтроллер ATMega8.
- светодиодный семисегментный индикатор.
- 4 маломощные транзистора типа n-p-n, например BС547.
- стабилизатор напряжения на пять Вольт , 7805( КР142ЕН5) , на схеме нет.
- 2 конденсатора с параметрами 47 мкФ 16 – 25 Вольт, на схеме их тоже нет.
- резисторы с номиналами 1 кОм (в схеме их 3), 10 кОм (всего 1) и 150 Ом (шт 7).
В прошивке спидометр рассчитан для работы с датчиками скорости,которые имеют прямоугольный выходной сигнал (6 импульсов на один метр пути) Но если вы хотите использовать другой датчик, то нужно в прошивке это тоже изменить. Скорость обновляется по частоту 2 Гц, т.е два раза в секунду.
Для микроконтроллера не нужны конденсаторы или кварцы, так как он тактируется от 1 МГц внутреннего генератора. С фьюзами тоже не надо нечего делать, только сделайте прошивку микроконтроллера и все.
Микроконтроллер ATMega8 считает количество импульсов на входе за определенное время, пересчитает его в километры в час (км/ч) и на дисплей выводит численное значение скорости. В дисплее использованы 7 сегментные индикаторы с общим анодом.
Если вам трудно в машине достать датчик скорости, то смотрите на фото, там магниты на внутренней гранате и датчик Холла.
Для того чтобы программа легко понималась, использовалось проект Proteus-a для симуляции. Вам перед запуском нужно указать путь к месту хранения файла прошивки. Удачи в сборке!
Читайте также: