Начнем с математики.
Единицей измерения скорости вращения (частоты) крыльчатки вентилятора обычно являются обороты в минуту (об/мин). Что это значит для нас с практической точки зрения? Это значит, что нужно взять секундомер и в течение одной минуты считать обороты. Очень долго и непрактично.
Чтобы ускорить процесс измерения, можно посчитать количество оборотов за секунду, а затем полученное число умножить на 60 - должны получить то же самое, но время измерения уже заметно меньше. Однако есть некоторая проблема, связанная с точностью измерения. Суть проблемы вот в чем:
- предположим, что вентилятора вращается со скоростью 1754 об/мин.;
- если мы считали обороты в течение минуты, то такое число и получим в результате измерения;
- если мы считали обороты в течение секунды, то получим только 1740 об/мин.
Куда потерялись еще 14 оборотов?
Эта потеря связана с ошибкой округления - мы посчитали количество полных оборотов в секунду (целое число), а на самом деле крыльчатка вентилятора за секунду повернулась 29,23333333 раз. Вот эти отброшенные 0,23333333 об/сек и дали ошибку в 14 об/мин.
Можно ли повысить точность измерения? При данном, укороченном цикле измерения нельзя - поскольку у нас нет возможности измерять доли оборота. Конечно, те, кто внимательно читал про устройство вентилятора тут же мне возразят, что можно измерять не целые обороты, а половинки, поскольку таходатчик вентилятора выдает сигнал дважды за оборот. И, конечно, будут правы. Но...
(1754*2)/60 = 58.46666666,
т.е. за секунду мы зафиксируем 58 импульсов таходатчика, тогда измеренных оборотов получим
58*30 = 1740.
Как видите, то, что таходатчик выдает два импульса за оборот крыльчатки, нам не слишком помогло повысить точность измерения. Попробуем подойти к решению проблемы точности измерений с другой стороны. Вспомним, что частота и период связаны простым соотношением:
здесь F-частота, T-период.
Если измерять не частоту (как мы это делали в примерах выше), а период следования импульсов таходатчика, можно существенно повысить точность измерения, при этом время измерения будет достаточно малым.
Как можно измерить период? Для этого нужно:
- использовать дополнительный генератор стабильного импульсного сигнала (измерительный генератор), период этого сигнала должен быть намного меньше периода измеряемого сигнала таходатчика;
- сформировать из сигнала таходатчика измерительный импульс, равный по длительности периоду вращения крыльчатки (два периода сигнала таходатчика);
- посчитать, сколько импульсов от измерительного генератора поступит за время измерительного импульса (период вращения крыльчатки).
Теперь можно вычислить скорость вращения крыльчатки вентилятора:
F=1/(N*tи) (об/сек.), |
F=60/(N*tи) (об/мин.) |
здесь tи - период следования импульсов измерительного генератора в секундах, N - количество импульсов, поступивших от измерительного генератора за время измерительного импульса (в секундах), равного периоду вращения крыльчатки.
Посмотрим расчет на примере. Пусть время измерительного импульса (период вращения крыльчатки вентилятора) составляет 0,0342 с, а период следования импульсов измерительного генератора 0,00001 с (10 мкс), тогда за период вращения крыльчатки мы зафиксируем:
N=0,0342/0,00001=3420 (импульсов), и скорость вращения будет F=60/(3420*0,00001)=1754 (об/мин.)
что и требовалось. Конечно, все эти вычисления выполнить на простых логических микросхемах практически невозможно, поэтому измеритель сделаем на микроконтроллере.
Рисуем схему измерителя скорости вращения вентилятора:
|
Рис.1 Схема измерителя скорости вращения вентилятора |
Как видите, схема получилась очень простой.
Для удешевления и упрощения схемы использовано включение микроконтроллера с использованием внутреннего генератора 4 МГц.
Сигнал с таходатчика вентилятора поступает на вход микроконтроллера, а формирование измерительного интервала, импульсов эталонной частоты, все вычисления производятся программно. Показания выводятся на девятиразрядный цифровой ЖКИ индикатор, передача информации в индикатор производится в последовательном коде. Конденсатор С1 служит для снижения возможных импульсных помех в сигнале таходатчика.
Питание вентилятора на схеме показано от +12 В компьютерного блока питания, однако нет никаких ограничений на питание его от другого источника, например от реобаса. Учтите только, что при низкой скорости вращения крыльчатки сигнал таходатчика может стать нестабильным.
Диапазон измеряемых скоростей вращения крыльчатки вентилятора составляет 240-9999 об/мин., при условии, что импульсы тахосигнала формируются дважды за один оборот крыльчатки.
Измерение скорости производится каждые 2 секунды.
В начале экспериментов неожиданно обнаружилось, что вентилятор, вместо положенных 2200-2300 об/мин., вращается со скоростью 2500 об/мин. С помощью осциллографа был замерен период сигнала таходатчика, произведены вычисления, и обнаружено что врет измеритель. Проверка алгоритма вычислений и констант ничего не дала, осталось только предположить, что частота внутреннего генератора существенно отличается от обещанных 4 МГц. Замена микроконтроллера на другой экземпляр привела к желаемому результату - показания стали соответствовать истине. Видимо, в предыдущем микроконтроллере в процессе одной из перепрошивок была случайно стерта константа, отвечающая за калиброванное значение частоты генератора. Можно, конечно, ее восстановить, но лень.
Если не хотите столкнуться с такой же ситуацией, схему можно немного изменить - добавить кварцевый резонатор и пару конденсаторов, а в прошивке микроконтроллера нужно изменить конфигурацию генератора.
Вариант схемы с кварцевым резонатором приведен ниже:
|
Рис.2 Схема измерителя скорости вращения вентилятора с кварцевым резонатором |
Можно также попробовать использовать вместо кварцевого резонатора керамический резонатор на 4 МГц, встречающийся в 3,5" FDD (я сам не пробовал), тогда конденаторы С4, С5 не нужны. Располагается он обычно недалеко от интерфейсного разъема FDD, выглядит как синяя "карамелька" с тремя выводами. Крайние выводы подключаются к микроконтроллеру (на место кварцевого резонатора), а средний - к общему проводу (точка соединения конденсаторов С4, С5 на схеме рис.2)
Печатной платы я не делал, поскольку практической ценности для меня этот измеритель не представляет - это просто кусок программы из моего реобаса, перенесенный на другой микроконтроллер. Поскольку схема очень простая, я думаю, не cоставит сложности спаять ее на макетной плате или нарисовать печатную плату самостоятельно.
|
Рис.3 Так выглядит мой макет измерителя частоты вращения |
И, напоследок, прошивки для мироконтроллеров:
Что еще можно сделать:
- увеличить число каналов измерения скорости вентилятора - свободных выводов микроконтроллера предостаточно,
- добавить схему регулирования напряжения питания вентиляторов, желательно с цифровым ШИМ управлением.
Получится дешевый продвинутый реобас.
Если не получится найти использованный мной ЖКИ индикатор (я покупал его в фирме "Гамма Санкт-Петербург", есть так же в "Тритоне", Москва), можно без изменения прошивки попробовать индикатор выполнить на светодиодных семисегментных индикаторах и сдвиговых регистрах типа 74HC164 - но схема потеряет свою простоту и будет заметно дороже. Индикаторы нужно взять с общим катодом.
|
Рис.4 Схема светодиодного индикатора |
Обозначение сегментов индикатора приведено на рис.5. Сегмент P (точка) не используется.
|
Рис.5 Обозначение сегментов индикатора |
Внимание: работу индикатора на светодиодах я на практике не проверял, оставляю это на энтузиазм желающих.
Успехов!
|