Семиполосный спектроанализатор звука на микроконтроллере. Семиполосный спектроанализатор звука на микроконтроллере Светодиодный анализатор звукового спектра на atmega8 схема

Принципиальная схема блока фильтров и предусилителя ниже на рисунке. Фильтры настроены на следующие частоты: 32Гц, 63Гц, 125Гц, 250Гц, 500Гц, 1кГц, 2кГц, 4кГц, 8кГц, 16кГц.


Печатная плата. Изготавливалась самостоятельно при помощи фоторезиста.


Рекомендации по подбору емкостей- номиналы емкостей лучше подбирать с помощью LCR метра (я пользовался E7-22) нестандартные номиналы получал параллельно или последовательно собирая из стандартного ряда.

Принципиальная схема линейки индикаторов.

Печатная плата в DIP и SMD вариантах все есть в архиве.Платы заказывал на производстве так как дома такие размеры было проблематично сделать (размер в DIP 320х50).
В качестве диода можно использовать любой быстродействующий диод Шоттки. Сопротивление резисторов на светодиоды зависит от типа используемых светодиодов, (надо рассчитать по току), можно использовать любые другие светодиоды с пересчетом или переделкой схемы. ДА есть еще одно замечание- это потребление одной линейки, при задействовании все 40 светодиодов линейка потребляет 40*0,02А=0,8А а все 10 линеек будут кушать при полном задействовании светодиодов 8А!! не забудьте подобрать соответствующий блок питания. Если будете использовать покупной импульсный БП с несколькими входами как правило это +/-12В, +5В, то есть один нюанс с которым я столкнулся, если одноканальные Импульсные БП в большинстве не требуют нагрузку для запуска, то многоканальные требуют, т.е. необходимо нагрузить все каналы чтобы БП запустился.
Настройка.
Настройка заключается в установке равенства чувствительности всех каналов. Нужен генератор НЧ и низкочастотный милливольтметр. На генераторе устанавливают последовательно частоты 32 Гц, 63 Гц, 125 Гц, 250 Гц. 500 Гц, 1 кГц, 2 кГц, 4 кГц, 8 кГц и 16 кГц. Частоты поочередно подают на вход прибора. При этом параллельно выходу генератора НЧ должен быть подключен милливольтметр, по его показаниям нужно следить за тем, чтобы величины напряжения ЗЧ, подаваемые с ГНЧ на всех частотах были одинаковыми (при необходимости регулировать регулятором уровня выхода ГНЧ). Выставляем R42 предварительного усилителя в среднее положение и начиная с частоты 32 Гц на ГНЧ устанавливают такой уровень выходного напряжения при котором в среднем положении R2(блока фильтра 32Гц) горит средний светодиод индикаторной шкалы. Запоминаете этот уровень выходного напряжения ГНЧ. Затем повышаете частоту до 64 Гц. Устанавливаете такой же уровень НЧ с выхода ГНЧ (смотря по милливольтметру), и регулируете R*в фильтре 63Гц так чтобы горел средний светодиод шкалы 63 Гц.
Аналогичные операции проделать на всех других частотах. Предварительно можно точнее установить средние частоты полос, определив среднюю частоту каждого фильтра перестройкой частоты ГНЧ в некоторых пределах относительно указанной частоты на схеме. Затем, если есть существенное отличие, отрегулировать частоту соответствующим изменением емкостей конденсаторов.

Несколько фото процесса изготовления




Давно мечтал собрать графический анализатор спектра, но останавливало обилие компонентов в схеме, подбор элементов фильтров и т.п. И тут мне попался польский журнал с описанием цифрового анализатора, сердцем которого является микроконтроллер. Схема очень простая, в ней отсутствуют те фильтры, которые я так не хотел собирать, подбирать для них компоненты, настраивать. Всё это возложено на микроконтроллер. К тому же, этот анализатор имеет несколько режимов работы! Что сильно бы усложнило схему на дискретных элементах.

Анализатор имеет 4 режима индикации: Линия с индикацией пиков и без, и "точка", так же с индикацией пиков и без.

Технические характеристики :

  • Индикация частот: 31Hz, 62Hz, 125Hz, 250Hz, 500Hz, 1kHz, 2kHz, 4kHz, 8kHz, 16kHz;
  • Размер матрицы: 10х10;
  • Режимы: точка, линия, пики;
  • Напряжение питания: 12V;
  • Потребляемая мощность: Зависит от используемых светодиодов в матрице , основная плата потребляет около 20мА.

Индикатор состоит из двух частей, основного блока и диодной матрицы.


Основной блок построен на микроконтроллере ATmega8 , дешифраторе К176ИД1 (зарубежный аналог CD4028 ) и входного усилителя-ограничителя, выполненном на операционном усилителе TL071 . Кварцевый резонатор можно применить на частоту от 16-20мГц.

Пробный вариант я спаял за несколько часов на макетной плате:









