Ниже представлено описание частотомера, способного измерять частоты до 1 МГц, собранного на базе платны Arduino UNO. Прежде всего стоит напомнить, что Arduino UNO – это компактная печатная плата, на которой размещается микроконтроллер ATMEGA328, а также вся необходимая «обвязка», включающая USB-интерфейс для программирования и источник питания.
Диапазон стоимости Arduino UNO колеблется от примерно 200 до 1000 рублей, что зависит от продавца. В основном, наиболее доступное предложение можно найти на радиорынках либо у китайских поставщиков в интернете, в частности на платформе Aliexpress. Подробное описание платы Arduino UNO, а также инструкции по её программированию и подключению к ПК приведены в разделе Л.1. Поэтому, если вы новичок, обязательно ознакомьтесь с этой статьёй перед началом работы.
Для сборки простого частотомера также потребуется минимальный набор дополнительных компонентов, таких как светодиоды, делитель напряжения или схема преобразования сигнала, и возможно, таймер или внешнее устройство для точного подсчёта импульсов. Важно помнить, что при измерении высоких частот (более 100 кГц) необходимо учитывать ограничения Arduino по входному сигналу и возможные искажения. В таких случаях рекомендуется использовать внешние схемы усиления или состояния преобразователей. Также важно правильно калибровать прибор для получения точных результатов, что достигается использованием эталонных сигналов или измерительных систем.
Принципиальная схема

Конструкция частотомера приведена на рисунке 1. Из схемы видно, что к цифровым портам D2-D7 Arduino UNO подключен модуль жидкокристаллического дисплея типа 1602А.
Входной сигнал подается через усилитель-формирователь, выполненный на транзисторе VT1 и микросхеме D1, подключенной к порту D8. Источник питания для усилителя и ЖК-индикатора обеспечивается стабилизатором 5V, встроенным в плату Arduino UNO.
Рис. 1. Основная схема частотомера с измерением до 1 МГц на базе Arduino UNO.
Обратимся к ЖК-индикатору. Он представляет собой плату, на которой размещена сама жидкокристаллическая матрица и схема управления, выполненная на двух микросхемах без корпуса. Используемый дисплей модели 1602А базируется на контроллере HD44780. Цифра 1602 означает, что он отображает две строки по 16 символов каждая.
Данный модуль приобретается на крупнейших торговых площадках вроде Aliexpress, где стоимость начинается примерно от 81 рубля. Питание поступает через вывод 2 и общий минус — через выводы 1 и 3. Поскольку в данном случае предполагается лишь передача данных, линию чтения-записи (RW) соединяют с нулём (заземлением). Передача информации идет по выводам 11–14, в то время как вывoды 7–10 задействованы не будут.
Для подсветки дисплея используются выводы 15 и 16, на которые подается 5V. Управление стрелками осуществляется посредством портов D2–D7, выбранных произвольно, хотя другие порты также возможны. Проводка выполнена, и дисплей подключен к плате.
Для функционирования ЖК-индикатора необходима загрузка специальной управляющей программы. Ее обычно реализуют через специальные библиотеки, называемые «библиотеками», в ардуиновских комплектующих они представлены в большом ассортименте.
Программа

