Arduino:Примеры/SimpleAudioFrequencyMeter: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<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">») |
Нет описания правки |
||
Строка 33: | Строка 33: | ||
==Код== | ==Код== | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Простой измеритель частоты для Arduino Zero | Простой измеритель частоты для Arduino Zero |
Версия от 18:20, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Простой измеритель звуковой частоты[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"); // " Гц"
}
}