Например TDA7294

Форум РадиоКот :: Просмотр темы - Цифровой спидометр-одометр на ЖКИ и ATmega8
Форум РадиоКот
https://radiokot.ru/forum/

Цифровой спидометр-одометр на ЖКИ и ATmega8
https://radiokot.ru/forum/viewtopic.php?f=57&t=50881
Страница 1 из 6

Автор:  Coviraylhik [ Пн июл 04, 2011 13:04:52 ]
Заголовок сообщения:  Цифровой спидометр-одометр на ЖКИ и ATmega8

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

Разработчик и автор этой программы clawham,
Моя миссия здесь только ознакомить вас с этой интересной схемкой, мной добавлено это описание, схема ,печатка, скрин фьюзов для понипрог, подкорректировал в исходнике надписи вывода информации и меню, под прямое назначение прибора спидометра-одометра, а в принципе программа довольно таки универсальна и может быть спидометром, и частотомером, и тахометром, и вообще что только душе угодно....суть в том, что она считает, очень точно, частоту умножая на коэффициент, и считает общее кол-во импульсов деля его на коэффициент, в принципе подобрав коэффициенты, оно может работать чем угодно ......
Схема в протеусе.
Изображение
Данная схема с прошивкой у меня также работает в качестве счётчика-ваттметра.
Вот ссылка откуда всё началось,….
Вложение:
Комментарий к файлу: Архив спидометра-одометра. Файлы
Для сборки .rar [139.54 KiB]
Скачиваний: 1378


Вложения:
Комментарий к файлу: Схема
Схема С О.GIF [62.68 KiB]
Скачиваний: 7007
Fise.jpg [28.69 KiB]
Скачиваний: 1421
spidomProt.jpg [30.21 KiB]
Скачиваний: 39650
spidometr_Proteus.rar [51.72 KiB]
Скачиваний: 3752

Автор:  GP1 [ Вт июл 05, 2011 07:31:16 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Моментом вставляю свои 5коп :)))
1. Датчики скорости имеют выход с ОК, поэтому я подключал по-другому.
2. Резистор 6к8 - слишком много, не обеспечит нармальный ток через светодиод.
Это так беглый взгляд.

Автор:  DimAlt [ Вт июл 05, 2011 17:15:07 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

А как крепили к велу? Это для меня очень больной момент :)) И сколько потребляет?