Фьюзы в Algorithm Builder:

Фьюзы в PonyProg:


При прошивке микроконтроллера необходимо быть предельно аккуратным при выставлении фьюзов, так как неправильно установленные "птички" могут заблокировать микроконтроллер и его перепрошивка потребует программатор, в разы сложнее данного анализатора.

Собрал схему, прошил микроконтроллер, подключил питание и подал на вход звуковой сигнал. Устройство заработало сразу, без настроек и наладки. Эта коннструкция меня очень порадовала.

Как вы думаете, что делают девушки, когда собираются вместе? Идут по магазинам, фотографируются, ходят по салонам красоты? Да, так и есть, но так делают далеко не все. В данной статье пойдёт речь о том, как две девушки решили собрать радиоэлектронное устройство своими руками.

Почему именно анализатор-визуализатор спектра?

Ведь программных решений данной задачи довольно много и вариантов аппаратной реализации так же немало. Во-первых, очень хотелось поработать с большим количеством светодиодов (т.к. мы уже собирали led-куб, каждый для себя, но в небольших размерах), во-вторых, применить на практике полученные знания по цифровой обработке сигналов и, в-третьих, в очередной раз попрактиковаться в работе с паяльником.

Разработка устройства

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

В качестве дисплея выбрали светодиодную матрицу 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 секунде переключаем его в режим фазо-частотного спектра.

Список необходимых элементов

  1. Светодиоды GNL-5019UEUGC – 256 шт. (Для дисплея)
  2. Транзисторы n-p-n KT863A – 8 шт. (Для управления строками)
  3. Транзисторы p-n-p С32740 – 32 шт. (Для управления столбцами)
  4. Резисторы 1кОм – 32 шт. (Для ограничения тока базы p-n-p транзисторов)
  5. Дешифраторы 3/8 IN74AC138 – 4 шт. (Для выбора столбца)
  6. Дешифраторы 2/4 IN74AC139 – 1 шт. (Для каскадирования дешифраторов)
  7. Монтажная плата 5х10см – 2 шт.
  8. Шлейфы
  9. Arduino Pro micro – 1 шт.
  10. Разъём mini-jack 3.5мм – 1 шт.
  11. Переключатель – 4 шт.
  12. Чёрный пластик 720*490*5 мм – 1 лист. (Для лицевой панели)
  13. Горшок цветочный чёрный 550*200*150 мм – 1 шт. (Для корпуса)

И так, краткие технические характеристики:
Индикация частот: 31Hz, 62Hz, 125Hz, 250Hz, 500Hz, 1kHz, 2kHz, 4kHz, 8kHz, 16kHz
Размер матрицы - 10х10
Возможные режимы: Точка, линия, регистрация пиков.
Напряжение питания - 12V
Потребляемая мощност ь - Зависит от используемых светодиодов в матрице.
Тип входящего сигнала: Линейный стерео / линейный моно

Как уже ясно из описания - анализатор имеет 4 режима индикации: Линия (столб) с индикацией пиков и без, и "точка", так же с индикацией пиков и без.

Два различных входа: стерео, через интегрированный на плате микшер и моно.

Теперь перейдем к аппаратной части.
Схема:

По схеме видно, что устройство состоит из двух "блоков", сама матрица и управляющая плата.

Схема не сложная, все реализовано на одном контроллере фирмы ATMEL Atmega8.
Кварц в схеме используется на 18mhz. Микросхема CD4028 имеет советский аналог К176ИД1.

Печатная плата устройства находится в архиве, в формате.lay +расположение элементов.

Скачать можно тут: У вас нет доступа к скачиванию файлов с нашего сервера

Монтаж односторонний. Несколько слов о самой матрице.
Печатная плата матрицы односторонняя, потому общие аноды светодиодов припаиваются вот так:

Готовое устройство выглядит так:

Моя разработка печатной платы только пример, Вы можете сделать свой вариант платы, и поделится им в комментариях к статье! В моем варианте получился сравнительно удобный, односторонний монтаж, некоторые детали заменены на SMD тип, для экономии размеров, в особо "шумных" местах добавлены фильтры по питанию, два входа (моно и стерео). Расположение силовой части схемы сделанно так чтобы на основной стабилизатор (7805) можно было установить радиатор.
Светодиод на плате установлен для индикации входного напряжения +12V, устанавливать его не обязательно.
Дроссель, идущий к микросхема CD4028 (К176ИД1), играет сравнительно важную роль, т.к. при использовании не очень качественных источников питания данная микросхема (дешифратор) может работать не корректно. Однако при питании от качественного источника - дроссель можно заменить перемычкой.
Перемычки на плате заменяются переключателями, ими и устанавливается режим индикации.
Марки транзисторов не критичны, подойдут любые PNP и NPN транзисторы

Прошивка: У вас нет доступа к скачиванию файлов с нашего сервера