Страница 1 из 1

организация тахометра

Добавлено: Ср мар 19, 2014 12:23:47
kelod
объясните как реализовать тахометр на atmega8, как я понимаю нужно использовать два прерывания: таймер и подсчёт импульсов, дальше вижу два пути:
1) измерять количество импульсов за 1 секунду
2) измерять время между двумя импульсами

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

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

либо может быть есть какой то третий способ?

Re: организация тахометра

Добавлено: Ср мар 19, 2014 12:42:50
Jack_A
Ну почему же обязательно за 1с? Можно за 500, 250 и т.д. мс
А третий способ - пожалуйста: высокие обороты считайте по первому способу, низкие по второму.
Только не повторяйте ошибки, которую допускали мои коллеги на старой работе, тоже делая лет 15 тому назад тахометр.
Все преобразования, вычисления, индикацию не пихайте в прерывания, а выполняйте в главном цикле. В прерываниях - только инкременты счетчиков и выставление флагов. А то будет : "На 10000 оборотов показывает 9500. Надо вводить поправки". Я им говорю : "Вы что, уху съели? В цифровой технике - поправки ?"
Кажется, об этом уже было...

Re: организация тахометра

Добавлено: Ср мар 19, 2014 12:54:43
akl
kelod писал(а):либо может быть есть какой то третий способ?
Конечно есть.

Re: организация тахометра

Добавлено: Чт мар 20, 2014 14:04:32
DJ_Kiridza
Я делал тахометр так
http://habrahabr.ru/post/153125/
Считывал показания раз 1 раз в секунду.

Re: организация тахометра

Добавлено: Чт мар 20, 2014 14:29:54
kelod
DJ_Kiridza писал(а): Считывал показания раз 1 раз в секунду.
за ссылку конечно спасибо, но если для станка допустим обновлять показания раз в секунду, то для автомобиля это не приемлимо, слишком в широких педелах меняется там частота и к тому времени пока тахометр додумается какая там частота, она уже будет не та, поэтому принял решение измерять не прямо частоту, а период колебаний, т.е. время между началом импульсов и потом расчитывать частоту, это хоть и нагружает больше контроллер, но зато даёт белее менее моментальные сведения