Цифровая шкала своими руками

Цифровая шкала своими руками

Этот цифровой частотомер разработан на основе моей старой конструкции Частотомер — цифровая шкала с LCD (ЖКИ). Прототип был изготовлен в далеком 2001 г., с тех пор его повторили и до сих пор используют многие радиолюбители. Несмотря на то, что за прошедшие годы появилось много новых разработок, прибор ничуть не устарел и по совокупности параметров вполне может конкурировать с любым современным частотомером своего класса.

А вернулся я к нему по одной простой причине. Дело в том, что LCD индикатор KO-4B, который я использовал, в настоящее время снят с производства и приобрести его очень сложно. А у меня возникла необходимость изготовить еще один экземпляр этого частотомера. Можно, конечно, собрать аналог индикатора на LED и AVR, но это как-то очень уж нерационально.

В общем, появилась новая разработка. В частотомере я использовал самый распространенный в настоящее время символьный индикатор WH1601A — 16 символов в 1 строке производства фирмы Winstar, но можно использовать и LCD индикатор 16 символов в 2 строки. Графические возможности этого индикатора гораздо больше, чем у KO-4B, было бы неразумно их не использовать.

Кроме того, за прошедшие годы радиотехника существенно продвинулась в сторону высоких частот. Поэтому я увеличил разрядность математики в программе, что позволило поднять верхнюю границу измеряемых частот до аппаратного предела, определяемого быстродействием PIC и внешнего СВЧ делителя. Быстродействие PIC, кстати, тоже выросло. Если внутренний счетчик PIC16F84 работал до частот, не более 40. 45 МГц, то в современном PIC16F628A он уверенно считает до 90. 95 МГц. Если использовать внешний СВЧ делитель на 256, верхняя измеряемая частота может быть более 20 ГГц!

Как и прототип, этот частотомер может быть использован как универсальный измерительный прибор или в качестве цифровой шкалы связной и радиоприемной аппаратуры всех типов. С прибором можно использовать до трех внешних делителей с различными коэффициентами деления в пределах 2. 256. Номер подключенного в данный момент делителя определяется автоматически.

При использовании частотомера в качестве цифровой шкалы в его энергонезависимую память можно записать до 3 значений промежуточных частот в диапазоне от 0 до 1 ГГц. Их значения вводятся с точностью до 10 Гц и в любой момент могут быть изменены пользователем с помощью 3-х кнопок, расположенных на передней панели прибора.

В частотомере предусмотрена возможность программной калибровки, что позволяет использовать любые кварцевые резонаторы в диапазоне 2. 20 МГц. Значения всех промежуточных частот, коэффициенты деления используемых внешних делителей, а также калибровочные константы могут изменяться пользователем без применения каких-либо дополнительных устройств. Принцип действия частотомера классический: измерение количества импульсов входного сигнала за определенный интервал времени.

Принципиальная схема прибора показана на рис.1. При использовании указанных на схеме деталей входной формирователь имеет полосу пропускания 1 Гц. 100 МГц, входное сопротивление 500 ком и чувствительность около 100 МВ.

Управление частотомером — цифровой шкалой осуществляется с помощью 3-х кнопок SB1 . SB3, размещенных на передней панели. Они служат для переключения времени измерения. При нажатии на SB1 включается предел 0,1 сек, а при нажатии на SB2 или SB3 — 1 cек или 10 сек соответственно.

С помощью этих же кнопок можно ввести коэффициенты деления до 3-х используемых с прибором делителей. Это может оказаться полезным при проведении измерений в широком диапазоне частот. Например, первый делитель работает в диапазоне 500 МГц. 2 ГГц, а второй — 30 МГц. 500 МГц и они имеют разный коэффициент деления. При смене делителя прибор автоматически будет учитывать смену его коэффициента деления при расчете показаний.

Для калибровки прибора достаточно просто ввести истинную частоту генерации кварца. В любительских условиях наибольшей точности можно добиться, если измерить ее с помощью SDR приемника. Достаточно поднести антенну приемника к кварцу. При этом влияние на частоту генерации кварца минимально, и точность измерения может достигать +/- 1 Гц, если приемник предварительно откалибровать по сигналам радиостанций, вещающих на эталонных частотах.

Читайте также:  Тоннель для кота своими руками

Долговременная точность и стабильность показаний будут определяться стабильностью частоты кварцевого генератора. Конечно, нельзя требовать от внутреннего генератора PIC контроллера "суперпараметров". Но ведь для любительских целей они чаще всего и не нужны. Однако, если необходима высокая точность измерений и долговременная стабильность, в качестве опорного лучше использовать внешний термостатированный генератор.

