Страница 1 из 1
как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 07:39:28
ua3usy
делаю что то типа велокомпьютера, дисплей взял от сименса с55, контроллер мега 8, пишу в CVAVR. на данный момент сделал одомер который считает дневной и суточный прбеги выводит на дисплей, сохраняет в память. вообще это справился. но так как у меня с программированием туго, немогу придумать как мерять частоту.
прошу написать примерчик как это меряется, знаю что таймер надо как то использывать но вот пока с ним работать не умею. сам тут уже разобратся не могу.
заранее спасибо
Re: как сдлеать измеритель (скорости спидометр)
Добавлено: Вт июн 01, 2010 07:44:12
GP1
тут есть два пути:
1. измерять частоту
2. измерять период
оба метода абсолютно равнозначны
примерчик бы накидал но у меня с Си проблема

Re: как сдлеать измеритель (скорости спидометр)
Добавлено: Вт июн 01, 2010 07:49:59
ua3usy
GP1 писал(а):тут есть два пути:
1. измерять частоту
2. измерять период
оба метода абсолютно равнозначны
примерчик бы накидал но у меня с Си проблема

ну да, я в принципе знаю как измеряется частоты, тока вот программно выразить неумею
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 08:09:16
Кашпо
если ты считаешь дневной и суточный пробеги - значит как-то отмеряешь время. т.е. где-то внутри контроллера "тикают" твои секунды (или не секунды, ну в общем какие-то подобные интервалы). ну вот и смотри сколько метров намотал одометр между двумя тиками (или между 10, 100, 1000 тиками, если твои "тики" очень быстрые)
посути твой суточный одометр это спидометр который показывает скорость в км/сут

Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 08:18:36
ua3usy
Кашпо писал(а):если ты считаешь дневной и суточный пробеги - значит как-то отмеряешь время. т.е. где-то внутри контроллера "тикают" твои секунды (или не секунды, ну в общем какие-то подобные интервалы). ну вот и смотри сколько метров намотал одометр между двумя тиками (или между 10, 100, 1000 тиками, если твои "тики" очень быстрые)
посути твой суточный одометр это спидометр который показывает скорость в км/сут

несовсем так
суточный или дневной это как на машине, просто счётчик обнуляемый кнопкой, напимер удобно мерять сколько проехал от заправки до заправки.. у меня никакова времяизмерителя нету. с ним то какраз самоя большая и проблема.
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 08:30:15
GP1
в таймере Т1 есть вход ICP организуется прерывание, скажем по нарастающему фронту, а сам счетчик заполняем тактовой частотой, т.е. между двымя импульсами получим некоторое число в TCNT1 которое будет пропорционально скорости.а дальше чистая математика.
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 08:37:02
ua3usy
GP1 писал(а):в таймере Т1 есть вход ICP организуется прерывание, скажем по нарастающему фронту, а сам счетчик заполняем тактовой частотой, т.е. между двымя импульсами получим некоторое число в TCNT1 которое будет пропорционально скорости.а дальше чистая математика.
спасибо но мне нужен именно пример. по аналогии яб сделал а вот написать по условию... извините но туповат я пока в этом
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 08:56:59
Кашпо
CVAVR в мастере генерации проекта можно задать использование таймера. при этом мастер сам вам в коде нарисует процедурку, которая автоматически будет срабатывать каждый раз когда таймер переполнится. вот вам и отсчёт времени.
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 13:08:38
ua3usy
примерчик бы.....там же всего несколько строк, народ помогите!!! я сам всёравно не соображу
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 16:15:22
shtorm
один из вариантов:
считаем сколько метров делает велосипед за 1 "тик" датчика, допустим 1м(для наглядности)
далее выставляем ногу int0 (внешнее прерывание) на срабатывание по нарастающему фронту (Rising Edge) ну или по спаду смотря как у вас устроен датчик. Далее на нужен таймер, допустим 1 прерывание в пол секунды, к примеру T1=125,000kHz по compare A match=F424(Dec=62500) теперь в теле "внешнего прерывания" будет инкремент переменной (i++), а в теле прерывания счетчика расчет скорости и обнуление переменной для следующих вычислений:
Код: Выделить всё
interrupt [EXT_INT0] void ext_int0_isr(void)
{
i++;
}
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
TCNT1H=0x00;
TCNT1L=0x00;
speed=//i*2 - м в 1 сек *3600 - м за 1 час /1000 - км за 1 час
i=0;
}
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 17:03:15
ua3usy
воооот, спасибо большое, пока не очень понял что тут написано, но теперь буду разибратся.... ещё раз спасибо!!!
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Вт июн 01, 2010 22:20:56
Аlex
Вот, мой первый проект для АВР. Реализовано 2 ШИМа и измерение 2-ух частот. На всё потрачено 2 внешних прерывания и 1 таймер. CVAVR.
Посмотри, возможно чем поможет

Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Ср июн 02, 2010 07:19:04
ua3usy
очень хороший примерчик, и что самое главное хорошо откоментрован
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Пт июн 04, 2010 03:00:34
TORETTO
Привет всем, задумал тут я сделать бортовик для авто-мото на LCD от мобильника. Нашел что-то похожее на LCD6610
http://www.ivica-novakovic.from.hr/Moto ... cd-eng.htm только вот хотелось, чтоб экран показывал скорость транспорта и считал пройденный путь. Подскажите как сделать и прошить, я думаю, много людей заинтересуется этим девайсом.
Re: как сдлеать измеритель (скорости спидометр)
Добавлено: Пт июн 04, 2010 12:16:09
Goodefine
GP1 писал(а):тут есть два пути:
1. измерять частоту
2. измерять период
оба метода абсолютно равнозначны...
Далеко не равнозначны... Подумайте о границах применимости двух методов...
Re: как сдлеать измеритель скорости (спидометр)
Добавлено: Пт июн 04, 2010 12:36:35
ua3usy
Народ, я так и не разобрался... кто мне поможет в аське накалякать кусочек кода??? Научите, я легкообучаем.. но вот сам разобратся не всегда могу .373044127, заранее спасибо