Автор:  folks [ Вт июл 05, 2011 19:53:57 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Что то протеус не запускается , выдает ошибку.

Автор:  clawham [ Ср июл 06, 2011 11:10:43 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

потребление 15 миллиампер при отключенной подсветке, 16-ти мегагерцах и практически любом режиме работы на 4х20 экране...основное питание тащется экраном...
можно его конечно переводить в статикповер даун...надо с этим поиграться если критично...
впринципе-то и процу можно идле команду давать...если нужно...я конечно сомневаюсь в экономичности ибо всётаки основное питание жрёт экран...
ВПРИНЦИПЕ.....в менюхе можно поставить чатсоту такта для проца и фузами поставить внутренний ген на 1 мегагерц и делитель на 8 включить....тогда потребление будет очень низким НО....без кварца поедет очень сильно точность измерений...особенно от температуры будет сильно зависить....решать Вам....прошивке абсолютно пофиг на какой частоте работать - главное в менюхе показать эту частоту и выставить предделитель
Цитата:
5.4) Тактов в секунду - внутренняя переменная внутренних часов на выводе PB1 она выдаёт коротенький импульс 0.5Гц , если часы спешат - число надо увеличивать, если отстаёт - число надо уменьшать.
чтоб время правильно считало ( от этого зависит измерение частоты и скорость обновления экрана и так далее

по поводу велика - дык что тут сложного-то? датчик холла из вентилятора/куллера любого компьютерного а на спицы - магнит...можно вообще 2-3-10 магнитов нацепить....или намагнитить спицы у основания подшипника...тогда скорость и путь будут чаще обновляться :)
ну или геркон и магнит побольше и помощнее и поближе...
геркону надо сделать фильтрацию в виде RC цепочки ибо он умеет гигагерцы дребезгом показывать...

Автор:  borys [ Ср июл 06, 2011 19:33:50 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

В протеусе не запускается.

Автор:  clawham [ Ср июл 06, 2011 23:33:19 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Ребятки а не стыдно?
В протеусе запомнены абсолютные пути к файлу прошивки и файлу еепрома
Вам надо скачать архив, распаковать в отдельную папку, зайти в свойства модели микроконтроллера и перепоказать ему файл прошивки под нужный Вам экран и показать файл начального значения еепрома - без него (как и без прошивки реального мк еепромом) устройство не работает ибо в еепром вынесено большинство текстов, все настройки и важнейшие параметры системы...

Автор:  Coviraylhik [ Чт июл 07, 2011 14:21:14 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Цитата:
Что то протеус не запускается , выдает ошибку.
...............
В протеусе не запускается.

Кроме того что уже к месту сказано
Цитата:
перепоказать ему файл прошивки под нужный Вам экран и показать файл начального значения еепрома - без него (как и без прошивки реального мк еепромом)

Для протеуса вместо еер. подставляется віn , он в архиве присутствует.
И еще не забывать, когда в протеус обновляеш версии прошивок работающими с EEPROM , нужно делать периодически сброс постоянных модели (ну в общем фото приложил)
Изображение

Автор:  Coviraylhik [ Вс июл 17, 2011 01:45:59 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Для велоспидометра можно сделать датчик, используя детали конструкции самого вело добавив сюда датчик холла.
Изображение
У меня, например, на колесе 35 спиц, для датчика это будет практически сантиметровая точность.
Как это будет работать? За счет колебания магнитных волн (обод колеса и золотник из сплавов не магнитится, если у вас обод металл, датчику он на расстоянии 5-10 см не помеха) спицы металлические и каждая вносит колебания в магнитное поле, будет с коэффициентом 35 на оборот, это хорошие показания при такой простоте конструкции.

Вложения:
колесо.GIF [4.2 KiB]
Скачиваний: 13151

Автор:  clawham [ Вт июл 19, 2011 12:31:06 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Вот это был бы супервариант НО!
1) негде достать такие точные и чувствительные датчики холла
2) поднимая чувствительность рискуем проехав мимо троллейбуса накрутить пару сотен километров
3) сложная дифференциальная усиливающая цепочка из фильтров низких высоких частот и с отсекателем постоянной составляющей...
4) заведение этого всего безобразия в условиях "все бребезжит, плавает в болоте и песке" да ещё и с минимальным потреблением от аккума...

Автор:  artemvinihenko [ Вс июл 31, 2011 17:46:06 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

хороший проэкт :)
А в какой среде писали? На си?
Если в коде-визишон неподелитесь исходниками? :)

Автор:  clawham [ Вс июл 31, 2011 20:45:26 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

исходники есть в соответствующей теме....проект не доделанный на данный момент перекочевал на новый компилятор и возможно на новый камень
конечно же на сях :) я не камикадзе писать 8 килов кода на асме:))

Автор:  artemvinihenko [ Пн авг 01, 2011 07:41:26 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

clawham писал(а):
исходники есть в соответствующей теме....проект не доделанный на данный момент перекочевал на новый компилятор и возможно на новый камень
конечно же на сях :) я не камикадзе писать 8 килов кода на асме:))


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

