Измерение частоты кварца Arduino без частотомера » Чубатый Виталий
Подарили мне на день рождения Arduino Mega 2560. Вещь хорошая, но, как и у большинства этих плат, частота кварца отличается от номинальной. В моём случае написано было 12 МГц, по факту чуть меньше 16. Встал вопрос – как измерить с приемлемой точностью без частотомера.
Для некоторых программ частота кварца имеет большое значение, поэтому нужно было сделать измерение частоты подручными средствами.
Выход был найден самый простой и логичный – заставить плату считать интервалы времени, а после 4 часов отсчёта посмотреть реальное количество этих интервалов. Зная продолжительность интервала, можно вычислить частоту.
Забегая немного вперёд, скажу, что предварительная оценка после 20 минут счёта практически совпала с итоговым результатом после 4 часов работы.
Код для настройки таймера и работы с индикатором брался из другого проекта с вырезанием ненужных частей, поэтому он местами не оптимален, но это всё работает.
Поскольку уже был готовый образец кода, значение частоты тоже не менялось. После предделителя для таймера в 8 раз делим таймером ещё на 40 тысяч, в результате на выходе получаем 50 герц. Отмечу, что это значение очень удобно параллельно использовать для динамического обновления индикатора.
Уточнение! Фактически для таймера надо указывать коэффициент деления на единицу меньший, поэтому в коде указывается не 40000, а 39999.
Индикатор использовался обычный, 7-сегментный HS420561-C30 с общим катодом. Данные для включения сегментов выводились через регистр 74HC5959N, что позволило сэкономить 5 выводов платы. К аноды индикаторов были подключены к регистру через резисторы по 330 ом, а катоды через транзисторные ключи (npn, использовал 8 штук 2N2222) на землю. Два таких индикатора дали 8 разрядов, что было более чем достаточно для отображения количества отсчётов.
Для минимизации погрешности, связанной с фиксацией времени отсчёта (Arduino при включении любит «подумать» секунду-полторы), я использовал кнопку – отпускание для начала отсчёта и нажатие для прекращения.
Немного теории
Отсчёт продолжался 4 часа, что составляет 14400 секунд. При частоте 50 герц за это время в идеальном случае должно быть ровно 720 тысяч отсчётов. Фактически может быть разница в десяток-другой из-за чуть более раннего или позднего нажатия и отпускания кнопки, но при таком количестве отсчётов эта погрешность будет уже несущественна. Реальная частота определяется просто:
Fx = 16000 * n / 720000,
где n – реальное количество отсчётов.
Большое время счёта нужно именно для минимизации погрешности при нажатии и отпускании кнопки.
Полностью файл со скетчем можно загрузить по ссылке внизу, здесь я дам только наиболее важные пояснения.
Замечания по схеме
Arduino с дисплеем После первого замыкания отсчёт приостанавливается и дальнейшие изменения состояния входа уже не имеют значения. Это сделано для удобства фиксации показаний. Новый отсчёт возможен только после выключения/включения питания или после нажатия кнопки сброса на плате.
Два индикатора дают в сумме 8 разрядов, нумерация ведётся с нуля слева направо
Управляющие сигналы для включения разрядов подаются на выводы со 2 по 9 (слева направо, вывод 2 – крайний левый разряд, вывод 9 – крайний правый), для вывода в регистр сегментов используются выводы 10-12, а 13-й вывод был использован как вход кнопки. Также вход кнопки был подтянут к земле резистором на 10 килоом и к питанию подключался через диод.
Для изменения яркости индикатора можно менять задержку между включением и выключением. В моём случае оптимальная яркость (хорошо читается, но не давит на глаза) была достигнута при задержке в две трети миллисекунды, то есть 666 микросекунд.
Числа в массиве digits поданы в двоичной форме только для облегчения восприятия, они отвечают за отображение сегментов цифр на индикаторах. Старший бит – сегмент A, младший – сегмент H (десятичная точка).
Итоги измерений. За 4 часа наблюдений плата отсчитала 714079 интервалов времени вместо положенных 720000, соответственно, частота кварца составила примерно 15868 килогерц.
Скачать файл скетча
Частотомер FC1100-M3 от 1 Гц до 1100 МГц с проверкой кварцев
Габариты печатной платы прибора FC1100-M3: 83мм*46мм.
Дисплей цветной TFT LCD с подсветкой (диагональ 1,44″ = 3,65см).
* Чувствительность по DataSheet MB501L (параметр «Input Signal Amplitude»: -4,4dBm = 135 мВ@50 Ом соответственно).
** Верхний предел входного сигнала ограничен мощностью рассеивания защитных диодов B5819WS (0,2 Вт*2 шт).
Режим измерения частоты кварца в частотомере FC1100-M3
Схема компаратора/формирователя входного сигнала 0…50 МГц.
Схема делителя частоты входного сигнала 1…1100 МГц.
Частотомер FC1100-M3 имеет два раздельных канала измерения частоты.Оба канала частотомера FC1100-M3 работают независимо друг от друга, и могут использоваться для измерения двух различных частот одновременно.
При этом, оба значения измеренной частоты одновременно отображаются на дисплее.
«Вход A» — (Тип разъёма SMA-FEMALE) Предназначен для измерения относительно высокочастотных сигналов, от 1 МГц до 1100 МГц. Нижний порог чувствительности этого входа составляет чуть менее 0,2 В., а верхний порог — ограничивается на уровне 0,5.

