- Лоботрясы

Поиск
Перейти к контенту

Главное меню:

Статьи по AVR

Читать в Яндекс.Подписках



     Электронный тахометр с автоматическим изменением диапазона измерения
Просмотров: 3242
     Этот приборчик я собрал ещё в далёком 2008-м году. Тогда, по рабочей необходимости (естественно – стал бы я его делать для своего удовольствия?!) необходимо было выводить частоту вращения асинхронного двигателя от показаний тахогенератора типа ТМГ-30. Ничего сложного, скажете вы – берёшь стрелочный винтаж типа М325 или М151, и дело в шляпе! Но именно в тот момент их под рукой у меня не оказалось, да и их цена деления в 50 об/мин не особо радовала.
     Его светлость – тахогенератор ТМГ-30.
Поэтому, спустя пару ночных бдений, был порождён на свет такой вот бесхитростный приборчик.
     Тахометр выполнен на микроконтроллере Atmega8 семейства AVR и алфавитно-символьном ЖКИ типа WH1602. Заранее защищаюсь от возмущённых нападков по-поводу выбора такого мощного камня для такой небольшой задачи – идти покупать подходящий контроллер было лень, взял тот, который нашёл в закромах, но ничто не мешает при необходимости переделать код под подходящий контроллер :-)
     Тахометр обеспечивает измерение частоты вращения в четырёх диапазонах: 0-1000 об/мин; 0-2000 об/мин; 0-3000 об/мин и 0-4000 об/мин. Наличие меньших диапазонов позволяет уменьшить погрешность измерения, т.е. увеличить точность показаний. Изменение диапазонов измерений происходит автоматически в зависимости от величины частоты вращения. При необходимости, нажав на кнопочку, можно перейти в режим отображения угловой скорости (рад/с).
     Схема тахометра:
     Тахометр имеет четыре делителя напряжения (R1-R8), на которые подаётся сигнал с тахогенератора. С выходов каждого делителя потенциал подаётся на один из четырёх входов АЦП микроконтроллера. Каждый вход АЦП МК защищён от превышения напряжения стабилитроном на 5,1 В. В процессе работы тахометра, в зависимости от того, какой установлен диапазон измерения, работает только один соответствующий вход АЦП, устанавливаемый, естественно, программно.
     На практике питается сие чудо инженерной мысли от 12 В трансформаторного адаптера.
Преимущество цифрового прибора над существующими аналоговыми заключается в большей точности измерения и гибкости, благодаря которой программным способом возможно изменить диапазон измерения или откорректировать точность показаний в соответствии с параметрами определенного тахогенератора. Единственный минус такой реализации – это неинформативность показаний прибора в динамике, когда быстро меняющиеся показания затрудняют определение частоты вращения, чем не грешат стрелочные приборы.
Работу своего девайся я настраивал под тахогенератор с крутизной выходного напряжения 57,5 мВ/об/мин (есть ещё и с 115 мВ/об/мин и 30 мВ/об/мин). Поэтому, ели у вас другой его тип, найдите в исходнике строку (ниже) и пропишите своё значение в мВ/об/мин
#define GRAD_VOLT   57.5F
     Также может понадобиться смена коэффициента деления резистивных делителей, тогда своё значение нужно будет прописать в строчках
//Коэффициент деления резистивных делителей
#define DEVIDER_1   11.0
#define DEVIDER_2   23.0
#define DEVIDER_3   35.0
#define DEVIDER_4   48.0
     В программе, для стабильного (не дрожащего) вывода измеренной скорости на дисплей, сначала берётся усредненное значение 8-ми измерений аналогового сигнала, а потом, результаты 40 циклов таких измерений подвергаются обработке медианного фильтра (измеренные значения сортируются по убыванию, и в качестве результата берётся среднее значение из этого списка). В итоге, результат отображения полезной информации – более-менее приемлемый для созерцания.
     Необходимая конфигурация фьюзов микроконтроллера:
Печатной платы я не делал, т.к. всё монтировалось на монтажной плате, да и элементов-то – кот наплакал!
Для желающих побаловаться с кодом – в архиве присутствует рабочая симуляция, выполненная в ISIS Proteus.
     Скачать:
Исходник проекта в CVAVR
Файл-прошивка

Проект для симуляции в Proteus 

Опубликовано 04.10.2014
© Igoryosha, 2014


 
 
Назад к содержимому | Назад к главному меню