Форум РадиоКот 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, Моя миссия здесь только ознакомить вас с этой интересной схемкой, мной добавлено это описание, схема ,печатка, скрин фьюзов для понипрог, подкорректировал в исходнике надписи вывода информации и меню, под прямое назначение прибора спидометра-одометра, а в принципе программа довольно таки универсальна и может быть спидометром, и частотомером, и тахометром, и вообще что только душе угодно....суть в том, что она считает, очень точно, частоту умножая на коэффициент, и считает общее кол-во импульсов деля его на коэффициент, в принципе подобрав коэффициенты, оно может работать чем угодно ...... Схема в протеусе. Данная схема с прошивкой у меня также работает в качестве счётчика-ваттметра. Вот ссылка откуда всё началось,…. Вложение:
|
Автор: | 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 на оборот, это хорошие показания при такой простоте конструкции.
|
Автор: | 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 |
исходники есть в соответствующей теме....проект не доделанный на данный момент перекочевал на новый компилятор и возможно на новый камень конечно же на сях ![]() |
Автор: | artemvinihenko [ Пн авг 01, 2011 07:41:26 ] |
Заголовок сообщения: | Re: Цифровой спидометр-одометр на ЖКИ и ATmega8 |
clawham писал(а): исходники есть в соответствующей теме....проект не доделанный на данный момент перекочевал на новый компилятор и возможно на новый камень конечно же на сях ![]() та меня впринципе интересует только измерительная часть а точнее сам принцип измерения,какие таймеры как настроить и все в таком духе... я просто уже 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 гц) но для спидометра сойдёт ![]() если интересно проэкт ниже ![]()
|
Автор: | 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/ |