я просто уже 2неделю бьюсь над подобным проэктом а результат неутешительный....-показания идут непонятно- 3 7 14 и т.д. а промежуточных вообще никак :(

Автор:  clawham [ Пн авг 01, 2011 08:12:27 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

есть тема тут на форуме называется теория работы частотомера
чтоб были промежуточные результаты и притом точные надо мерять время между импульсами....если частота низкая
а если высокая - то считать колличество импульсов за прошедшее время..я там писал

по сути есть два таймера 1 просто затактован извне и взведено его прерывание
а второй 16-тибитный затактован без предделителя от системного клока
когда приходит прерывание(и одновременно инкрементируется первый счетчик) мы засекаем значение второго 16-тибитного таймера и обнуляем переменную его переполнений и дальше ждём
когда приходит второе прерывание(например Rising edge) то мы смотрим сколько раз переполнился таймер 2, умножаем это число на 65536 и прибавляем само значение таймера на момент прерывания и отнимаем 12 - константа пропущенных тактов для прерывания - с момента прихода реального прерывания пройдёт 12 атктов до момента выполнения первого оператора в прерывании)
ну а дальше частоту системы делиш на то что получилось от первого вычисления и получаеш точную частоту

смотриш...если частота превышает 10 килогерц - то тут уже рациональнее считать кол-во импульсов
вырубаеш внешнее прерывание и запоминаеш значение счетного таймера, дальше ждёш например секунду и уже от наклацанных в счетном таймере попугаев отнимаеш запомненные - получаеш частоту в герцах

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

но
это всё занимает много места
это всё вызывает много ошибок и глюков
это всё вызывает взрыв мозга если надо поменять тактовую частоту(или вообще иметь возможность задавать её из меню)

я остановился на этом варианте

ну и там есть немного плюшек для плавного вывода значения частоты а не рывками по 1-5 секунд - одновление идёт 8 раз в секунду вне зависимости от текущей частоты(хоть один импульс в 50 секунд - он всёравно покажет)

а на высокие частоты заведен стек из 51 ячейки...каждые 1/8 секунды в очередну ячейку записывается то что успело наклацаться , и каждую же 1/8 секунды все ячейки суммируются, делятся на (51/8) и получается точное среднее текущее значение частоты

вот и все делы

на данный момент я уперся в возможности компилятора по размеру переменных и в объём флеши...мега 8-ая забита просто под завязку...хочу пересесть на мегу 168-328 или вообще на 103-128 просто они у меня есть мег 103-х 10 штук 128-х 2 штуки и 168-х 3 штуки... но меги 103-128 это большие мощные камни сильно излишние и при этом огромные...мега 168 - маханькая 32-ногая tqfp - но я ещё не научилсо делать платки

Автор:  artemvinihenko [ Пн авг 01, 2011 21:50:39 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

clawham писал(а):
по сути есть два таймера 1 просто затактован извне и взведено его прерывание
а второй 16-тибитный затактован без предделителя от системного клока
когда приходит прерывание(и одновременно инкрементируется первый счетчик) мы засекаем значение второго 16-тибитного таймера и обнуляем переменную его переполнений и дальше ждём
когда приходит второе прерывание(например Rising edge) то мы смотрим сколько раз переполнился таймер 2, умножаем это число на 65536 и прибавляем само значение таймера на момент прерывания и отнимаем 12 - константа пропущенных тактов для прерывания - с момента прихода реального прерывания пройдёт 12 атктов до момента выполнения первого оператора в прерывании)
ну а дальше частоту системы делиш на то что получилось от первого вычисления и получаеш точную частоту

смотриш...если частота превышает 10 килогерц - то тут уже рациональнее считать кол-во импульсов
вырубаеш внешнее прерывание и запоминаеш значение счетного таймера, дальше ждёш например секунду и уже от наклацанных в счетном таймере попугаев отнимаеш запомненные - получаеш частоту в герцах



спасибо :)
столько информации....
сложно сразу всё переварить...
буду пробовать :)

Автор:  artemvinihenko [ Вт авг 02, 2011 19:04:11 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

вообщем переваривая всю инфу сделал немного подругому....точность конечно неахти (до 100 гц - +/-1гц , от 100 до 300 гц +/- 4 гц) но для спидометра сойдёт :)))