Примененные диоды позволяют рассеивать мощность не более 200 мВт., защищая вход микросхемы делителя MB501L. Не подключайте этот вход непосредственно к выходу передатчиков значительной мощности (более 100 мВт). Для измерения частоты источников сигнала амплитудой более 5 В., или значительной мощности — используйте внешний делитель напряжения (аттенюатор) или переходной конденсатор малой ёмкости (единицы пикофарад), включенный последовательно. При необходимости измерения частоты передатчика — обычно достаточно короткого отрезка провода в качестве антенны, включенного в разъём частотомера, и расположенного на небольшом расстоянии от антенны передатчика или можно использовать подходящую антенну «резинка» от портативных радиостанций, подключенную к разъёму SMA.
«Вход B» — (Тип разъёма SMA-FEMALE) Предназначен для измерения относительно низкочастотных сигналов, от 1 Гц до 50 МГц. Нижний порог чувствительности этого входа ниже, чем у «Входа A», и составляет 0,6 В., а верхний порог — ограничивается защитными диодами на уровне 5 В.
При необходимости измерения частоты сигналов, амплитудой более 5 В., используйте внешний делитель напряжения (аттенюатор). На этом входе использован высокоскоростной компаратор MAX999.
Входной сигнал подается на неинвертирующий вход компаратора, и сюда же подключен резистор R42, увеличивающий аппаратный гистерезис компаратора MAX999 до уровня 0,6 В. На инвертирующий вход компаратора MAX999, с переменного резистора R35, подается напряжение смещения, задающее уровень срабатывания компаратора. При измерении частоты зашумленных сигналов, необходимо вращением ручки переменного резистора R35 — добиться устойчивых показаний частотомера. Наибольшая чувствительность частотомера реализуется в среднем положении ручки переменного резистора R35. Вращение против часовой стрелки — снижает, а по часовой стрелке — увеличивает пороговое напряжение срабатывания компаратора, позволяя сдвигать порог срабатывания компаратора на незашумленный участок измеряемого сигнала.
Кнопкой «Управление», осуществляется переключение между режимом измерения частоты «Вход B» и режимом тестирования кварцевых резонаторов.
В режиме тестирования кварцевых резонаторов, к крайним контактам панели «Кварц Тест» — необходимо подключить тестируемый кварцевый резонатор, с частотой от 1 МГц до 25 МГц. Средний контакт этой панели — можно не подключать, он соединён с «общим» проводом прибора.
Обратите внимание, что в режиме тестирования кварцевых резонаторов, при отсутствии тестируемого кварца в панели, наблюдается постоянная генерация на относительной высокой частоте (от 35 до 50 МГц).
Также, следует заметить, что при подключении исследуемого кварцевого резонатора, частота генерации будет несколько выше его типовой частоты (в пределах единиц килогерц). Это определяется параллельным режимом возбуждения кварцевого резонатора.
Режим тестирования кварцевых резонаторов с успехом можно использовать для подбора одинаковых кварцевых резонаторов для лестничных многокристальных кварцевых фильтров. При этом, основной критерий подбора кварцевых резонаторов — максимально близкая частота генерации подбираемых кварцев.
Потребляемый ток (не более 300 мА) — обеспечивает совместимость с большинством источников питания напряжения USB.
В комплекте имеется кабель «Mini-USB» «USB A», который позволяет питать частотомер от любого устройства, обладающего таким разъёмом (Персональный Компьютер, Ноутбук, USB-HUB, Блок Питания USB, Сетевое Зарядное Устройство USB) и так далее.
Для автономного питания Частотомера FC1100-M3 — оптимально подходят широко-распространенные батареи «Power Bank», со встроенными Литий-Полимерными аккумуляторами, используемые обычно для питания аппаратуры, обладающей разъёмами USB. В этом случае, помимо явного удобства, бонусом вы получаете гальваническую развязку от сети и/или питающего устройства, что немаловажно.
Arduino считывание широтно-импульсной частоты и рабочего цикла с одного цифрового входа
Я новичок в Arduino и кодировании, но сделал все учебники и думаю, что я получаю представление о том, как все это работает.
У меня есть реальная проблема, которую я хотел бы решить с помощью arduino.
У меня есть сигнал PWM от топливной форсунки на бензиновом движке, который мне нужен для получения двух отдельных логических функций изнутри arduino.
Определите задержку между каждым восходящим фронтом (чтобы вывести движок RPM) диапазон между 6 мс — 120 мс между восходящими кромками и считывание широтно-импульсного рабочего цикла (для определения рабочего цикла топливной форсунки) Диапазон ширины импульса от 0.02ms до более чем 10 мс для длин импульсов.
они должны быть представлены независимо в логике как «RPM» и «Pulse Width»
Я прочитал этот блог о «secrets of Arduino PWM» и нахожу его информативным о том, как использовать WRITE широтно-импульсных выхода с различной частотой и рабочим циклом, но я пытаюсь использовать READ широтно-импульсных выходов с различной частотой и рабочим циклом, чтобы создать переменный байт или int для каждого из них.
Поделиться Источник NateCroix 23 января 2014 в 22:04
2 ответа
-
Изменение частоты цифрового ШИМ на Arduino Uno rev 3
Я пытаюсь изменить частоту цифрового ШИМ-вывода #9 на Arduino Uno до 70 Гц.
Я нашел несколько примеров кода для изменения частоты контактов, но ничего не очень ясно. Может ли кто-нибудь объяснить это? Спасибо
-
Цифровой считываемый пин-код в Arduino
1
Правильно там не так уж много на синхронизирующих импульсных входах или подобных им. Где Arduino-е ATmega-е могут фиксировать время каждой стороны рабочего цикла с помощью следующих методов. И это будет зависеть от кода, чтобы собрать их вместе и считать их PWM для ваших нужд.
Существует несколько методов с примерами.
Узкий цикл опроса синхронизированных событий.
Например, с PulseIn
Лучший способ-создать прерывание переполнения timer1 и во время этого ISR вытащить штифт. Это оригинальный метод, который Кен Инфракрасная библиотека ширриффа работает — 50 мс тянет ИК-библиотеку ширриффа, где ее разрешение не хуже переполнения.
Используйте прерывания смены ПИН-кода ISR, чтобы получить время. Где она будет слегка латентной. Где микротерион fork из библиотеки Кена IR преобразовал переполнение в PinChangeInt. Где код MicroTherion делал это дискретно в библиотеке. Где библиотека PinChangeInt делает это проще.
Используйте захват входного сигнала таймера. Короче говоря когда соответствующий изменение входного пин-кода захватываются системные часы и выдается прерывание . Таким образом, ISR может латентно получить точное время, когда это произошло. InputCapture.ino
Поделиться mpflaga 24 января 2014 в 05:41
0
Я только что написал библиотеку с примером, который делает именно это. В моей библиотеке Timer2_Counter я написал пример, который в настоящее время называется «read_PWM_pulses_on_ANY_pin_via_pin_change_interrupt», который считывает импульсы, а затем выводит ширину импульса в США с разрешением 0.5us, а также период между импульсами и частоту импульсов.
Загрузите библиотеку и ознакомьтесь с примером. Чтобы проверить этот пример, вы можете подключить провод от штыря PWM, выводящего сигнал PWM, к входному контакту. Библиотека с примером находится здесь: http://www.electricrcaircraftguy.com/2014/02/Timer2Counter-более-точный-Arduino-Микрос-function.html
PS. этот пример кода использует прерывания смены выводов и может быть выполнен на любом выводе Arduino, включая аналоговые выводы.
Поделиться Gabriel Staples 22 марта 2015 в 01:16
Похожие вопросы:
Измерьте рабочий цикл входа PWM с помощью PIC?
Я пытаюсь написать программу для микроконтроллера PIC24F, которая может измерять рабочий цикл входного сигнала с широтно-импульсной модуляцией. Кто-нибудь делал это? Каков был бы наилучший подход?
Измерение частоты прямоугольной волны в MATLAB с использованием USB 1024HLS
Я пытаюсь измерить частоту прямоугольной волны, которая считывается через модуль USB 1024 HLS Daq через MATLAB. То, что я сделал, — это создал цикл, который считывает 100 значений из цифрового…
Найдите повторение одного и того же символа (буквенно-цифрового) с помощью bash
Я пытаюсь написать команду bash, чтобы найти, содержит ли строка повторение одного и того же буквенно-цифрового символа один за другим. Например: input: aaa, abc, aba, abc111; output: aaa, abc111….
Изменение частоты цифрового ШИМ на Arduino Uno rev 3
Я пытаюсь изменить частоту цифрового ШИМ-вывода #9 на Arduino Uno до 70 Гц. Я нашел несколько примеров кода для изменения частоты контактов, но ничего не очень ясно. Может ли кто-нибудь объяснить…
Цифровой считываемый пин-код в Arduino
Я использовал следующий код для цифрового считывания пин-кода и определения его высокого или низкого уровня. Проблема в том, что Arduino дает неправильные значения. Это дает несколько раз 0 или…
Считывание значений каналов с цифрового потенциометра с помощью arduino
Я делаю несколько основных проектов arduino, и я следовал проекту, перечисленному здесь: http://www.arduino.cc/en/Tutorial/SPIDigitalPot . Проект по существу показывает вам, как установить значения…
Цифровое и аналоговое считывание с arduino по Labview
Я пытаюсь визуализировать температуру и аналоговое считывание напряжения graphing с arduino на Labview, однако через некоторое время adquisition и диаграмма формы волны замедляются. Я использую…
Вычисление частоты с помощью датчика эффекта Холла и arduino в LabVIEW
мой текущий VI использует LINX для получения измерений напряжения от аналогового Штыря arduino и отображения данных (ток,мощность и т. д.). У меня есть датчик эффекта Холла, который будет получать…
Форматирование цифрового аудио
У меня есть векторизованный wav-файл со значениями от -1 до 1, 88 200 сэмплов, частота дискретизации 44. 1 kHz, чтобы услышать звук в течение двух секунд. Я хотел бы отправить звук через bluetooth на…
Генерация импульсной амплитудной модуляции с использованием синусоидальной волны и сигнала PWM с использованием python
Я использую приведенные ниже коды для генерации амплитуды импульса Модуляция сигнала с помощью булевой операции между синусоидальной волной и Сигнал широтно-импульсной модуляции(PWM). Я использую…
Измерение параметров фильтров и контуров на Arduino
Для предстоящего проекта потребовалось создать прибор, позволяющий анализировать АЧХ LC контуров, фильтров ФНЧ/ФВЧ/Полосовых, а также генератор сигналов.
Сразу оговорюсь, что схема разработана с нуля и имеет кучу недостатков, которые сразу обнаружат опытные радиолюбители, но для новичков как я — рекомендую к сборке.
Параметры получившегося устройства:
- Генератор частоты от 1мгц до 125мгц
- Измеритель АЧХ от 1мгц до 40мгц
- Шаг перестройки 1гц
- Возможность подключения к компьютеру для построения графиков, так и работа без него.
В качестве деталей для сборки использованы (есть на алиэкспресс):
Схема сборки следующая:
Всё монтируется в подходящий по размеру корпус, я использовал провода МГТФ, но для ВЧ цепей рекомендую коаксиал. Также, рекомендую вынести ВЧ детектор в щуп, а не располагать прямо в корпусе.
Внешний вид устройства в сборе получился следующим:
С помощью энкодера можно выставлять частоту на выходе генератора (нажатие на энкодер переключает разряды).
Первой строкой отображается измеренное ВЧ напряжение.
При подключении к компьютеру доступен более широкий спектр возможностей:
- Проход по заданной частоте с необходимым шагом;
- Измерение полученных данных в Вольтах и в dbV;
- Калибровка измерений для компенсации потерь в генераторе и линиях.
Для калибровки необходимо соединить вход и выход прибора, выбрать необходимый интервал частот и шаг и запустить калибровочный процесс. Полученные данные программа будет использовать как точку отсчёта в дальнейших измерениях.
К примеру подключим прибор к импровизированному LC-контуру.
Результаты будут примерно следующие:
Здесь синим отображены калибровочные измерения. Желтым — измеренные с учётом калибровки.
Как видим на графике отлично заметна резонансная частота контура.
Ссылки на проект:
Предлагаю описание простого и недорогого устройства для измерения напряжения, тока и мощности в электрической сети 220В
для потребителей с током потребления не больше 30А с последующим отображением результатов измерения в виде графиков на
WEB странице через компьютерную сеть. Это устройство можно собрать самостоятельно следуя этой инструкции.
Предполагается что ви обладаете навыками макетирования и программирования микроконтроллеров Arduino.
Все компоненты, необходимые для сборки устройства, можно приобрести в интернет-магазине, например arduino. ![]() Нам потребуются: |
|||
Микроконтроллер ARDUINO NANO
или любой другой подобный микроконтроллер, например ARDUINO UNO, MICRO, MINI |
|||
Датчик тока ACS712 30A GY-712 | |||
Ethernet модуль ENC28J60 | |||
Модуль питания TSP-05 220В — 5В 3Вт
или любой другой источник питания 5В для Arduino |
|||
Трансформатор 220/12В небольшой мощности
Можно использовать и другие, например 220/24В, 220/9В, 220/6В. Но при этом потребуется подобрать параметры делителя напряжения в схеме. |
|||
Четыре резистора 0.25W:
220кОм — 2 шт; 100кОм, 5. ![]() электролитический конденсатор на 10 мкФ на напряжение не менее 10В. |
|||
Соединительные проводники мама-мама и провода ПСВ (ВВГ) 0.5мм2 для коммутации цепи 220 В |
|||
Ниже приводится принципиальная схема применительно к сети переменного тока 220В до 30А, 6 кВт полной нагрузки. Этот набор оборудования позволяет мониторить и цепи постоянного тока до 30А с доработкой схемы измерения напряжения. В цепях постоянного тока трансформатор не нужен. Достаточно подобрать параметры делителя напряжения и помнить, что при этом не будет гальванической развязки между силовой и измерительной цепью. Для измерения тока в электрической сети используется датчик ACS712 30A GY-712, который построен на одноименной микросхеме ACS712ELCTR-30A-T фирмы Allegro. Эта микросхема обеспечивает точное измерение постоянного и переменного электрического тока за счет использования эффекта Холла и обеспечивает гальваническую развязку высоковольтной и измерительной части цепи. ![]() Измеряемый ток,Ip, протекает от контактов 1, 2 к контактам 3,4. На выходе микросхемы (контакт 7) при Ip=0, напряжение равно половине напряжения питания микросхемы Vout=5/2 = 2.5В. При Ip=+30А (ток протекает в направлении от контактов 1,2 к контактам 3,4) на выходе микросхемы (контакт 7) будет напряжение Vout = 2.5 + 30 * 0.066 = 4.48B. При Ip=-30А (ток протекает в направлении от контактов 3,4 к контактам 1,4) на выходе микросхемы (контакт 7) будет напряжение Vout = 2.5 — 30 * 0.066 = 0.52B. Таким образом, при протекании переменного тока в контролируемой электрической сети, на аналоговом входе А0 микроконтроллера ARDUINO NANO будет напряжение, которое изменяется по синусоиде с частотой, равной частоте в электрической сети. Амплитуда напряжения на входе А0 будет пропорциональна электрическому току (линия А0 на графике внизу). Для измерения напряжения в электрической сети используется обычный трансформатор 220/12В, который подключен через четыре резистора и конденсатор к аналоговому входу А1 микроконтроллера ARDUINO NANO. ![]() В результате на входе А1 должна быть синусоида, как показано на графике внизу. Если в контролируемой электрической сети ток протекает через активную нагрузку, например электронагреватель или лампу накаливания, то синусоиды А0 и А1 будут совпадать по фазе. Т.е., синусоида тока и напряжения будут переходить через ноль в одно и тоже время, как показано на графике вверху. ![]() Если потребителем будет нагрузка с индуктивной составляющей, например, трансформатор или электродвигатель, то синусоиды А0 и А1 не будут совпадать по фазе. Синусоида тока и напряжения будут переходить через ноль в разное время со смещением φ, как показано графике внизу. При этом синусоида тока (А0) будет отставать. В случае, если потребителем будет нагрузка с емкостной составляющей, синусоида А0 будет опережать синусоиду А1, как показано на графике внизу. |
|||
В цепях переменного синусоидального тока, по причине постоянного изменения значения напряжения и тока, мощность нельзя вычислить путем простого перемножения напряжения на ток. Поэтому, выделяют сразу три вида электрической мощности: активную, реактивную и полную. | |||
Активная мощность в цепях синусоидального тока | |||
Единица измерения — ватт (обозначение: Вт; международное обозначение: W).![]() |
|||
Реактивная мощность в цепях синусоидального тока | |||
Единица измерения — вольт-ампер реактивный (обозначение: вар; международное обозначение: var)
|
|||
Полная мощность в цепях синусоидального тока | |||
Единица полной электрической мощности — вольт-ампер (обозначение: ВА; международное обозначение: VA)
|
|||
Алгоритм вычисления следующий. Через аналоговые входы А0 и А1 постоянно считываем текущие значения напряжения и тока, возводим их в квадрат и суммируем. С периодичностью в одну секунду, вычисляем среднеквадратичное значение для напряжения и тока. Произведение среднеквадратичного значения напряжения и тока дает величину полной мощности. Ниже приведен листинг программы. Вам потребуется библиотека UIPEthernet. В IDE Arduino 1.8.4 еее можно установить через меню «Скетч»-«Подключить библиотеку» — «Управлять библиотеками» — «Менеджер библиотек» — UIPEthernet. Также можно скачать библиотеку с GitHub по адресу https://github.com/UIPEthernet/UIPEthernet. |
|||
/*ПРОГРАММА ДЛЯ ИЗМЕРЕНИЯ ПАРАМЕТРОВ ЭЛЕКТРИЧЕСКОЙ СЕТИ Контроллер - Arduino Nano Ethernet модуль - ENC28J60 Датчик тока - ACS712 30A GY-712 Трансформатор для измерения напряжения - 220/12В Разработка - LIC CONTROL http://lic. |
Мой самодельный частотомер из китайского вещательного радиоприемника ECB EC-9708A
В давние времена я приобрел вот такой СВ-КВ-УКВ радиоприемник ECB EC-9708A:
Достоинством такого приемника является его цифровая шкала частоты. Как оказалось, такое устройство легко превратить в весьма точный частотомер для диапазона десятков-сотен мегагерц!
Открутив несколько винтиков и отщелкнув защелки, можно открыть корпус приемника. Затем откручиваем еще винтики и снимаем плату. Итак, перед ними три части — задняя крышка с элементами питания (1), плата радиоприемника (2) и передняя крышка с платой индикации и частотомером(!) (3):
От платы индикации к плате собственно приемника идет группа из трех проводов, которые подписаны » AM«, «FM» и «FM.G«.
Нас интересует провод с подписью «FM» — он на плате приемника подпаян к дисковому конденсатору. Этот провод и является входным проводом частотомера — аккуратно (!) отпаиваем его от конденсатора, ведь радиоприемник еще пригодится:
Теперь включаем режим «FM» (УКВ), перемещая ползунок, и можно через конденсатор емкостью несколько пикофарад подключить его к источнику сигнала, частоту которого требуется измерить. Также можно проверить частоту сигнала радиопередатчика, расположив его антенну рядом с проводом от частотомера.
Но есть один нюанс — частотомер рассчитан на измерение частоты гетеродина, которая в этом приемнике на 10,7 МГц выше частоты сигнала (промежуточная частота (IF) составляет 10,7 МГц). Поэтому для определения истинной частоты сигнала нужно прибавить к отображаемой частоте 10,7 МГц.
Я проверил работоспособность импровизированного частотомера, поднеся к нему передатчик с частотой сигнала 433,92 МГц:
Voi la 🙂 Как видим, отображается частота 423,3 МГц. Прибавляем 10,7 и получаем 423,3 + 10,7 = 434 МГц (отличие от 433,92 составляет 0,02 % !!!). Опыт преобразования приемника в частотомер оказался успешным!
Счетчик оказался кольцевым, т.е., например, показания приемника 998,0 МГц соответствуют частоте (998,0-1000) +10,7 = 8,7 МГц.
Измерение частоты и рабочего цикла с использованием Arduino
Arduino имеет несколько приложений. Мы можем найти его применение во многих различных областях и областях. Его можно использовать в области измерений также для измерения электрических величин (таких как напряжение, ток, мощность и т. Д.) Или физических величин (таких как температура, влажность, сила света, влажность и т. Д.) Или значений электронных компонентов и т. Д.
В данной статье показано, как измерять частоту и скважность импульсов с помощью Arduino.Измерение частоты требуется во многих различных приложениях. В области связи измерение частоты является наиболее важным. Рабочий цикл также является важным параметром для измерения, поскольку он дает% от ширины импульса, что означает время включения импульса. При управлении скоростью двигателя постоянного тока и управлении углом серводвигателя необходимо измерять ширину импульса. Также измеряется ширина импульса для проверки симметрии импульса в некоторых приложениях, таких как приемник цифрового сигнала, ретрансляторы и т. Д. Итак, давайте посмотрим, как мы можем использовать Arduino для измерения частоты и рабочего цикла импульсов. В данном проекте Arduino измеряет частоту, время включения, время выключения и рабочий цикл импульсов и отображает их на ЖК-дисплее 16×4
Описание:
Как показано на рисунке выше, в схеме есть только два основных компонента (1) Плата разработки arduino UNO и (2) ЖК-дисплей 16×4
· Импульсы подаются непосредственно в качестве входа на цифровой контакт 7 Arduino
· Контакты Rs и En ЖК-дисплея подключены к цифровым контактам 9 и 8 соответственно платы Arduino .Вывод Rw подключен к земле
· Последние четыре вывода данных D4 — D7 подключены к выводам 10, 11, 12 и 13 Arduino
· Анодный вывод светодиода задней подсветки (вывод 15) и вывод Vcc (2) ЖК-дисплея подается питание 5 В через плату Arduino
· Катод светодиода задней подсветки (вывод 16) и вывод Vss (1) подключены к земле
· Поток One1 K подключен к выводу Vee для изменения контрастности ЖК-дисплея
Работа схемы :
· Когда плата Arduino получает питание через USB, на ЖК-дисплее отображаются четыре параметра: « freq: Ton: Toff: Duty: » в каждой строке, как показано. подается на вывод 7, Arduino сначала ожидает, пока импульс будет высоким.Когда он становится высоким, он вычисляет период времени (в микросекундах), в течение которого пульс остается высоким. Это время it Ton
· Затем вычисляется период времени (в микросекундах), в течение которого пульс остается низким. Это время Toff
· Затем он складывает эти два временных интервала, чтобы получить общее время — означает период
· Из общего времени arduino вычисляет частоту как
Частота = 1 / время
· И из Ton и Toff вычисляется долг как
Duty = Ton / (Ton + Toff)
· Затем он отображает все четыре параметра на ЖК-дисплее
· Снова через 1 секунду он повторяет ту же процедуру
· Таким образом, он непрерывно измеряет изменение частоты и рабочего цикла импульса
Как посчитать частоту с Arduino · Один транзистор
Правильный способ подсчета частот от нескольких герц до 6 МГц с помощью платы Arduino. Настраивайте аппаратные таймеры и используйте прерывания. Добавьте дисплей и создайте недорогой частотомер.
Хороший способ измерения частоты — подсчет переходов входного сигнала, которые происходят за определенный промежуток времени.Это требует знания таймеров и прерываний. Метод сложнее реализовать, и для того, чтобы все было правильно, нужно установить несколько регистров.
Это было сделано раньше, и хотя его было трудно найти, я обнаружил код, который может считать частоты до 8 МГц, если входной сигнал имеет рабочий цикл 50%. Единственным недостатком является то, что входной вывод частоты закреплен на цифровом выводе 5. Однако верхний диапазон не ограничивается лишь несколькими МГц. С помощью некоторого дополнительного оборудования (микросхема предварительного делителя частоты) частоты в сотни МГц могут быть измерены с достаточной точностью.
То, что вы видите на моей макетной плате на фотографии выше, является платой, совместимой с Arduino Nano, и простым кварцевым генератором, построенным на старом шестнадцатеричном инверторе 74LS04.
В программе используются два таймера. Первый таймер будет настроен на использование неизвестной частоты в качестве источника синхронизации. Его переполнения будем считать по прерыванию. Второй таймер будет срабатывать прерывание через определенные промежутки времени. Эта процедура прерывания считывает текущее значение первого таймера. Используя это и количество фактических переполнений, можно рассчитать частоту. Первым шагом является проверка таблицы данных ATmega328:
Внешняя тактовая частота должна быть меньше половины системной тактовой частоты (fTnСледовательно, максимальная частота, которую вы можете посчитать с ATmega328 Arduino, составляет 16 / 2,5 = 6,4 МГц. Немного, но все же намного лучше, чем PulseIn. Я буду использовать Timer1 (который составляет 16 бит) для подсчета входных импульсов неизвестного сигнала. При входной частоте, скажем, максимальной 8 МГц, 16-битный регистр переполнится (достигнет максимального значения 65535) через 8,192 мс. Это слишком мало для низкочастотных сигналов. Разрешение таймера необходимо увеличить за счет счетчика переполнения. При каждом переполнении значение счетчика увеличивается (увеличивая разрешение таймера). Таким образом, Timer1 увеличивается на каждом нарастающем фронте на выводе D5.
Таймер 2 сохранит… время. Это 8-битный таймер, но мы позволим ему считать только до 124 (это означает 125 «тактов»).Частота счета определяется установкой предварительного делителя на 128. При тактовой частоте 16 МГц плат Arduino Timer2 будет «тикать» с частотой 16 МГц / 128 = 125 кГц. Считайте 125 раз с частотой 125 кГц. Сколько времени прошло? Ну 1 миллисекунда. Таймер 2 переполняется каждые 1 мс. Сколько раз он переполняется до вычисления частоты Timer1 — это переменная, которую можно изменить, если хотите. Высокие частоты могут быть дискретизированы за короткие периоды, в то время как низкочастотные сигналы могут быть дискретизированы за более длительный период времени для точного считывания.
Значение по умолчанию для переменной samplingPeriod установлено на 200 мс. Мне удалось измерить с его помощью всего 50 Гц (период 20 мс) — засчитывается только 10 отсчетов.
Вот код (также на GitHub):
// Частотомер Arduino от нескольких Гц до 6 МГц // Один транзистор, 2018 // https://www.onetransistor.eu/ // // На основе: // * Скетч частотомера Ника Гаммона (CC BY 3.0 AU) // http://www.gammon.com.au/timers // * Библиотека FreqCounter от Мартина Наврата (LGPL 2.1) // http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-frequency-counter-library/ // здесь задаем период выборки (в миллисекундах): беззнаковое int samplingPeriod = 200; // Таймер 1 переполняет счетчик непостоянное длинное переполнение без знака1; void init_Timer1 () { переполнение1 = 0; // сбросить счетчик переполнения // Устанавливаем регистры управления (см. Таблицу) TCCR1A = 0; // нормальный режим работы TCCR1B = бит (CS12) | бит (CS11) | бит (CS10); // использовать внешний источник синхронизации TCNT1 = 0; // устанавливаем текущее значение таймера на 0 TIMSK1 = бит (TOIE1); // разрешить прерывание при переполнении } ISR (TIMER1_OVF_vect) { overflow1 ++; // увеличиваем счетчик переполнения } // Таймер 2 переполняет счетчик volatile unsigned int overflow2; void init_Timer2 () { переполнение2 = 0; // сбросить счетчик переполнения GTCCR = бит (PSRASY); // сбросить предделители // Устанавливаем регистры управления (см.Таблицу) TCCR2A = бит (WGM21); // Режим CTC TCCR2B = бит (CS22) | бит (CS20); // предделитель установлен на 1/128, "тики" на 125 кГц OCR2A = 124; // считает от 0 до 124, затем запускает прерывание и сбрасывается; TCNT2 = 0; // устанавливаем текущее значение таймера на 0 TIMSK2 = бит (OCIE2A); // разрешить прерывание } // прерывание происходит каждые 125 отсчетов / 125 кГц = 0.001 секунда = 1 мс ISR (TIMER2_COMPA_vect) { if (++ overflow2
Серийный .print ("Частота:"); Последовательный .print ((длинное без знака) freqHz); Последовательный .println ("Гц"); // сбросить таймеры TCNT1 = 0; переполнение1 = 0; TCNT2 = 0; переполнение2 = 0; } void setup () { // включить последовательный вывод Серийный .begin (115200); Serial . println («Частотомер Arduino»); Серийный .println (); // Отключить Timer0; millis () больше не будет работать TCCR0A = 0; TCCR0B = 0; // запускаем таймер 1 (частота счета) init_Timer1 (); init_Timer2 (); } void loop () { // здесь ничего; прерывания выполняют все // вы можете добавить пользовательский ввод, который изменяет период выборки }
В отличие от проектов, на которых я основывал свой код, мой скетч выполняет непрерывный подсчет и отображение частоты после каждого периода выборки.Обратите внимание, что период выборки следует регулировать в зависимости от желаемого частотного диапазона. Это напрямую влияет на интервал обновления дисплея. Автоматический выбор диапазона также возможен за счет увеличения периода выборки, если подсчитанных выборок мало, и наоборот. Этот код разработан и протестирован только на ATmega328. У других микроконтроллеров могут быть другие регистры. Обязательно посетите форум Ника Гаммона, где он адаптирует аналогичный код для ATmega2560 и очень хорошо объясняет, как это работает.![]()
Сейчас построить частотомер довольно просто.Просто добавьте буфер отображения и ввода. Если вы не будете измерять только сигналы 5 В, вам понадобится буферная схема. Он может быть построен с использованием транзистора, операционного усилителя или триггера Шмитта.
ЧастотомерArduino | Arduino Projects
В этом посте показано, как построить частотомер с использованием платы Arduino UNO, где значение частоты сигнала отображается на ЖК-экране 1602.
С помощью этого счетчика мы можем измерять частоту сигналов ШИМ с пиковым напряжением 5В.Связанный проект:
Измеритель частоты 220/380 В переменного тока с ArduinoТребуемое оборудование:
Это список всех компонентов, необходимых для создания этого проекта.
- Плата Arduino UNO —> Atmega328P datasheet
- ЖК-экран 16 × 2
- Резистор 330 Ом
- Переменный резистор или потенциометр 10 кОм
- Макетная плата
- Перемычки
Project принципиальная схема показана ниже.
![]()
ЖК-экран 16 × 2 (2 строки и 16 столбцов) используется для отображения значений частоты и периода входного напряжения, где:
RS -> цифровой контакт 2 Arduino
E -> цифровой контакт 3 Arduino
D4 -> цифровой контакт Arduino 4
D5 -> цифровой контакт Arduino 6
D6 -> цифровой контакт Arduino 7
D7 -> цифровой контакт Arduino 8
VSS, RW, D0, D1, D2, D3 и K подключены к Arduino GND ,
VEE к выходу переменного резистора (или потенциометра) 10 кОм,
VDD к Arduino 5V и A к Arduino 5V через резистор 330 Ом.Вывод VEE используется для управления контрастностью ЖК-дисплея. A (анод) и K (катод) — выводы светодиода задней подсветки.
Сигнал ШИМ имеет два контакта, скажем, положительный (+) и отрицательный (-), они подключены к схеме, как показано выше.
Положительный вывод подключается к цифровому выводу 5 Arduino, а отрицательный вывод подключается к выводу Arduino GND.Код счетчика частоты Arduino
Для следующего кода Arduino требуется библиотека, которая помогает легко выполнять этот проект.Эта библиотека называется FreqCount, ее можно установить онлайн через диспетчер библиотек Arduino (Управление библиотеками…) или вручную, загрузив и установив ее zip-файл. Ссылка для скачивания ниже:
Библиотека Arduino FreqCount —> прямая ссылкаБиблиотека FreqCount использует модуль Timer / Counter1 для подсчета количества импульсов в течение фиксированного времени, модуль Timer / Counter2 используется для этого фиксированного времени.
Полный код Arduino:
1
2
3
4
5
6
7
8
13
14
15
16
17
18
19
20
21
22
23
24
25
0002 26 000 0002 26 000
30
31
32
33
34
35
36
37
38
/ ******************** ************************************************* ****
*
* Частотомер Arduino.
![]()
* Это бесплатное программное обеспечение БЕЗ ГАРАНТИИ.
* https://simple-circuit.com/
*
******************************* *************************************** /
#include
#include
// включить ЖК-библиотеку Arduino
// Подключения ЖК-модуля (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd (2, 3, 4, 6, 7, 8);
void setup (void) {
// установка количества столбцов и строк ЖК-дисплея
lcd.begin (16, 2);
lcd.print («ЧАСТОТА:»);
// инициализировать библиотеку freqCount с временной базой 1000 мс (1 секунда)
// Arduino подсчитывает количество импульсов в течение 1 секунды
FreqCount.begin (1000);
}
// основной цикл
void loop () {
if (FreqCount.available ()) {
unsigned long count = FreqCount.read ();
ЖК.setCursor (0, 1);
жк.
Отпечаток (кол.); // вывод значения частоты в Гц
lcd.print («Hz»);
}
}
// конец кода.
На видео ниже показана схема прототипной платы проекта:
Сделай сам простой измеритель частоты Arduino до 6,5 МГц
Его диапазон измерения от нескольких герц до 6.5 мегагерц. Также доступны три временных интервала измерения — 0,1, 1 и 10 секунд. Если мы измеряем только прямоугольные сигналы, тогда нет необходимости в усилителе-формирователе, и сигнал подается непосредственно на цифровой вывод 5 от Arduino.
Код очень прост благодаря библиотеке FreqCount, которую вы также можете скачать ниже.![]()
Этот проект спонсировал NextPCB. Вы можете помочь мне поддержать, проверив их по одной из этих ссылок:
Всего 7 долларов для заказа SMT:
https: // www.nextpcb.com/?code=Mirko
Производитель надежных многослойных плат:
https://www.nextpcb.com
Платы для печатных плат 10 шт. бесплатно:
https://www.nextpcb.com/pcb-quote?act=1
Скидка 20% — Заказы на печатную плату:
https://www.nextpcb.com/pcb-quoteУстройство очень простое и состоит из нескольких компонентов:
— Микроконтроллер Arduino Nano
— Плата формирующего усилителя
— ЖК-дисплей
— Селектор формы входного сигнала
— Входной разъем
— и переключатель временного интервала: мы можем выбрать три интервала 0.1 -1 -и 10 секунд.Как вы можете видеть на видео, прибор очень точен во всем диапазоне, и мы также можем откалибровать частотомер с помощью простой процедуры, описанной ниже:
В папке библиотек Arduino найдите библиотеку FreqCount,
в файле FreqCount.cpp найдите строки:
#if defined (TIMER_USE_TIMER2) && F_CPU == 12000000L
float corrective = count_output * 0.996155;
и замените их на:
#if defined (TIMER_USE_TIMER2) && F_CPU == 16000000L
float right = count_output * 1.000000;
, где 1.000000 — ваш коэффициент коррекции, коррекция
должна выполняться путем подачи 1 МГц на вход частотомера.
После изменения файла загрузите новый скетч на плату Arduino.Наконец, частотомер встроен в подходящий пластиковый ящик и является еще одним полезным инструментом в электронной лаборатории.
(PDF) Измерение низкочастотного сигнала энергосистемы с помощью Arduino
0HDVXUHPHQWRI / RZ) UHTXHQF \ 6LJQDORI
3RZHU * ULG8VLQJ $ UGXL0002 Abb, Modin 9hd Халим, Мохамад
Ханифф Харун, Халил Ажа Мохд Аннуар,
Сузиана Ахмад и Мохд Ханиф Бин Че Хасан
Исследовательская группа по творчеству, инновациям и технологиям, инженерный факультет
Технологии, Университет Текникал, Малайзия, Мелака (76100 Дьюриан) Tunggal, Melaka,
Malaysia
Электронная почта: mohd.
[email protected]
Аннотация — Диапазон частот, измеряемых измерительным устройством
, зависит от цели
, выполняющей измерение. Измерительный прибор частоты
построен специально в соответствии с диапазоном
, в то время как цена прибора
пропорциональна его функциям. В этой статье низкочастотное измерительное устройство
для контроля частоты сети — это
, разработанное с использованием технологии Arduino.Объясняются все аспекты конструкции
от программного обеспечения до оборудования.
Это устройство стоит менее 100 долларов США и
способно выполнять регистрацию данных для анализа данных.
Диапазон частот для устройства составляет от 45 Гц
до 60 Гц с разрешением 0,003 Гц. В этой статье
также обсуждается стандартное коммерческое измерительное устройство
в системе питания и возможности Arduino.
Данные измерений с прибора
анализируются на их точность и надежность.
![]()
Ключевые слова: Arduino, мониторинг частоты сети, алгоритм пересечения нуля —
I. ВВЕДЕНИЕ
Частота сигнала измеряется в герцах, то есть для
непрерывный синусоидальный сигнал sin (x), частота может
можно определить, зная период сигнала. В
в большинстве случаев инженер не знает точную функцию
сигнала, но сигнал может быть отнесен к категории
в соответствии с его поведением: синусоидальный,
прямоугольный или треугольный.Большинство стран европейского континента
используют 50 Гц в качестве стандартной частоты сети
. Электроэнергия
передается от электростанции к бытовому пользователю по синусоидальной схеме с частотой 50 Гц.
В этом документе источник переменного тока в розетке установлен на
тестовый сигнал для измерительного устройства. Согласно
Европейская сеть операторов систем передачи
для электроэнергии (ENTSO-E), разрешающая способность устройства контроля частоты сети
должна составлять всего 0.
01
Гц, чтобы увидеть, не происходит ли отклонение частоты [1].
Следовательно, назначенный здесь тестовый сигнал будет
идеально подходит для оценки функциональности
измерительного устройства и его характеристик.
В прошлом измерительные устройства
выступали в качестве инструментов поиска и устранения неисправностей для инженеров-электриков. Сложность электрической системы
продвигает идею мониторинга параметров
и регистрации данных. Понимание
поведения любой системы через ее основные параметры
обеспечивает стабильность и надежность системы.Очевидным примером сложной системы
, требующей постоянного мониторинга
, является сеть передачи электроэнергии
.
II. ЧАСТОТА ВЫЧИСЛЕНИЙ С ПОМОЩЬЮ ARDUINO
A. Технологии и Arduino
Технологии развиваются очень быстро, поскольку люди стремятся построить
мир, в котором будет лучше жить. Самая важная технология
за последнее десятилетие — компьютер.
Его создание
открывает возможность программистам создавать
множества необычных программ и приложений, без которых
человека ведут скучную жизнь, таких как компьютерные
игры, коммуникационное программное обеспечение и так далее.Для увеличения возможностей технологии
, программное обеспечение для разработки
и операционная система
доступны без лицензирования и авторизации. Arduino — это
, один из инструментов, который разработан специально, чтобы дать пользователю
больше свободы в том, как они хотят, чтобы инструменты
вели себя. Единственный капитал, который пользователь должен потратить
, — это аппаратное обеспечение микроконтроллера [2].
Информацию об использовании платформы и пример программы
можно легко получить на главном веб-сайте
Arduino.Arduino предлагает широкий выбор
плат, комплектов, экранов и аксессуаров, которые могут быть использованы
в зависимости от цели пользователя.
Большая часть продуктов Arduino состоит из
основных возможностей микроконтроллера, таких как аналоговый преобразователь
, цифровой преобразователь (АЦП), вход ШИМ, SRAM, стандартная тактовая частота
16 МГц от микросхемы Atmel и достаточное количество контактов ввода / вывода переменного и постоянного тока
. Arduino Uno — это одна из плат Arduino
, которая может использоваться для выполнения предварительных вычислений
входного сигнала с приемлемым временем обработки и производительностью
.Он может выполнять базовый мониторинг данных
в реальном времени. Это также одна из самых дешевых плат
в семействе Arduino.
B. Вычисление частоты в Arduino
В предыдущем разделе автор объяснил основные правила
вычисления частоты. Если можно определить период сигнала
, тогда можно вычислить частоту
. АЦП Arduino считывает аналоговый вход и преобразует
значений в 10-битный цифровой вход с частотой преобразования = 125 кГц
.
Для этой заданной частоты дискретизации 125
Jabatan Pengajian Tinggi Kementerian Pendidikan Malaysia
(спонсоры).
96978-1-4799-8598-2 / 15 / $ 31,00 © 2015 IEEE
Измеритель частоты— Arduino — Robo India || Учебники || Изучите Arduino |
В этом руководстве Robo India объясняется, как измерить частоту входящих сигналов с помощью Arduino.
1. Введение:
В этом руководстве мы измерили частоту сигнала, генерируемого микросхемой таймера 555.Этот частотомер может измерять частоту до 1 МГц.
ИС таймера555, используемая в этом руководстве, настроена для работы в нестабильном режиме, то есть выход постоянно переключает состояние между высоким и низким без какого-либо взаимодействия с пользователем. Эта переменная частота будет отправлена в Arduino в качестве входных данных.
Arduino измеряет время между ВЫСОКИМ и НИЗКИМ уровнем сигнала и возвращает значение в микросекундах.
После сложения длительности обоих времен от HIGH до LOW и от LOW до HIGH, значение, обратное этому значению, даст частоту сигнала.
Диапазон частот сигнала, генерируемого таймером, зависит от емкости конденсатора, который мы использовали. Вращая предустановку, прикрепленную к схеме, мы можем увеличивать или уменьшать значение частоты, отображаемой на ЖК-дисплее.
1,1 555 Схема выводов ИС таймера: В качестве генератора импульсов используется микросхема таймера
555. Эту ИС можно использовать для обеспечения временных задержек, как осциллятор и как элемент триггера.
Контакт 1 (контакт заземления): Контакт заземления.
Контакт 2 (триггерный контакт): Соединяется с контактом 6. Если контакты 2 и 6 имеют НИЗКИЙ уровень, то выход переходит и остается ВЫСОКИМ, но если контакт 6 — ВЫСОКИЙ, а контакт 2 — НИЗКИЙ, то выход становится НИЗКИМ.
Контакт 3 (выходной контакт): переходит в высокий и низкий уровень и выдает до 200 мА.
![]()
Контакт 4 (контакт сброса): Для сброса микросхемы.
Контакт 5 (контакт управления): Обеспечивает доступ для управления внутренним делителем напряжения.
Контакт 6 (пороговый контакт): Обнаруживает 2/3 напряжения, чтобы сделать выход НИЗКИМ, только если контакт2 ВЫСОКИЙ.
Контакт 7 (вывод разряда): Выход с открытым коллектором, который может разрядить конденсатор между интервалами.
Контакт 8 (контакт питания): Подключается к источнику питания 5 В.
2. Необходимое оборудование
3. Строительный округ
4. Программирование
Вы можете скачать этот скетч (код) Arduino отсюда.
#include < LiquidCrystal_I2C .h> LiquidCrystal_I2C lcd (0x3F, 2, 1, 0, 4, 5, 6, 7, 3, ПОЛОЖИТЕЛЬНЫЙ); // для отображения на lcd const int input = 7; // сгенерированная таймером волна в качестве входных данных, передаваемых в Arduino // ---- объявление переменной ------------- int HighInput; // сохраняем максимальное время волны int LowInput; // сохраняем низкое время волны float TotalInput; // для сохранения общей продолжительности времени между высоким и низким импульсом частота поплавков; установка void () { pinMode (вход, ВХОД); lcd.begin (16, 2); lcd.backlight (); жк.setCursor (0,0); lcd.print («Робо Индия»); lcd.setCursor (0,1); lcd.print («Счетчик частот»); задержка (2000); } пустой цикл () { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Частота:"); lcd.setCursor (0,1); lcd.print (""); HighInput = pulseIn (вход, ВЫСОКИЙ); LowInput = pulseIn (вход, НИЗКИЙ); TotalInput = HighInput + LowInput; частота = 1000000 / TotalInput; lcd.setCursor (0,1); lcd.print (частота); lcd.print ("Гц"); задержка (500); }
5.Выход
Прикрепленный ЖК-дисплей отображает частоту сигнала.
Если у вас есть вопросы, напишите нам по адресу [email protected]
С уважением и уважением
Команда разработки контента
Robo India
https://roboindia.comЧастотомер, совместимый с Arduino
Высокоточный частотомер, совместимый с Arduino
Концепция этой платы — это открытая, очень универсальная схема частотомера , которую можно использовать для измерения самых разных сигналов.
Он разработан так, чтобы его можно было настраивать всеми возможными способами.
Freq_LF_HF финальный прототип
На платеFreq_LF_HF v1.0 используется знаменитый микроконтроллер AVR Atmega328p-AU . Это не новейшая модель ATMEL, но этот чип входит в стандартную комплектацию платы Arduino UNO v3.0. Это мощный микроконтроллер и очень маленький (TQFP-32). Это дает возможность пользователям пользоваться поддержкой сообщества Arduino и множеством программных библиотек . Прошивка использует пару из Wonderfull functionnalities этого чипа, а именно таймера 16 бита, прерываний и компаратора на внешнюю ссылку точности напряжения.
Доказательство концепции было выполнено путем макета и использования отдельной платы UNO. Последовали 3 прототипа, чтобы выбрать между парой топологий и, в конечном итоге, настроить плату. Пришло время произвести первую партию не менее 100 плат профессиональной монтажной компанией с использованием новейших доступных технологий.
Цифровой частотомер будет включать:
Очень широкополосный, он может измерять частоты от менее 5 Гц до более 5 МГц или 120 МГц, благодаря уникальной архитектуре аппаратного и программного обеспечения.Низкочастотные сигналы (LF), высокочастотные сигналы (HF) и очень высокочастотные сигналы (VHF, на модели 120 МГц) обрабатываются отдельно для получения очень хорошей точности по всей полосе пропускания.
Амплитуда сигнала колеблется от 0,2 до 10 вольт (допустимо 30 вольт) .
Высокая точность :
- Точность, прибор не откалиброван: 10 ppm
- Калибровка +/- 10,0 ppm
- Точность: 10 стр. / Мин.
Разрешение дисплея для 1 секунды и 10 секунд сбора данных
Измерение: 5 Гц, 50 Гц, 440.1 Гц, 1,001 кГц, 32,768 кГц, 450 кГц, 4 МГц, 80 МГц.
Измерение сигнала 4 МГц.
- Использует стандартный 16-символьный однострочный ЖК-дисплей для четкого представления частоты.
ЖК-дисплей можно снять с платы и при необходимости установить на коробку.
- Может питаться от преобразователя 9В постоянного / переменного тока или непосредственно на контакты печатной платы или от батареи с адаптером, входящим в комплект. Он выдерживает напряжение от 7.5 и 12 вольт. Источник питания защищен плавким предохранителем.
- Это с защитой от перенапряжения и пониженного напряжения . Доска будет показывать сообщения об ошибках.
- Сигнал может быть подан на плату через разъем BNC или разъемы для печатной платы.
- Входное сопротивление 1 МОм .
- Вход сигнала защищен от электростатических разрядов диодом TVS с максимальной мощностью разряда до 200 Вт / 3 А (Внимание, речь идет только об электростатических разрядах! Пользователи никогда не должны пытаться измерять сигналы выше 30 В от пика до пика!).
- Он имеет кнопку сброса для сброса AVR.
- A кнопка меню для выбора значений параметров:
- Диапазон частот: LF / HF (автоматическое вычисление низких или высоких частот), LF, HF и VHF (выше 1 МГц).
![]()
- Калибровка.
- Режим ожидания / экономии энергии задействован, когда плата не измеряет частоту в течение 5 минут или по запросу.
- Это компактная плата (примерно 82 * 60 мм).
Пример приложения: совместное использование значений частоты между Freq_LF_HF и Arduino Nano через I2C @ 100 кГц
- Позволяет настраивать программное обеспечение. Поскольку он основан на стандартных библиотеках Arduino и кодировании, вы можете настроить его и даже изменить функциональность платы. Библиотека с открытым исходным кодом под лицензией Creative Commons
.- Использует порт SPI для программирования с помощью программатора SPI. Для этого не требуется загрузчик, но пользователь может его загрузить.Этот порт также можно использовать для взаимодействия с другим периферийным устройством.
- Имеет последовательный порт (USART) , доступный для последовательной связи с ПК через адаптер USB-последовательный порт или для взаимодействия с другим периферийным устройством.
Его также можно использовать для программирования платы.
- Имеет порт I2C , доступный для взаимодействия со многими интегрированными компонентами или установления сложной связи между платами Arduino.
Это настоящий кикстартерный проект, а не продажа существующего продукта. Это оригинальный дизайн, нигде больше не публиковавшийся! Перед серийным производством он будет испытан как полностью функциональный прототип, а не как промышленный прототип. Перед поставкой платы пройдут технические и функциональные испытания.
Тестирование ocxo 80 МГц.
Я живу рядом с морем, и мне надоело смотреть на грязные пляжи и умирающее море. Любой производственный процесс, особенно в высоких технологиях , включает использование многих химикатов, драгоценных материалов, энергии, транспорта и т. Д. В соответствии с одной из наших целей, для этого проекта я сделаю вклад в The Ocean Cleanup.