- Простой спектроанализатор звука
- Графический анализатор аудио спектра на Arduino
- ОПИСАНИЕ
- ВИДЕО
- КОМПОНЕНТЫ
- Индикатор спектра звукового сигнала своими руками
- Анализатор-визуализатор спектра аудио сигнала на базе Arduino
- Почему именно анализатор-визуализатор спектра?
- Разработка устройства
- Сборка устройства
- Написание программы
- Сборка конечного устройства
- Видео работы устройства
Простой спектроанализатор звука
Наверняка вы не раз видели в магнитофонах или музыкальных центрах красивые световые столбики, прыгающие под такт музыки. Называется данное устройство — спектроанализатор звука. Именно об изготовлении такого устройства своими руками я и расскажу в данной статье.
Основой устройства являются микросхемы AN6884 (можно и транзисторы, но их понадобится много и эффект будет хуже, а чувствительность ниже). Вот схема включения микросхемы:
В качестве индикаторов применены светодиодные линейные шкалы или обычные светодиоды. Если использовать линейные шкалы, то печатную плату вряд ли удастся сделать, лучше использовать готовую макетную плату. На одной стороне разместить индикаторы, с другой — всё остальное.
Для первой схемы: вместо пятиразрядной AN6884 можно использовать любые аналогичные индикаторы уровня сигнала с соответствующими им схемами включения. Резистор R подбирается в зависимости от напряжения питания (от 50 Ом, при 7В до 100 Ом, при 12В).
Можно использовать схему с транзисторами. Для второго варианта схемы используются транзисторы типа КТ315 или КТ3102, диоды 1n4148 или КД522. Для регулировки уровня перед фильтром устанавливаются подстроечные резисторы на 100кОм, как на первой схеме. При слабом уровне сигнала придётся использовать предусилитель.
Для каждого столбика необходима одна микросхема (или несколько транзисторов в зависимости от количества светодиодов в столбце) и фильтр для выделения определённой частоты. Количество столбиков может быть любым, только придётся подбирать фильтры для каждого. Примеры фильтров:
Низкочастотный фильтр обычно ставится слева, высокочастотный справа. Вы можете поэкспериментировать с подбором фильтров, изменяя ёмкости конденсаторов и сопротивления. Для низкочастотного фильтра вместо конденсаторов и резисторов можно использовать катушку индуктивности (около 500 витков тонкого провода). Настройка производится регулировкой подстроечных резисторов.
Источник
Графический анализатор аудио спектра на Arduino
ОПИСАНИЕ
Графоанализатор спектра с кучей настроек и возможностей
- Вывод спектра на:
- Дисплей 1602
- Матрица из 4х блоков 8х8 (MAX7219)
- Матрица адресных WS2812
- Настройка яркости
- Настройка цветовой гаммы (для WS2812)
- Настройка усиления и подавления шумов
- Настройка плавности анимации
- Настройка громкости:
- Фиксированная
- С потенциометра
- Автоматическая
- Точки максимума
- Вкл выкл
- Время зависания
- Скорость падения
- Ручная выборка по частотам
ВИДЕО
КОМПОНЕНТЫ
Каталоги ссылок на Алиэкспресс на этом сайте:
Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .
Источник
Индикатор спектра звукового сигнала своими руками
Десятиканальный аналоговый спектроанализатор
Автор: Олег Наконечный
Опубликовано 26.11.2015
Создано при помощи КотоРед.
В этой статье я расскажу про анализатор спектра (спектроанализатор) звукового сигнала – устройство, которое из звукового сигнала выделяет отдельные частотные составляющие и отображает их уровни на индикаторе. Все мы могли видеть такую штуку в проигрывателе на компьютере. Да-да, та самая куча полосочек, хаотично (на самом деле нет) дергающихся под музыку.
Этот спектроанализатор разрабатывался мной для встройки в стационарный усилитель звуковой частоты. Имеет он десять каналов выделения определенных частот из звукового спектра (32 Гц; 64 Гц; 125 Гц; 250 Гц; 500 Гц; 1 кГц; 2 кГц; 4 кГц; 8 кГц; 16 кГц), соответственно для каждого канала отводится столбик светодиодов на индикаторе. Частоты, лежащие между двух соседних каналов, подавляются не полностью и немного отображаются в обоих каналах. Также имеются два канала отображения общих уровней сигналов в левом и правом звуковом канале усилителя. Отображаются все уровни на матричном светодиодном индикаторе.
Спектроанализатор построен на операционных усилителях, микросхемах КМОП-логики и дискретных активных и пассивных компонентах. За счет применения десяти отдельных полосовых фильтров и сумматоров было достигнуто хорошее разделение каналов, возможность независимо для каждого канала выбирать резонансную частоту, ширину полосы пропускания и усиление простым подбором резисторов и конденсаторов в соответствующих цепях входного каскада. С помощью цифровых микросхем реализована динамическая индикация, что существенно сокращает число необходимых компонентов в сравнении со статической индикацией, снижает потребляемый ток. Однако и яркость свечения светодиодов снижается пропорционально увеличению количества столбцов в матрице, генератор развертки является источником шума в сигнальном тракте, через светодиоды, хоть и недолго, течет большой ток, так что нужно внимательно подходить к выбору токоограничивающих резисторов и изучать документацию производителя светодиодов.
Для работы спектроанализатора нужен биполярный источник питания с напряжениями +5В и -5В в каждом плече соответственно. Отрицательный источник питает только входной каскад, поэтому от него потребляется сравнительно маленький ток, равный 36,5 миллиамперам. С положительным источником питания дела обстоят иначе: он питает все блоки спектроанализатора и потребляемый от него ток может импульсно изменятся от 48,5 до 675 миллиампер. Чем больше светодиодов в матрице зажжено – тем больший ток потребляется. Чем больше разница в количестве зажженных светодиодов между соседними столбцами – тем круче будут импульсы потребляемого тока. Это обусловлено динамическим типом индикации. При необходимости напряжение каждого источника питания можно повысить (в случае отрицательного источника — понизить) вплоть до 15В. Однако следует принимать во внимание, что сопротивления токогоасящих резисторов прийдется пересчитать и рассеиваямая тепловая можность на каждом резисторе возростет, а примененные мной SMD-резисторы 1206 могут рассеять не больше 0,25 Вт тепла.
Спектроанализатор состоит из трех основных блоков:
- Блок входных усилителей и фильтров;
- Блок управления индикацией;
- Блок матричного светодиодного индикатора.
1. Блок входных усилителей и фильтров.
Схема блока приведена на рисунке:
Состоит он из двенадцати отдельных каналов обработки сигнала: 10 каналов анализатора спектра и 2 канала индикатора уровня сигнала.
Звуковой сигнал от источника сигнала поступает на два входных буфера — DA6.1 и DA6.2. Они развязывают источник сигнала от остальных каскадов, которые сильно нагружали бы его, искажая сигнал. К выходам буферов подключены каналы анализатора спектра, а также амплитудные детекторы индикаторов общего уровня сигнала.
Каналы анализатора спектра имеют идентичную схемотехнику и отличаются лишь номиналами частотозадающих конденсаторов. Отдельный канал состоит из инвертирующего сумматора, полосового фильтра и амплитудного детектора. Для примера ниже приведена схема канала выделения частоты 16 кГц.
Сумматор предназначен для объединения сигналов левого и правого каналов. На его выходе образуется сигнал с амплитудой равной сумме амплитуд сигналов из левого и правого каналов с дополнительной инверсией. Инверсия нужна потому, что следующий после него полосовой фильтр тоже построен по инвертирующей схеме. Для каждого канала анализатора спектра был применен отдельный сумматор, потому что хотелось иметь возможность регулировать усиление отдельно в каждом канале, а делать это в полосовом фильтре не влияя на его частотные характеристики не получится. Номиналы резисторов в сумматоре имеют величину в 100 кОм, что бы при параллельном соединении всех десять каналов их общее входное сопротивление было 10 кОм и несильно нагружало входные буфера.
Полосовой фильтр построен по самой классической схеме, описаний которой много в сети и литературе. Добротность каждого фильтра равна 5, что дало оптимальную ширину полосы пропускания, при которой частоты, лежащие между двух каналов, подавляются не полностью и отображаются немного в обоих каналах. Ширина полосы пропускания конкретного фильтра равна отношению его резонансной частоты к добротности. Усиление фильтра на резонансной частоте равно -1. Резисторы и конденсаторы фильтров требуют точного подбора номиналов. Если этого не сделать отклонение всех параметров фильтра может достигать 20% особенно на фильтрах с низкой резонансной частотой (это можно заметить на видеоролике в конце статьи т.к. мне лень было обмерять кучу планарных конденсаторов :Р ). При расчетах были использованы значения конденсаторов из стандартного ряда, а точные номиналы резисторов приведены в скобках рядом с ближайшим номиналом из ряда Е24.
Амплитудный детектор также собран по классической схеме и в пояснениях особо не нуждается. Построен он на германиевых диодах Д9. Их прямое падение напряжение, в сравнении с кремниевыми диодами, существенно меньше и составляет 0,15 – 0,3 В. Амплитудно-модулированное напряжение, поступающее с выхода фильтра, проходит через прямо включенный диод, где от него отрезается отрицательная составляющая, и подается на конденсатор. Конденсатор за каждый полупериод заряжается до амплитудного значения и разряжается через параллельно включенный резистор. В результате изменение напряжения на нем по форме совпадает с изменением амплитуды, то есть является огибающей амплитудно-модулированного входного сигнала. Изменяя номиналы конденсатора и резистора можно соответственно изменять скорость нарастания столбика и скорость спадания. Конденсатор большой емкости требует больше времени для заряда, соответственно и столбик на индикаторе будет дольше подниматься. А если уменьшить сопротивление резистора, шунтирующего конденсатор, то разряжаться он будет быстрее и индикатор будет быстрее гаснуть.
Все двенадцать сигналов собираются на входах двух аналоговых мультиплексоров — DD3 и DD4. Адресные входы обоих мультиплексоров соединены так, что они работают как один мультиплексор с шестнадцатью входами. В зависимости от управляющего кода, генерируемого схемой управления индикацией, производится выбор одного конкретного канала и его сигнал подается дальше на схему аналого-цифрового преобразователя (АЦП).
Мультиплексоры размещены на плате входного каскада для того, чтобы не тянуть далеко 12 проводников с аналоговым сигналом. Цифровой код управления мультиплексорами более устойчив к помехам и требует меньше проводников для передачи сигнала.
2. Блок управления индикацией.
Второй блок управляет процессом отображения значений амплитуды каждого сигнала на соответствующем месте индикатора. Состоит он из двух основных частей: АЦП в левом нижнем углу и схема развертки — в правом верхнем углу. Схема блока показана на рисунке:
Источник
Анализатор-визуализатор спектра аудио сигнала на базе Arduino
Как вы думаете, что делают девушки, когда собираются вместе? Идут по магазинам, фотографируются, ходят по салонам красоты? Да, так и есть, но так делают далеко не все. В данной статье пойдёт речь о том, как две девушки решили собрать радиоэлектронное устройство своими руками.
Почему именно анализатор-визуализатор спектра?
Разработка устройства
Т.к. брать готовое решение и делать строго по инструкции – это скучно и неинтересно, поэтому мы решили разрабатывать схему сами, лишь немного опираясь на уже созданные устройства.
В качестве дисплея выбрали светодиодную матрицу 8х32. Можно было использоваться готовые led-матрицы 8х8 и собирать из них, но мы решили не отказывать себе в удовольствии посидеть вечерком с паяльником, и поэтому собирали дисплей сами из светодиодов.
Для управления дисплеем мы не изобретали велосипед и использовали схему управления с динамической индикацией. Т.е. выбрали один столбец, зажгли его, остальные столбцы в этот момент погасили, затем выбирали следующий, зажгли его, остальные погасили и т.д. Ввиду того, что человеческий глаз не идеален, мы можем наблюдать статическую картинку на дисплее.
Пойдя по пути наименьшего сопротивления было решено, что все вычисления разумно будет перенести на контроллер Arduino.
Включение той или иной строки в столбце осуществляется с помощью открытия соответствующего ключа. Для уменьшения количества выходных пинов контроллера, выбор столбца происходит через дешифраторы (таким образом, мы можем сократить количество управляющих линий до 5).
В качестве интерфейса подключения к компьютеру (или другому устройству, способному передавать аудио сигнал) был выбран разъём TRS (mini-jack 3.5 mm).
Сборка устройства
Сборку устройства начинаем с того, что делаем макет лицевой панели устройства.
Материалом для лицевой панели был выбран чёрный пластик толщиной 5мм (т.к. диаметр линзы диода также 5мм). По разработанному макету размечаем, вырезаем лицевую панель под необходимый размер и просверливаем отверстия в пластике под светодиоды.
Таким образом получаем готовую лицевую панель, на которой можно уже собирать дисплей.
В качестве светодиодов для матрицы были использованы двухцветные (красный-зелёный) с общим катодом GNL-5019UEUGC. Перед началом сборки матрицы, руководствуясь правилом “лишний контроль не повредит” все светодиоды, а именно 270 шт. (брали с запасом на всякий случай), были проверены на работоспособность (для этого было собрано тестирующее устройство, включающее в себя разъём, резистор 200Ом и источник питания на 5В).
Дальше разгибаем светодиоды следующим образом. Аноды красного и зеленого диодов отгибаем в одну сторону (вправо), катод отгибаем в другую сторону, при этом следим, чтобы катод был ниже чем аноды. И затем под 90° загибаем катод вниз.
Сборку матрицы начинаем с правого нижнего угла, сборку производим по столбцам.
Вспоминая про правило “лишний контроль не повредит”, после одного-двух спаянных столбцов, проверяем работоспособность.
Готовая матрица выглядит следующим образом.
По разработанной схеме паяем схему управления строками и столбцами, распаиваем шлейфы и место под Arduino.
Было решено так же выводить не только амплитудно-частотны, но и фазо-частотный спектр, а также выбирать количества отсчетов для отображения (32,16,8,4). Для этого были добавлены 4 переключателя: один на выбор типа спектра, два на выбор количества отсчётов, и один на включение и выключение устройства.
Написание программы
В очередной раз руководствуемся нашим правилом и убеждаемся, что наш дисплей полностью в рабочем состоянии. Для этого пишем простую программу, которая полностью зажигает все светодиоды на дисплее. Естественно, по закону Мёрфи, нескольким светодиодам не хватало тока, и их необходимо было заменить.
Удостоверившись, что всё работает, мы приступили к написанию основного программного кода. Он состоит из трёх частей: инициализация необходимых переменных и считывание данных, получение спектра сигнала при помощи быстрого преобразования Фурье, вывод полученного спектра с необходимым форматированием на дисплей.
Сборка конечного устройства
В конце мы имеем лицевую панель, а под ней куча проводов, которые необходимо чем-то закрыть, да и переключатели нужно на чём-то закрепить. До этого были мысли сделать корпус из остатков пластика, но мы не вполне представляли, как это будет конкретно выглядеть и как это сделать. Решение проблемы пришло довольно неожиданно. Прогулявшись по строительному магазину, мы обнаружили пластиковый цветочный горшок, который на удивление идеально подошёл по размеру.
Дело оставалось за малым, разметить отверстия под разъёмы, кабели и переключатели, а также вырезать две боковые панели из пластика.
В итоге, собрав всё воедино, подключив устройство к компьютеру мы получили следующее:
Амплитудно-частотный спектр (32 отсчёта):
Амплитудно-частотный спектр (16 отсчётов):
Амплитудно-частотный спектр (8 отсчётов):
Амплитудно-частотный спектр (4 отсчёта):
Вид задней панели:
Видео работы устройства
Для большей наглядности видео снималось в темноте. На видео устройство выводит амплитудно-частотный спектр, а затем на 7 секунде переключаем его в режим фазо-частотного спектра.
Источник