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

 
 
> Тахометр на 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
Ответов
BVU
сообщение Sep 2 2005, 05:16
Сообщение #2


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

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Да просто вычисляйте среднее значение своих измерений и ничего мудрить не надо. Я делал такие вещи, на практике достаточно брать пять значений что бы получить хорошее сглаживание:
Aср = (a'1 + a'2 + a'3 + a'4 + a'5) / 5.
А интервал показаний установите кратный двум или пяти, тогда и цыфорки скакать не будут!
Я так понял, что Вы пересчитываете импульсы с датчика Холла перемноженного на некий коэффициент?


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
bzx
сообщение Sep 2 2005, 07:33
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



BVU сделал вполне уместное замечание. Надо увеличить интервал показаний между измерениями.

По поводу сглаживания показаний. В реализации проще будет БИХ фильтр первого порядка. АЧХ что у этого фильтра, что у сглаживания по 5ти отсчётам, с небольшой натяжкой, одинаковые.

Yn = Yn-1 + N*(Xn - Yn-1)
где N положительное число, меньшее 1, определяющее частоту среза фильтра (степень сглаживания). Его лучше брать кратным степени 2, N=2^(-m), т.е. эту операцию можно реализовать в МК простым сдвигом

Код
////////////////////////////////////////////////////////////////////////
//
// Альфа фильтр
// БИХ фильтр первого порядка
//
void alfa(unsigned int *hXn, unsigned int *hYn, unsigned int *hYn1)
{
    *hYn = (unsigned int)((signed int)*hYn1+(((signed int)*hXn-(signed int)*hYn1)>>1));
    *hYn1 = *hYn;
}


--------------------
Для связи email: info собака qbit.su
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
|- - 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
- - lolikandr   Странно, что вообще есть большие отклонения. С как...   Sep 7 2005, 14:48
|- - ivainc1789   Цитата(lolikandr @ Sep 7 2005, 17:48)Странно,...   Sep 7 2005, 17:14
- - Айский   Все-таки читаемость аналоговых индикаторов гораздо...   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 Текстовая версия Сейчас: 24th July 2025 - 04:47
Рейтинг@Mail.ru


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