Более подробно особенности наладки и работы с прибором, а также методика калибровки описаны в подробном описании.

Немножко теории
Наверное нет необходимости рассказывать, что такое 7-сегментные индикаторы. Как сложно и представить область техники, где они не применяются. Соответственно по их подключению написано масса статей, но попробую все таки написать свою 🙂
Итак: что же такое 7-сегментный индикатор?
Обратимся к Википедии: "Семисегме́нтный индика́тор — устройство отображения цифровой информации. Это — наиболее простая реализация индикатора, который может отображать арабские цифры.
Семисегментный индикатор, как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр. Часто семисегментные индикаторы делают в курсивном начертании."

В чем же "бяка" данной схемы? А в том, что для вывода например трехразрядного числа нужно задействовать 11 ножек микроконтроллера, причем 7 из них, чтобы не раздувать программу, должны относится к одному порту.
Все это хорошо, но, например, у Attiny2313 такой только порт В на котором "висят" и оба входа аналогового компаратора.
И вот тут на помощь приходят специальные драйверы.
Чаще всего применяют драйвера MAX7219 и MAX7221, управляемые по SPI. Материал по работе с этими драйверами разместил недавно serdgos тут — www.drive2.ru/c/2812487/. Поэтому повторятся не буду — желающие могут почитать. Данные драйвера позволяют уменьшить количество задействованных выводом, но опять же требуют использования дополнительной библиотеки и "привязаны" к строго определенным ножкам микроконтроллера. А есть ли более "хардкорные" решения? Оказывается есть — драйвер CD4026.

Описание Драйвера
Чип CD4026 предназначен для управления 7-сегментными индикаторами и представляет собой счётчик до десятка с встроенным сдвиговым регистром.

Счётчик увеличивается на единицу всякий раз, когда контакт «clock» становится HIGH (на восходящем фронте). Выходы a-g становятся HIGH в соответствии со значением счётчика, и отражают его значение арабской цифрой при подключении 7-сегментного индикатора с общим катодом.

Подключение
С этим все просто: смотрим даташит на индикатор. Я использовал 3х- разрядный, но принципиально разницы с четырехразрядным нет, — для подключения четвертого разряда нужно будет еще задействовать вывод 6 индикатора (сейчас он "пустой").

В качестве источника сигнала выступал Arduino Pro Micro c задействованными выводами
Pin2 Выход на счетчик
Pin3 Сброс счетчика
Pin4 Подключение разряда 1
Pin6 Подключение разряда 2
Pin9 Подключение разряда 3
Точку не подключал, ибо сейчас ненужно, а принцип подключения тот же.

Программа
Так как задействовано Arduino. то и язык соответствующий — модифицированный С.
Прога секундомера, считающего секунды с момента включения, "накидана по быстрячку" чтобы проверить работоспособность, поэтому слегка корява — уж извините.

#define CLOCK_PIN 2
#define RESET_PIN 3
#define DIGIT_1PIN 4
#define DIGIT_2PIN 6
#define DIGIT_3PIN 9

void resetNumber()
<
// Для сброса на мгновение ставим контакт
// reset в HIGH и возвращаем обратно в LOW
digitalWrite(RESET_PIN, HIGH);
digitalWrite(RESET_PIN, LOW);
digitalWrite(DIGIT_1PIN, HIGH);
digitalWrite(DIGIT_2PIN, HIGH);
digitalWrite(DIGIT_3PIN, HIGH);
>
void showNumber(float t)
< int n;
// Первым делом обнуляем текущее значение
resetNumber();
// Выводим первый разряд
digitalWrite(DIGIT_1PIN, LOW);
n=int(t-int(t/10)*10);
// Далее быстро «прокликиваем» счётчик до нужного
// значения
while (n—) <
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
>
delay(2);
// Обнуляем счетчик
resetNumber();
// Выводим второй разряд
digitalWrite(DIGIT_2PIN, LOW);
n=int(t/10-int(t/100)*10);
// Далее быстро «прокликиваем» счётчик до нужного
// значения
while (n—) <
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
>
delay(2);
// Обнуляем счетчик
resetNumber();
// Выводим третий разряд
digitalWrite(DIGIT_3PIN, LOW);
n=int(t/100);
// Далее быстро «прокликиваем» счётчик до нужного
// значения
while (n—) <
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
>
delay(2);

