на главную
Карта сайта
English version
Вы читаете:

Частотомер на Arduino pro mini (ATmega 168)

Измерительная техника
9 месяцев назад

Усовершенствование частотомера на Arduino pro mini (ATmega 168)


Предлагаемое усовершенствование частотомера [1] состоит в установке трёх дополнительных кнопок управления и добавлении кода обработки в скетч. Зачем это нужно? Во-первых, для расчёта частоты при использовании ВЧ-щупа с делителем частоты на входе. Во-вторых, для оперативного управления коррекцией частоты без перепрограммирования микроконтроллера (МК). При этом значение коэффициента коррекции будем хранить в его EEPROM.

Это значительно улучшит эксплуатационные характеристики частотомера.

При выборе деталей для ВЧ-щупа с делителем частоты оказалось, что стоимость их может превышать стоимость самого частотомера. Бюджетный вариант можно построить на микросхемах серии SAB6456 [2] или U664 [3], а у них минимальный коэффициент деления равен 64. Естественно, расчёт частоты при этом выполняет МК. Схема ВЧ-щупа приведена на рис. 1, она достаточно широко представлена в Интернете. Его чувствительность в диапазоне 70 МГц...1 ГГц - 10 мВ. В диапазоне 30...70 МГц он также работает, ночувст-вительность ниже. При использовании элементов для поверхностного монтажа плата ВЧ-щупа без труда поместится вместе с экраном в корпусе от маркера.

Схема ВЧ-щупа

Рис. 1. Схема ВЧ-щупа

 

Теперь о доработке самого частотомера. Кнопки подключают между свободными контактами 2, 11, 12 модуля Arduino pro mini и общим проводом. Эти контакты программно подтянуты к плюсовой линии питания (INPUT_PULLUP). Условно обозначим их "М" (контакт 2), "R" (контакт 12) и "L" (контакт 11). У моего частотомера они расположены справа налево. Программный таймер антидребезга для каждой кнопки свой. Он подсчитывает число циклов loop, так как команды millis() и delay() нам не доступны. В нашем случае так делать можно, так как задержка на расчёт частоты и отображение её на дисплее не превышает 15 мс, а длительность антидребезга, задаваемая переменной T_out = 20000, составляет около 350 мс. Она же и задаёт период повтора.

Информация об измеряемой частоте выводится в первой строке LCD-экрана, вторая строка - служебная. На ней отображаются настраиваемые параметры частотомера (пункты меню). Выбираем пункты меню с помощью кнопки "М".

В режиме измерения на второй строке отображено время измерения - "1s" и множитель "х1" (рис. 2). При "х1" ВЧ-щупа-делителя нет.

Рис. 2.

 

В режиме установки коэффициента деления Km кнопками "L" и "R" уменьшают или увеличивают его значение (рис. 3). Максимальное значение Km = 255.

Рис. 3.

 

В режиме установки переменной Kk (коррекция показаний) кнопками "L" и "R" уменьшают или увеличивают её значение, которое может быть в интервале от -32767 до 32767. При этом измерение частоты продолжается (рис. 4).

Рис. 4.

 

При удержании кнопки более 20 тактов измерения значения будут изменяться десятками, ещё через 20 тактов будут изменяться сотнями для ускорения процесса установки. Число тактов задаётся в переменной Vol.

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

При выходе из режима установки Kk, если изменено значение, будет выведен запрос на сохранение изменений в EEPROM save?: L=NO R=OK (рис. 5). При нажатии на кнопку "R" значение сохранится, при нажатии на кнопку "L" или "M" - нет.

Рис. 5.

 

Таким образом, частотомер стал более совершенным устройством с возможностью измерения частоты от 10 Гц до 1 ГГц.

Скетч для Arduino pro mini находится здесь.

Литература

1.Частотомер на Arduino pro mini (ATmega 168). - Радио, 2024, № 1, с. 35, 36.

2.SAB6456 SAB6456T Sensitive 1 GHz divi-de-by-64/divide-by-256 switchable prescaler. - URL: https://datasheet4u.com/datasheet-pdf/NXP/SAB6456/pdf.php?id = 274584 (08.02.24).

3.U664B, U664DS. - URL: https:// clck.ru/38dLnN (08.02.24).

Автор: С. Сидоренко, г. Раменское Московской обл.