Найти тему

Частотомер на Ардуино (1).

Как я писал, частотомер - один из самых необходимых приборов в лаборатории радиолюбителя. Его диапазон должен быть порядка -100 Гц - 30 МГц, чувствительность - 50-100 мВ. Сейчас трудно заставить себя изготовить такой частотомер на старых микросхемах или современных их аналогов - пара десятков корпусов, штук 6 индикаторов и кое-что еще, и кое-что другое :)). Одна из схем такого частотомера с относительно небольшим количеством корпусов микросхем описана здесь.

Конечно, не может быть такого, чтобы не разработали специализированную микросхему, к которой нужно только подключить формирователь импульсов и индикатор. И такие микросхемы есть! Одна из них - IC7216А. Вот схема частотомера на ней.

Рис. 1. С сайта http://www.s-led.ru/453-cifrovoy-chastotomer-na-mikrosheme.html
Рис. 1. С сайта http://www.s-led.ru/453-cifrovoy-chastotomer-na-mikrosheme.html

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

У меня в коробочке нашлась другая микросхема - LC7285. У этой микросхемы входная частота до 30 МГц, мало того, это не просто частотомер, а цифровая шкала, в которой с помощью перемычек можно запрограммировать вычитание или сложение частоты ПЧ с измеряемой частотой - и это плюс, но ПЧ уже записана: 10,7 МГц, 450, 455 и 469 кГц и четырехзначный индикатор - это очень большой минус. Схема и обсуждение - здесь.

Гораздо бОльшую гибкость имеют схемы частотомеров на контроллерах. Особенно много таких схем на PIC-процессорах, которые могут работать с входными частотами импульсов до 50-60 МГц, не требуя никакого предварительного делителя, а только формирователей импульсов. Вот одна из простейших схем, прошивка прилагается.

Рис. 2. сС сайта http://rcl-radio.ru/?p=27953&ysclid=lwggk18unm512968892
Рис. 2. сС сайта http://rcl-radio.ru/?p=27953&ysclid=lwggk18unm512968892

Стоимость процессора у дядюшки Ху - около 450 руб, но схема простая - это плюс, а чтобы прошить процессор нужен программатор - это минус. Я в свое время купил у дядюшки Ху программатор К150, но ничего прошить так и не смог :((, и очень обиделся на все программаторы. Кроме того, самостоятельно писать программу для PIC-ков я не умею, т.е. сделать что-то свое не смогу.

Для меня выход из этой PIC-ковой ситуации стало знакомство с платформой Ардуино - вот она мне как-то сразу "зашла". Могу сравнить эту ситуацию с тем, что когда в конце 70-х мне понадобилось обработать результаты экспериментов для кандидатской и я попробовал это сделать на ЕС, то понял, что мы не созданы друг для друга :)). А когда в 1985 мы купили БК-010, я прочитав брошюрку "Программирование на языке Бейсик" Левин А.Д. написал свою первую программу, а через год, когда у нас в школе поставили компьютерный класс "Ямаха" я уже писал тесты по химии и биологии для ребят, а потом и виртуальные лабораторные эксперименты по химии с использованием спрайтов.

Рис. 3. КУВТ "Ямаха". Рабочее место ученика. С сайта https://ru.pc-history.com/wp-content/uploads/2013/07/Yamaha_YS503III_KUVT2.jpg
Рис. 3. КУВТ "Ямаха". Рабочее место ученика. С сайта https://ru.pc-history.com/wp-content/uploads/2013/07/Yamaha_YS503III_KUVT2.jpg

Как и Бейсик, среда программирования Arduino IDE очень дружелюбная и интуитивно понятная, да и сами программы, как мне показалось, имеют схожую логику, хотя там используется Си. А самое главное,- для Ардуино не нужен программатор :)), он уже на плате.

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

Подаренная плата была оригинальная, т.е. сделана была на родине Ардуино - в Италии.

Рис. 4.
Рис. 4.

Потом я купил еще одну плату, но уже у дядюшки Ху.

Рис. 5.
Рис. 5.

У итальянской платы процессор ATMEGA328P в диповском корпусе, на китайской - MEGA328P, хотя оба процессора, судя по маркировке, фирмы Atmel. Вот какие платы у меня есть.

Рис. 6.
Рис. 6.

