Цифровой спидометр-одометр на ЖКИ и ATmega8

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение Coviraylhik »

Спидометр-одометр , идея не нова, а вот реализация такого устройства имеют разные варианты, предлагаю вашему вниманию, несложную схему на распространенном МК 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 КБ) 1424 скачивания
Вложения
Схема С О.GIF
Схема
(62.68 КБ) 7126 скачиваний
Fise.jpg
(28.69 КБ) 1458 скачиваний
spidomProt.jpg
(30.21 КБ) 39876 скачиваний
spidometr_Proteus.rar
(51.72 КБ) 3838 скачиваний
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение GP1 »

Моментом вставляю свои 5коп :)))
1. Датчики скорости имеют выход с ОК, поэтому я подключал по-другому.
2. Резистор 6к8 - слишком много, не обеспечит нармальный ток через светодиод.
Это так беглый взгляд.
Чем дальше, тем больше становлюсь занудой...
Изображение
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение DimAlt »

А как крепили к велу? Это для меня очень больной момент :)) И сколько потребляет?
folks
Открыл глаза
Сообщения: 53
Зарегистрирован: Пт янв 18, 2008 19:59:20

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение folks »

Что то протеус не запускается , выдает ошибку.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение clawham »

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

по поводу велика - дык что тут сложного-то? датчик холла из вентилятора/куллера любого компьютерного а на спицы - магнит...можно вообще 2-3-10 магнитов нацепить....или намагнитить спицы у основания подшипника...тогда скорость и путь будут чаще обновляться :)
ну или геркон и магнит побольше и помощнее и поближе...
геркону надо сделать фильтрацию в виде RC цепочки ибо он умеет гигагерцы дребезгом показывать...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
borys
Держит паяльник хвостом
Сообщения: 927
Зарегистрирован: Вт сен 07, 2010 19:27:48
Откуда: Ташкент

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение borys »

В протеусе не запускается.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение clawham »

Ребятки а не стыдно?
В протеусе запомнены абсолютные пути к файлу прошивки и файлу еепрома
Вам надо скачать архив, распаковать в отдельную папку, зайти в свойства модели микроконтроллера и перепоказать ему файл прошивки под нужный Вам экран и показать файл начального значения еепрома - без него (как и без прошивки реального мк еепромом) устройство не работает ибо в еепром вынесено большинство текстов, все настройки и важнейшие параметры системы...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение Coviraylhik »

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

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

Для протеуса вместо еер. подставляется віn , он в архиве присутствует.
И еще не забывать, когда в протеус обновляеш версии прошивок работающими с EEPROM , нужно делать периодически сброс постоянных модели (ну в общем фото приложил)
Изображение
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение Coviraylhik »

Для велоспидометра можно сделать датчик, используя детали конструкции самого вело добавив сюда датчик холла.
Изображение
У меня, например, на колесе 35 спиц, для датчика это будет практически сантиметровая точность.
Как это будет работать? За счет колебания магнитных волн (обод колеса и золотник из сплавов не магнитится, если у вас обод металл, датчику он на расстоянии 5-10 см не помеха) спицы металлические и каждая вносит колебания в магнитное поле, будет с коэффициентом 35 на оборот, это хорошие показания при такой простоте конструкции.
Вложения
колесо.GIF
(4.2 КБ) 13305 скачиваний
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение clawham »

Вот это был бы супервариант НО!
1) негде достать такие точные и чувствительные датчики холла
2) поднимая чувствительность рискуем проехав мимо троллейбуса накрутить пару сотен километров
3) сложная дифференциальная усиливающая цепочка из фильтров низких высоких частот и с отсекателем постоянной составляющей...
4) заведение этого всего безобразия в условиях "все бребезжит, плавает в болоте и песке" да ещё и с минимальным потреблением от аккума...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
artemvinihenko
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение artemvinihenko »

хороший проэкт :)
А в какой среде писали? На си?
Если в коде-визишон неподелитесь исходниками? :)
AVR FOR CИ РУЛИТ)))
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение clawham »

исходники есть в соответствующей теме....проект не доделанный на данный момент перекочевал на новый компилятор и возможно на новый камень
конечно же на сях :) я не камикадзе писать 8 килов кода на асме:))
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
artemvinihenko
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение artemvinihenko »

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


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

я просто уже 2неделю бьюсь над подобным проэктом а результат неутешительный....-показания идут непонятно- 3 7 14 и т.д. а промежуточных вообще никак :(
AVR FOR CИ РУЛИТ)))
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение clawham »

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

по сути есть два таймера 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
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение artemvinihenko »

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

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



спасибо :)
столько информации....
сложно сразу всё переварить...
буду пробовать :)
AVR FOR CИ РУЛИТ)))
Аватара пользователя
artemvinihenko
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение artemvinihenko »

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

если интересно проэкт ниже :)
Вложения
nokia3310_proteus.zip
модель дисплея нокии3310 в протеус
(51.06 КБ) 616 скачиваний
Spidometr.rar
проэкт с исходником в кодевизижен
(124.51 КБ) 638 скачиваний
AVR FOR CИ РУЛИТ)))
m210
Прорезались зубы
Сообщения: 218
Зарегистрирован: Сб окт 02, 2010 19:06:46
Откуда: Красногорск

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение m210 »

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

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

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

Кстати а вычислять скорость с помощью датчика положения коленчатого вала можно? У него намагниченный сердечник, считает зубья железного хомута, т.е. поставить только его и написать прошивку...правда наверно 1-2 спицы придется выломать :)))
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение clawham »

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

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

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

а по поводу выключения я вообще ничего не понял!
какой смысл оставлять работать схему но выключать дисплей? микроконтроллер все показания запоминает, стартует за пол секунды...в чём хитрый смысл гасить экран? Ведь оно кушает 50-100 миллиампер....питайте его от замка зажигания и делов-то...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Аватара пользователя
artemvinihenko
Открыл глаза
Сообщения: 78
Зарегистрирован: Пт апр 30, 2010 16:09:16
Откуда: Мариуполь (украина)
Контактная информация:

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение artemvinihenko »

А правильна ли эта формула?
V=(F*1000)/L
где F-частота импульсов с датчика(геркона)...а L-длина окружности в мм.
чтото меня терзают смутные сомнения что что в ней нетак....
AVR FOR CИ РУЛИТ)))
m210
Прорезались зубы
Сообщения: 218
Зарегистрирован: Сб окт 02, 2010 19:06:46
Откуда: Красногорск

Re: Цифровой спидометр-одометр на ЖКИ и ATmega8

Сообщение m210 »

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

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

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

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

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

Вернуться в «AVR»