реклама на сайте
подробности

 
 
> Тахометр на AVR, тонкости алгоритма
ivainc1789
сообщение Sep 1 2005, 18:22
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Есть необходимость сделать автомобильный тахометр 300...6000 об/мин. Для этого в программе организован буфер unsigned int TaxBuf[BufSize], написана п/программы взятия отсчета, сдвига буфера, вычисления результата как среднего арифметического содержимого буфера. Т. е. наблюдаются последние BufSize отсчетов. Проблема в том, что данные о текущей частоте вращения необходимо выводить на LCD с "точностью" до +-1 об/мин. Понятно, что на самом деле такая точность не нужна, а отображать на дисплее практически невозможно - цифры "скачут", считать показания затруднительно.
Хотелось бы написать алгоритм аналога стрелки обычного микроамперметра стрелочных тахометров. При этом неравномерность вращения коленвала на холостых оборотах в соседних отсчетах может достигать +-50 об/мин.
Помогите с идеей такого алгоритма для AVR...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lolikandr
сообщение Sep 7 2005, 14:48
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300



Странно, что вообще есть большие отклонения. С какой точностью измеряется длительность одного оборота?
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Sep 7 2005, 17:14
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(lolikandr @ Sep 7 2005, 17:48)
Странно, что вообще есть большие отклонения. С какой точностью измеряется длительность одного оборота?
*


ATMEGA8, кварц 4MHz, таким образом, N[об.мин]=Const/Timer1value , где
Const = 1875000;
Timer1value - период сигнала датчика Холла в ед. счета, прескалер = 64;

Два варианта - либо в буфер совать готовые предвычисленные отсчеты N, или
отсчеты Timer1value. На вопрос, что правильнее писать в буфер ответить
затрудняюсь, мне кажется это непринципиально, поэтому пишу Timer1value для
исключения потерь на округлении, хотя такая точность наверно все равно не
нужна.

Далее надо обработать буфер с Timer1value отсчетами, найти приемлемое
значение для целей индикации на LCD в формате "ХХХХ об/мин." и вычислить
окончательное N по вышеуказанной формуле.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ivainc1789   Тахометр на AVR   Sep 1 2005, 18:22
- - _sR_   Цитата(ivainc1789 @ Sep 1 2005, 21:22)Хотелос...   Sep 1 2005, 20:16
|- - yung   Стрелочный амперметр представляет собой интегратор...   Sep 1 2005, 20:52
- - CDT   В программе Sonic Foundry Sound Forge есть линейны...   Sep 2 2005, 03:58
- - BVU   Да просто вычисляйте среднее значение своих измере...   Sep 2 2005, 05:16
|- - bzx   BVU сделал вполне уместное замечание. Надо увеличи...   Sep 2 2005, 07:33
|- - ivainc1789   Цитата(BVU @ Sep 2 2005, 08:16)Да просто вычи...   Sep 2 2005, 15:30
|- - yung   Медианный фильтр. Смысл - все элементы массива упо...   Sep 2 2005, 20:51
- - lolikandr   Для того, чтобы получить фиксированную величину не...   Sep 5 2005, 11:21
|- - ivainc1789   После серии экспериментов удалось прийти к следующ...   Sep 5 2005, 19:07
|- - BVU   Цитата(ivainc1789 @ Sep 5 2005, 23:07)4. Хотя...   Sep 7 2005, 15:00
|- - ivainc1789   Индикация - абсолютно отдельный постпроцесс. Вед...   Sep 7 2005, 17:33
- - Айский   Все-таки читаемость аналоговых индикаторов гораздо...   Jun 24 2006, 18:22
- - white.wind   А может быть использовать пишалку или светодид миг...   Jun 27 2006, 09:20
- - vooon   Кстати зря отметаете стрелочный индикатор только с...   Jun 28 2006, 21:05


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01392 секунд с 7
ELECTRONIX ©2004-2016