Arduino:Примеры/SimpleAudioFrequencyMeter: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
 
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 33: Строка 33:
==Код==
==Код==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
/*
/*
   Простой измеритель частоты для Arduino Zero
   Простой измеритель частоты для Arduino Zero
Строка 77: Строка 77:


<references />
<references />
{{Навигационная таблица/Портал/Arduino}}
[[Категория:Пример]]
[[Категория:Пример]]
[[Категория:Примеры]]
[[Категория:Примеры]]
[[Категория:Пример программирования Arduino]]
[[Категория:Пример программирования Arduino]]
[[Категория:Примеры программирования Arduino]]
[[Категория:Примеры программирования Arduino]]

Текущая версия от 12:37, 8 июля 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Простой измеритель звуковой частоты[1]

Этот пример показывает, как использовать библиотеку AudioFrequencyMeter для платы Arduino/Genuino Zero. В скетче будет измеряться частота сигнала на 0-ом аналоговом входном контакте, усиленного через специальную электронную цепь. Диапазон частот, которые в данный момент может «уловить» библиотека, составляет от 60 до 1500 Гц, и его можно сузить при помощи функции setBandwith(). Библиотеку AdioFrequencyMeter можно установить при помощи «Менеджера библиотек» в IDE Arduino.

Необходимое оборудование

  • Плата Arduino/Genuino Zero
  • Триммер-потенциометр на 10 кОм
  • Один усилитель – LMV386 или TLV2462
  • Два резистора на 100 кОм
  • Два резистора на 2,47 кОм
  • Конденсатор на 100 мкФ
  • 3,5-миллиметровый разъем

Цепь

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

За настройку звукоусилителя отвечает триммер-потенциометр на 10 кОм. Кроме того, динамика этого показателя будет отображаться в мониторе порта IDE Arduino: если данные о частоте, считываемые системой, «успокоились», это значит, что коэффициент усиления настроен правильно.

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

Схема

Код

/*
  Простой измеритель частоты для Arduino Zero

  Демонстрирует, как сэмплировать входной сигнал, чтобы получить
  его частоту 

  Этот код не защищен авторским правом.

  http://arduino.cc/en/Tutorial/SimpleAudioFrequencyMeter

  Создан Артуро Гуадалупи (Arturo Guadalupi; a.guadalupi@arduino.cc) 
  10 ноября 2015 года
*/

#include <AudioFrequencyMeter.h>

AudioFrequencyMeter meter;

void setup() {
  // поместите здесь код, который будет запускаться лишь единожды:
  Serial.begin(115200);
  Serial.println("started");  //  "Работа скетча началась"

  meter.setBandwidth(70.00, 1500);    // игнорируем частоты за пределами этого диапазона
  meter.begin(A0, 960000);             // инициализируем A0 c сэмплированием на 45 КГц
}

void loop() {
  // поместите здесь код, который будет запускаться раз за разом
  float frequency = meter.getFrequency();
  if (frequency > 0)
  {
    Serial.print(frequency);
    Serial.println(" Hz");  //  " Гц"
  }
}

См.также

Внешние ссылки