Например, для работы с дисплеем HD44780 применяется библиотека LiquidCrystal. В коде программы для нашего частотомера эта библиотека обязательно подключается командой:
Эта строка загружает необходимую библиотеку в контроллер. Далее необходимо определить номера портов Arduino UNO, которые будут взаимодействовать с дисплеем. В конкретном случае выбраны порты D2–D7, что отражается в строке:
LiquidCrystal led(2, 3, 4, 5, 6, 7);
После этого программа переходит к основному функционированию частотомера.
В коде используется встроенная функция pulseln, которая дается перевести как «измерение сигнала». Она позволяет определить длительность положительного или отрицательного перепада входного импульса в микросекундах. Таким образом, измерение частоты здесь основано на предварительном вычислении периода входного сигнала.
Поскольку в реальности длительность положительной и отрицательной половин волн могут отличаться, чтобы определить период, необходимо сложить времена обеих половин.
В программном коде эти показатели обозначены как Htime (длина положительного полупериода), Ltime (длина отрицательного), а общий период — Ttime.
Измерение происходит в строках программного кода, далее по формуле вычисляется значение полного периода:
При этом, зная, что период выражен в микросекундах, рассчитывается частота следующим образом:
Результат выводится на нижнюю строку дисплея и отображается в миллисекундах. Информация о значении период enters в строку дисплея, а также сама величина выводится на экран, что позволяет пользователю видеть текущие показания.
По окончании обновления данных в дисплее происходит задержка в одну секунду (delay(1000)), после чего цикл повторяется. В результате прибор определяет частоту по предварительно измеренному периоду, а не по количеству импульсов за фиксированный промежуток времени.
Длительность паузы между сменой отображаемых значений можно регулировать, изменяя параметр в функции delay(). Например, при delay(2000), показания будут обновляться каждые две секунды. Можно выбрать иные значения, однако очень короткое время смены (меньше 1 секунды) усложняет восприятие информации, а слишком большое — задерживает обновление данных. На мой взгляд, оптимально — около одной секунды.
Что касается иных аспектов программы, то, например, входной порт 8 на плате Arduino назначается для приема измеряемых импульсов. Верхняя строка дисплея, в которой отображается текст «frequency», обычно используется для заголовка, а нижняя — для числовых значений.
Обратите внимание, что китайские ЖК-индикаторы не поддерживают кириллицу, поэтому писать нужно латинскими символами. Попытка вывести, например, слово «частота», приведет к отображению иероглифов или ошибок. Также, если на входе в порт D8 не поступает сигнал, на дисплее появляется сообщение «infhz». Для увеличения быстродействия или экономии ресурса питания можно изменить время отображения результата, редактируя задержку в программе.
Точность измерений очень высокая, поскольку тактовая частота микроконтроллера стабилизирована кварцевым резонатором. Однако, поскольку устройство занимается измерением периода, а не частоты напрямую, в случае наличия сильных искажений входного сигнала показатели могут колебаться.
Рассчитанный результат подходит для определения входной частоты, но если нужно получать значения в иных единицах — например, оборотах в минуту, метрах или километрах в час — можно внести соответствующие изменения в формулу расчета. Чем заменить, например, число 1000000 в коде, а также изменить единицу измерения, отображаемую на дисплее, — всё зависит от конкретных целей использования прибора.
Питание частотомера допустимо от диапазона 7—12 В. Оно подключается через разъем на плате Arduino UNO. В случае нестабильного питания рекомендуется использовать источники с хорошей фильтрацией (минимум пульсаций). Вариант питания через USB возможен, только если напряжение стабилизировано и фильтрованно.
Схема входного усилителя включает транзистор VT1 и триггер Шмитта, выполненный на микросхеме D1. Замена микросхем К561ЛЕ5 или К561ЛА7 возможна на любые CMOS-инверторы, например, с ?3 инверторами, при этом схема должна быть модифицирована соответствующим образом.
При использовании батарей типа «Крона» (например, 9 В) для экономии энергии подсветку ЖК-индикатора можно отключить, вставив переключатель в цепь питания подсветки. В случае, если подсветка не нужна вообще, её отключают полностью, не подключая выводы 15 и 16.
Для стационарной работы, при питании от сети, подключение подсветки рекомендуется оставить постоянным, как показано на схеме.
Создание программы для этого устройства не обязательно включает ввод комментариев или пояснений после знака « ; », так как эти строки не влияют на работу кода и служат лишь для документации.
Актуальные конструкции и идеи взяты из работы Каравкина В. РК-12-16, а также из статьи Каравкина В. о ёлочной мигалке на Arduino, опубликованной в №11-2016.
Настройка и подключение схемы

Для измерения частоты сигналов в диапазоне до 1 МГц потребуется собирать схему согласно конкретным компонентам и их характеристикам. В основе схемы лежит микроконтроллер, к которому подключены входные сигналы, тактируемый кварцевым резонатором. Важно правильно подготовить источник сигнала и предусмотреть фильтрацию шума.
Первым шагом следует разделить входной сигнал с помощью делителя или делителя делят частоты для уменьшения входных уровней. Используйте делитель на основе логических элементов или резисторно-каскадных схем, чтобы сигналы не превышали допустимых значений входа микросхемы.
| Компонент | Назначение | Рекомендации по подключению |
|---|---|---|
| Кварцевый резонатор | Обеспечивает тактирование микроконтроллера | |
| Делитель сигнала | Снижает частоту входного сигнала | Применяется на основе логических схем или поддельных делителей, вход на схему подается через входной резистор |
| Подстроечный резистор | Настройка чувствительности входа | Подключается в цепь входного сигнала после делителя для регулировки уровня сигнала до допустимого уровня входа устройство |
| Питание | Обеспечивает работу схемы | Используйте блок питания 5 В, избегая пиковых напряжений и коротких замыканий |
Обеспечьте надежное соединение всех элементов, избегайте скруток и плохих контактов. Для проверки правильной фиксации проводов используйте мультиметр, чтобы убедиться в отсутствии коротких замыканий. После сборки выполните настройку чувствительности и уровней сигнала, подключив схему к тестовому генератору или источнику импульсов.
Обработка входных сигналов и фильтрация