Основой всех плат является один и тот же микропроцессор ATMEGA328P с тактовой частотой 16 МГц. У всех один и тот же объем памяти: EEROM - 1 кб, SRAM - 2 кб и Flash - 32 кб. Для обмена данными с внешними устройствами имеются порты UART, I2c, SPI. У всех плат есть 14 цифровых входов/выходов и 6 (у Uno) или 8 аналоговых входов (которые подключены к внутренним АЦП). А вот аналоговых выходов нет ни одного. Зато есть 6 выходов ШИМ-сигнала Питание у всех 7 - 12В, возможно питание от USB-порта, потребляемый ток - около 20 мА.

А в чем же отличия? Главное - в размерах, хотя и Uno всего 53х68 мм, но Nano и Mini по площади более чем в 4 раза меньше. Экспериментировать все-таки удобнее с Uno, но для Nano есть плата расширения, которая позволяет работать с ней также. как с Uno, а по мне - так даже удобней.

Рис. 7. С сайта https://aliexpress.ru
Рис. 7. С сайта https://aliexpress.ru

Еще отличие между платами в виде разъема USB: Uno - USB B, Nano - mini-USB или Micro-USB, а вот у PRO Mini порта USB вообще нет. Нужен ли для PRO программатор для загрузки программ? Нет, просто нужен переходничок UART-USB, вот такой:

Рис. 8. С сайта https://aliexpress.ru
Рис. 8. С сайта https://aliexpress.ru

Этот переходник нужен только для загрузки программы, после чего его можно отсоединить от платы.

Теперь немного об индикаторах. Тут широкий выбор.

Рис. 9.
Рис. 9.

Проще всего всего 8-ми знаковый светодиодный индикатор (2), который кроме собственно светодиодных модулей содержит еще две микросхемы 74НС595 (установлены с другой стороны платы), которые позволяют, используя всего 5 проводников управлять этим индикатором.

Рис. 10. С сайта https://file.elecfans.com/web1/M00/9B/1D/pIYBAF0isNiAHYcUAANC4W_MxtA286.png
Рис. 10. С сайта https://file.elecfans.com/web1/M00/9B/1D/pIYBAF0isNiAHYcUAANC4W_MxtA286.png

Подключить к модуль к плате Ардуино легко.

Рис. 11. С сайта https://avatars.mds.yandex.net/i?id=525038e0c0d799cfce77936edb35fd1a_l-5300120-images-thumbs&n=13
Рис. 11. С сайта https://avatars.mds.yandex.net/i?id=525038e0c0d799cfce77936edb35fd1a_l-5300120-images-thumbs&n=13

Но отобразить можно только цифры и точки между ними. Гораздо информативнее LCD - дисплеи, двухстрочные типа 1602 (3) или четырехстрочные 1604 (4). Они позволяют выводить не только цифры, но и текст, а так же создавать собственные символы. Стоит 1602 у дядюшки Ху около 150 руб. Подключать его можно двумя способами: когда линии данных дисплея напрямую к цифровым выходам Ардуино, при этом задействуется большое количество проводников, и по интерфейсу I2C. Давайте сравним их.

Рис. 12. С сайта https://microtechnics.ru/arduino-lcd-1602-i2c-i-drugie-varianty-podklyucheniya/
Рис. 12. С сайта https://microtechnics.ru/arduino-lcd-1602-i2c-i-drugie-varianty-podklyucheniya/

При непосредственном подключении требуется 8 проводников.

Рис. 13. С сайта https://microtechnics.ru/arduino-lcd-1602-i2c-i-drugie-varianty-podklyucheniya/
Рис. 13. С сайта https://microtechnics.ru/arduino-lcd-1602-i2c-i-drugie-varianty-podklyucheniya/

А при соединении через I2C в два раза меньше, в добавок освобождаются 6 цифровых входов/выходов. Поэтому, если будете приобретать такой индикатор у дядюшки Ху, то выбирайте тот, который LCD1602 + I2C

Рис. 14.
Рис. 14.

Можно купить адаптер I2C можно отдельно.

Рис. 15.
Рис. 15.

Но в комплекте будет дешевле.

Кстати, такой индикатор или почти такой :)) стоит в моем FT-857.

Теперь, предваряя вопросы, скажу, что сейчас есть и более мощные платформы, чем Ардуино, и болле мощные и быстрые процессоры, чем ATMEGA328P. Но мне, с моими скромными потребностями, хватает и Ардуино. А кому нужно больше - это не ко мне. Это, типа, как "наши люди на Lamborghini в булочную не ездят. хватит самоката" :)).

Всем здоровья и успехов!