Предлагаю для повторения простой 32-полосный анализатор частотного спектра аудио сигнала с использованием Arduino. Благодаря применению в проекте Arduino схема значительно упростилась, и её сможет повторить любой аудиоэнтузиаст, студент или новичок, обладающий базовыми знаниями об электронных компонентах, программировании на Arduino и C. Компоненты, используемые в этом проекте, легко доступны и недороги.
Основные характеристики этого анализатора частотного спектр:
- Использует легко устанавливаемые библиотеки «arduinoFFT» и «MD_MAX72xx».
- Поддерживаются пять различных режимов отображения, которые можно переключать с помощью кнопки.
- Левый и правый каналы аудиосигнала микшируются, поэтому вы не пропустите ни одного удара.
- В прототипе используется светодиодный матричный дисплей 32x8, его можно легко изменить и модифицировать.
- Звук может подаваться через выход для наушников или линейный выход музыкальной системы/усилителя.
Требуемые компоненты:
Номиналы резисторов не очень строгие, вы можете выбрать любое ближайшее значение. Убедитесь, что резисторы на 100к имеют одинаковое значение!
Схема анализатора спектр
Описание устройства
Плата Arduino (ATmega328P) имеет встроенный аналого-цифровой преобразователь (АЦП), который используется здесь для преобразования входного аудиосигнала в цифровые образцы. АЦП настроен на выборку входного сигнала с тактовой частотой 38,46 кГц. Это достигается путем настройки прескалера АЦП на 32. Частота дискретизации 38,64 кГц означает, что цифровые сэмплы могут воспроизводить входную частоту до 19,32 кГц (теорема Найквиста), что достаточно хорошо для аудиосигналов.
Левый и правый аудиоканалы смешиваются и подаются на аналоговый вход A0 АЦП. Вы можете использовать аудиоразветвитель, для того, чтобы одновременно подавать одну и ту же музыку на анализатор спектра и на другой усилитель (при необходимости).
АЦП настроен на использование внешнего опорного напряжения. В этом проекте опорное напряжение получается от источника стабилизированного напряжения 3,3 В на плате Arduino. Поскольку аналоговый сигнал колеблется выше и ниже нулевого уровня напряжения, нам необходимо смещение постоянного тока на аналоговом входе АЦП. Это гарантирует, что выход АЦП не будет ограничивать отрицательные циклы входного сигнала. То же самое стабилизированное напряжение 3,3 В делится на два резисторами на 100к, и затем подается на аналоговый вход для смещения постоянного тока. При таком смещении постоянного тока АЦП будет выдавать на выходе 512, даже если входной сигнал отключен. Позже в коде это число 512, вызванное смещением постоянного тока, вычитается, так что показания представляют фактическое изменение входного сигнала.
Библиотека ArduinoFFT — это сердце кода, которое выполняет преобразование входного аналогового сигнала в частотный спектр. Я обнаружил, что эта библиотека проста в использовании и обеспечивает наиболее точный результат для этого проекта. Прототип настроен на получение 64 выборок и выполняет FFT с этими выборками. Библиотека ArduinoFFT может выполнять FFT выборок от 16 до 128, это можно настроить в программе. Но библиотека arduinoFFT довольно медленная при расчете со 128 выборками, поэтому для приемлемой работы я сделал 64 выборки.
Дисплей, используемый в этом проекте, представляет собой светодиодную матрицу из 32 столбцов и 8 рядов. Библиотека MD_MAX72xx значительно упростила управление дисплеем. Эта библиотека предоставляет функцию включения/выключения любого количества светодиодов в столбце, который используется в этой программе. Амплитуда каждой полосы частот отображается в диапазоне от 0 до 8, в зависимости от амплитуды включается соответствующее количество светодиодов в каждом столбце.
В этой программе доступны пять режимов отображения, что в основном достигается за счет включения/выключения светодиодов в разных позициях в каждом столбце. Вы можете легко изменить/создать другой узор. Здесь используется кнопка для изменения режима отображения. При каждом нажатии шаблон дисплея перемещается к следующему и, наконец, возвращается в режим по умолчанию. Кнопка подключена к одному из цифровых входов, и этот вход сканируется после каждого цикла обновления дисплея.
Частотная характеристика
Частотная характеристика системы была протестирована путем подачи синусоидальной волны, генерируемой одним из веб-сайтов онлайн-генераторов сигналов. Подтверждено, что система способна реагировать на частоты до 18,6 кГц.
Подключение входа
Существует несколько способов подачи аудиосигнала на вход анализатора спектра. Можете вывести аудиовыход LINE из музыкальной системы. Другой вариант — получить звук через выход для наушников мобильной/музыкальной системы. Я не рекомендую использовать микрофон для приема звука, поскольку уровень сигнала и частотная характеристика будут зависеть от многих факторов.