Для точного измерения частотных характеристик необходимо предусмотреть этапы предварительной обработки входных импульсов. Первичная цепь должна обеспечить преодоление высокочастотных шумов и помех, возникающих в процессе передачи сигнала.
Рекомендуется использовать RC-фильтры с низкой добротностью, подбирая значения сопротивлений и конденсаторов так, чтобы подавить спектр помех выше 1 МГц. Например, цепь фильтра с сопротивлением 1 кОм и конденсатором 100 пФ обеспечивает сглаживание помех на диапазоне до 10 МГц, сохраняя при этом полезный сигнал. Для более низких частот рекомендуется увеличить ёмкость и сопротивление, чтобы снизить пропускную способность и устранить высокочастотные шумы.
Для подавления электромагнитных помех целесообразно вставлять ферритовые кольца или экранировать кабели входа. Также важно минимизировать длину кабелей и обеспечить правильную заземляющую схему для снижения паразитных ёмкостей и индуктивностей.
Очистка сигнала от высокочастотных помех и дрейфа можно выполнять посредством активных фильтров на операционных усилителях. Например, использование фильтра Баттерворта с порядком не менее второго обеспечивает стабильную характеристику пропускания и глубокий спад громкостей за пределами рабочего диапазона.
В случае необходимости исключения переменных шумов, можно внедрить цифровую фильтрацию на программном уровне. Средства обработки данных, такие как скользящая средняя или медианный фильтр, позволяют снизить влияние случайных выбросов и повысить точность измерений при наличии короткосрочных помех.
Обеспечение стабильной обработки входных сигналов напрямую влияет на достоверность результатов измерений и стабильность работы всего измерительного прибора. Поэтому рекомендуются комбинированные подходы к аппаратной фильтрации и программной обработке данных.
Калибровка и точность измерений
Для калибровки рекомендуется выполнить серию измерений при различных известных частотах. В результате построить график зависимости показаний от реальных значений и определить коэффициенты коррекции. Обычно используется линейная аппроксимация, при которой входные значения умножаются на полученный коэффициент или прибавляется смещение.
Точность итоговых показаний определяется следующими факторами:
- Качество тактового генератора измерителя, его стабильность и уровень фазового шума.
- Частота тактового сигнала, используемого для считывания входного сигнала; при более высокой частоте измерений достигается меньшая погрешность, связанная с временными задержками.
- Погрешности в программных расчетах, обусловленные округлением и точностью используемых переменных.
Рекомендуется проводить регулярную проверку калибровки, особенно если устройство подвергается воздействию температурных или электромагнитных воздействий. В случае обнаружения систематической погрешности достаточно скорректировать коэффициенты калибровочной кривой, что существенно повысит стабильность измерений.
Для минимизации ошибок целесообразно использовать экранированные кабели и стабилизировать питание схемы, что снизит влияние внешних помех и флуктуаций напряжения. Также важно учитывать допустимый диапазон измеряемых частот и избегать насыщения входных цепей при сверхвысоких сигналах, что может приводить к искажениям результатов.
Практические советы по эксплуатации устройства

Перед началом работы убедитесь в стабильности питания – использование источник с напряжением 5 В и током не менее 500 мА обеспечит надежную работу схемы.
Температурные условия важны для точности измерений. Оптимальный диапазон температуры составляет от 10 до 35 °C. Выход за эти пределы может привести к систематическим погрешностям.
Настройка частоты рекомендуется проводить при стабильных условиях измеряемого сигнала. Используйте внешний джиттер или стабилизированный генератор для предотвращения флуктуаций.
Калибровка рекомендуется выполнять на заводских частотах с помощью эталонных генераторов или приборов. Регулярно проверяйте корректность измерений, особенно после длительного эксплуатации или изменений в системе питания.
Обработка сигнала следует производить не менее чем на 10 циклах для повышения точности. Увеличение числа измерений помогает исключить случайные погрешности и получить более корректные данные.
Корректное подключение позволяет избежать влияния внешних шумов. Используйте короткие и экранированные провода, избегайте длинных цепей в окружении электромагнитных источников.
Использование переключателей и клемм лучше осуществлять при отключенном питании для предотвращения искрения и возможных повреждений элементов.
Проверка работы производится на известных эталонных сигналах с помощью осциллографа и мультиметра. Это помогает убедиться в правильности функционирования измерительного прибора.
Обслуживание устройства включает регулярную очистку контактов от пыли и коррозии. В случае обнаружения повреждений проводки или элементов, их необходимо заменить до начала эксплуатации.
Запасные части и компоненты рекомендуется хранить в сухом месте, избегая воздействия влаги и высоких температур. При необходимости приобретайте оригинальные детали, чтобы обеспечить точность и долговечность работы системы.
Возможности расширения и модернизации измерителя частоты

Расширение диапазона измерений достигается внедрением внешних делителей частоты и делителей сигналов, что позволяет точно фиксировать более высокочастотные сигналы за счет уменьшения входных частотных значений. Использование дополнительных логических схем или интегральных схем, таких как счетчики с большим разрядом или логические микросхемы деления, обеспечивает увеличение диапазона измерений за счет интеграции в схему.
Для повышения точности результатов рекомендуется применять фазовые или периодические счетчики с внутренней калибровкой. В качестве альтернативы можно добавить внешние схемы стабилизации опорных частот, например, кварцевые резонаторы с высокой стабильностью, что снизит влияние дрейфа и шумов при длительной работе дисплея.
Добавление возможностей автоматической калибровки и коррекции ошибок позволит снизить влияние компонентов с отклонениями и обеспечить стабильность измерений. Для реализации этого потребуется разработка программных алгоритмов, автоматически сравнивающих измеряемые результаты с эталонными частотами, и корректирующих параметры схему в реальном времени.
Интеграция с внешними модулями, такими как GPS-приемники или источники высокого качества опорных частот, расширяет область применения прибора, повышая его точность и надежность в условиях, требующих синхронизации с точными временными стандартами.