если интересно проэкт ниже :)

Вложения:
Комментарий к файлу: модель дисплея нокии3310 в протеус
nokia3310_proteus.zip [51.06 KiB]
Скачиваний: 590
Комментарий к файлу: проэкт с исходником в кодевизижен
Spidometr.rar [124.51 KiB]
Скачиваний: 603

Автор:  m210 [ Ср авг 03, 2011 00:57:23 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Coviraylhik писал(а):
вывод информации на экран 16х4 происходит более полный без сокращений).
Изображение

Указана скорость 61.025км/ч, люди знакомые с метрологией, понимают, что ДС не обеспечивает такой бешеной точности, а значит тысячные доли скорости указывать не обязательно, зачем показывать на дисплее погрешность датчика? :))

По теме, я так понял устроство работает постоянно, без использоваться +12 после зажигания?
Недавно искал решение проблемы гашения/зажигания дисплея при снятии/подаче напряжения с замка зажигания. Самый просто способ - разрывать цепочку на 3м контакте дисплея (контрастность) Дисплей работает, но ничего не показывает, пока не подать питание :)) Написал это, может кому-нибудь окажется полезным.

Кстати а вычислять скорость с помощью датчика положения коленчатого вала можно? У него намагниченный сердечник, считает зубья железного хомута, т.е. поставить только его и написать прошивку...правда наверно 1-2 спицы придется выломать :)))

Автор:  clawham [ Ср авг 03, 2011 08:58:51 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Меня глубоко не интересует что Ваш источник сигнала может или нет!
Если частотомер меряет 2.123 герца то он это и покажет
я не могу в рамках флеши данного МК втулить ещё и задание колва знаков после запятой с менюшки!
да оно и не надо в общемто
особенностью прошивки является единая система выравнивания результата после запятой ввиду экономии памяти программ я не могу позволить себе принтф с опциями вывода флоатов в произвольном форматировании...
на многое пришлось пойти ради умещения кода в 8 килов флеша...при этом все тексты и параметры форматирования вынесены в еепром из флешки...тоесть там реально некуда байту упасть

да и потом я ещё не встречал случаев когда большая точность была бы излишней! всегда можно уловить пусть не абсолютное значение точности ввиду погрешности датчика то хотябы малейшие её изменения!

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

а по поводу выключения я вообще ничего не понял!
какой смысл оставлять работать схему но выключать дисплей? микроконтроллер все показания запоминает, стартует за пол секунды...в чём хитрый смысл гасить экран? Ведь оно кушает 50-100 миллиампер....питайте его от замка зажигания и делов-то...

Автор:  artemvinihenko [ Ср авг 03, 2011 09:15:48 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

А правильна ли эта формула?
V=(F*1000)/L
где F-частота импульсов с датчика(геркона)...а L-длина окружности в мм.
чтото меня терзают смутные сомнения что что в ней нетак....

Автор:  m210 [ Ср авг 03, 2011 13:52:12 ]
Заголовок сообщения:  Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

clawham писал(а):
какой смысл оставлять работать схему но выключать дисплей? микроконтроллер все показания запоминает, стартует за пол секунды...в чём хитрый смысл гасить экран? Ведь оно кушает 50-100 миллиампер....питайте его от замка зажигания и делов-то...

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

А зачем задавать количество знаков функционально, этого никто делать не будет (ну равзе что по приколу) разделить перед выводом на экран на 100 или 1000 и так и оставить, сделать просто и 1кб лишний не сожрет :))
А вместо этих бесполезных цифр лучше поставить что-нить полезное...даже просто скорость написать будет полезнее, чем смотреть на тысячные доли скорости, приходящие с Марса

clawham писал(а):
да и потом я ещё не встречал случаев когда большая точность была бы излишней!

Вы просто с интерферометрами не работали, ложные срабатывания из-за таких флуктуаций серьезная штука :)
Ну да ладно, проехали :)

Страница 1 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/