Если с АВО-метрами (Ампер-Вольт-Ом-метр) все было достаточно просто, то с измерением частоты в прошлом веке было немного сложнее. Частотомеры представляли собой большие и дорогие устройства. Далеко не у каждого радиолюбителя было такое устройство в домашней лаборатории.
Но у нас есть мощь 16-мегагерцевого процессора, которая позволит заменить несколько килограмм железа прошлого века.
Для самой простой реализации частотомера нам понадобится любой вариант Arduino и любой индикатор, способный отображать цифры. Я взял для демонстрации Arduino Nano и 16х02 LCD, подключаемый по шине I2C, для экономии используемых контактов. На экране видна частота наводимого на входе напряжения.
Благодаря написанной еще 5 лет назад библиотеке FreqCount, мы можем реализовывать на Arduino системы измерения частоты. Код такой программы не отличается сложностью.
Собственно для измерения частоты использовано всего 2 команды. А максимально измеряемая частота зависит от частоты процессора и равняется ее половине. Так, для платы Arduino, с установленным кварцевым резонатором на 16 МГц, максимально измеряемая частота равняется 8 МГц. В случае работы от внутреннего тактового генератора (8 МГц), измеряемая частота снижается. Но согласно паспорта от производителя, штатной частотой для Atmega328 является так же и 20 МГц, а некоторые умельцы разгоняют микроконтроллер и до 27 МГц.
Однако у данной библиотеки есть одно ограничение, которое необходимо учитывать при проектировании устройств с ее использованием. Подсчет происходит за счет прерывания TIMER1, которое аппаратно привязано к цифровому контакту D5. К сожалению переназначить данный контакт никак не получится, как и реализовать подобный алгоритм с использованием других двух аппаратных таймеров микропроцессора.
Для проверки работы данного устройства был использован DDS-генератор из китайского набора для сборки. Он вполне справляется с выдачей сигналов различной формы. Вот мы и посмотрим как наш частотомер сможет их распознать.
Первым был синусоидальный сигнал. Разные частоты определялись довольно таки точно.
А дальше смотрим, будет ли на какой либо из форм сигнала, отличной от синусоиды, вести себя прибор как-то не так.
Треугольник.
Пила.
Меандр.
Так как наш DDS работает на частотах только до 65 кГц, у генератора есть отдельный выход ВЧ сигнала. С распознаванием которого наш частотомер справился отлично.
При измерении последняя цифра может иногда меняться, это связано с имеющей место быть некоторой погрешностью измерений. Но основное время измеряемая величина отображается стабильно.
Итог: Данная библиотека вполне может послужить основой для частотомера радиолюбителя. А если решить вопрос с реализацией “правильных” входных цепей (входной усилитель, делитель частоты и прочее), то может получится достойный измерительный прибор.