Читайте также:  Тля на клубнике как бороться

>
void setup() <
pinMode(RESET_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(DIGIT_1PIN, OUTPUT);
pinMode(DIGIT_2PIN, OUTPUT);
pinMode(DIGIT_3PIN, OUTPUT);

// Обнуляем счётчик при старте, чтобы он не оказался
// в случайном состоянии
resetNumber();
>

Можно еще сократить количество выводов, задействовав сдвиговые регистры, но об этом мы поговорим отдельно 🙂

ЗЫ. Понятное дело, что на макетке эту платку и повторять неудобно да и пользоваться тоже, поэтому делаем после этого нормальную плату

При работе на любительской радиостанции перед радиолюбителем часто встает необходимость точно знать частоту, на которую настроен его трансивер или приемник для того, чтобы не уйти за пределы диапазона или для точной настройки на заранее оговоренную частоту. Механические шкалы не дают такой возможности поэтому приходится конструировать электронные шкалы.

Принципиальную схему частотомера можно предельно упростить, если построить ее на базе процессора PIC16F84 фирмы Microchip (http://www.microchip.com/). Этот процессор обладает высоким быстродействием, широкими функциональными возможностями. Встроенное энергонезависимое запоминающее устройство позволяет записывать и оперативно изменять величину промежуточной частоты цифровой шкалы.

При работе над своим частотомером я поставил перед собой задачу создания максимально простой конструкции, несложной в повторении, учитывающей ошибки и недочеты допущенные при конструировании аналогичных устройств.

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

Устройство выполняет следующие функции:

  • Семиразрядного частотомера с индикацией частоты в десятках герц в младшем разряде индикатора;
  • Цифровой шкалы радиолюбительского трансивера (приемника). В этом режиме к измеренному значению прибавляется или вычитается значение промежуточной частоты, записанное в энергонезависимую память PIC процессора.Рис1. Принципиальная схема.

2. Печатная плата. Конденсатор С1 — 47.0 мкф , С2 — 0.1 мкф

Технические характеристики:

Максимальная измеряемая частота .………………30 мгц

Максимальное разрешение измеряемой частоты…10 Гц,
Чувствительность по входу………………………….250 мВ
Напряжение питания ………………………………. 8…12 В,
Потребляемый ток………………………………….. 35 мА,

Принципиальная схема частотомера — цифровой шкалы приведена на рис1.

Она состоит из:

  • Формирователя входного сигнала, выполненного на транзисторе VT1. Сигнал измеряемой частоты, поданный на вход J5, ограничивается, усиливается и подается на вход PIC процессора для измерения;
  • центрального процессора U1, выполняющего функции измерения, расчета, преобразования, управления динамической индикацией и динамического опроса входных сигналов. Выводы J3 и J4 используются для выбора режима цифровой шкалы. Тактовая частота процессора определяется кварцевым резонатором Y1 и может изменяться в небольших пределах конденсаторами C3 и C4.
  • светодиодного индикатора U2 для отображения частоты.
  • микросхемы U3 – дешифратора позиции отображаемой цифры.
  • Интегрального стабилизатора питающего напряжения U4. Напряжение питания частотомера величиной 8..12 вольт подается на выводы J1(+) и J2(-).

Функции устройства реализованы следующим образом:

  • При отключенных выводах J3 и J4 работает как частотомер (режим измерения);
  • При подаче лог. “0” на вывод J3 складывает измеренные значения с заранее записанной в энергонезависимую память константой (цифровая шкала);
  • При подаче лог. “0” на вывод J4 вычитает по модулю эту константу из измеренного значения(цифровая шкала);
  • При подаче лог. “0” одновременно на выводы J3 и J4 через 1 сек. шкала перейдет в режим записи константы, отобразит на индикаторе букву «F» и измеренную частоту.
  • Повторная подача лог. «0» на J3 и J4 приведет к записи замеренного значения в энергонезависимую память процессора и возврату в режим измерения. После этого новая константа будет использоваться в качестве величины промежуточной частоты.
  • Данный режим сделан для того, чтобы пользователи могли сами устанавливать величину ПЧ в своей шкале без перепрограммирования PIC процессора. По умолчанию в тексте программы записана величина ПЧ равная 5.5 мгц.
    Прим. логическому “0” соответствует потенциал 0 вольт (“земля”).
Читайте также:  Металлические формы для литья алюминия

Конструкция выполнена на односторонней печатной плате размерами 57 х 67 мм. Эскиз печатной платы приведен на рис.2 , однако предельная простота конструкции позволяет легко повторить ее даже на макетнице.

Правильно собранный частотомер — цифровая шкала с правильно запрограммированным PIC процессором почти не требует настройки. Минимальная настройка заключается в подаче на вход частотомера эталонной частоты и подстройки конденсатора C3 до получения правильных показаний на индикаторе. При этом возможно потребуется корректировка емкости конденсатора C4.

Теперь немного информации для тех, кто не имеет большого опыта работы с PIC процессорами.

Для транслирования исходного текста программы в машинный код процессора использовался широко распространенный, бесплатный ассемблер MPASM, для программирования – программатор PIX, так же бесплатный и доступный на многих серверах. Сушествует много других ассемблеров и программаторов, однако эти наиболее доступны для пользователей с небольшим опытом. Их можно скачать с моей. Схемы аппаратной части программатора находятся в файле программатора PIX.

Архивы MPASM и PIX распаковываем в разных директориях MPASM и PIX соответственно, файл DIGSCAL.ASM с исходным текстом программы частотомера переписываем в директорию ассемблера MPASM.

1. Трансляция исходного текста

Набираем команду MPASM DIGISCAL.ASM. После выполнения программы на экране дисплея должно быть следующее:

MPASM 01.40 Released © 1993-96 Microchip Technology Ink./Byte Craft Limi

Checking c:MPASMDIGISCAL.ASM for symbols…
Assembling…
DIGISCAL.ASM 639
Building files…

Errors : 0
Warnings : 0 reported 0 suppressed
Messages : 0 reported 0 suppressed
Lines assembled : 638

Press any key to continue.

Отсутствие сообщения об ошибках и предупреждений говорит о том, что программа оттранслирована правильно. После трансляции в директории MPASM появятся несколько файлов с именем DIGISCAL и разными расширениями. Файл DIGISCAL.HEX и есть тот файл, который будет записан в PIC процессор.

2. Программирование PIC процессора

2.1. Переходим в директорию PIX, запускаем программу PIX.EXE, подключаем к разъему COM2 аппаратную часть программатора с вставленным PIC процессором (рис.3).

2.2. Даем команду F7 (Erase) – стираем ранее записанную информацию, т.к. новые микросхемы заполнены нулями, которые нужно «стереть». Микросхема без информации заполнена 3FFF, а ее энергонезависимая память FF. После стирания в этом можно убедиться, посмотрев содержимое памяти командой F4 (Read).

2.3. Даем команду F3 (File) и выбираем файл DIGISCAL.HEX из директории MPASM.

2.4. Последняя команда – F9 (Blow) – запись микросхемы.

После завершения процесса программирования появляется надпись “All loaded Areas Blown OK 1195 mSec”, последняя цифра может отличаться в зависимости от быстродействия компьютера.

2.5. Отключаем аппаратную часть программатора от порта COM2 и выгружаем программатор командой ALT-X.

Микросхема запрограммирована и готова к работе в частотомере.

Правильно собранный частотомер — цифровая шкала с запрограммированным PIC процессором почти не требует настройки. Минимальная настройка заключается в подаче на вход частотомера эталонной частоты и подстройки конденсатора C3 до получения правильных показаний на индикаторе. При этом возможно потребуется корректировка величины C4.

Программу для самостоятельного программирования PIC процессора можно взять здесь.

При разработке схемы и программного обеспечения использованы данные конструкции Peter Halicky OM3CPH.

Обо всех замеченных недостатках прошу сообщать по адресу: alldn@mail.ru

Автор: А. Денисов г. Тамбов (RA3RBE)

Ссылка на основную публикацию
Цветы из шаров своими руками фото
Сам цветочек. Для него понадобится 5 шаров размером 12" и 6 шаров размером 5". Шары размером 5" розового цвета надуваем...
Хрущевка блочная или панельная
Блочный дом- это здание, которое возводится из готовых бетонных блоков, произведенных на железобетонном заводе. Такие готовые блоки привозят из завода...
Хрущевка в классическом интерьере
Панельные хрущевки печально известны своими маленькими комнатами, странной планировкой и низкими потолками. Они мало пригодны для капитальной переделки и выглядят...
Цветы из экокожи своими руками
Вам потребуется: кусочки искусственной кожи двух цветов, клей, зажигалка или свечка! Делаем выкройку из бумаги трех размеров, затем вырезаем из...
Adblock detector