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

17.03.2019

И так, краткие технические характеристики:
Индикация частот: 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 транзисторы

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

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

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

    Ведь программных решений данной задачи довольно много и вариантов аппаратной реализации так же немало. Во-первых, очень хотелось поработать с большим количеством светодиодов (т.к. мы уже собирали 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 шт. (Для корпуса)

    Думаю вы не однократно видели в музыкальных центрах оригинальные световые столбики, изменяющиеся в зависимости от такта музыки. Это устройство есть простой спектроанализатор звука, именно об нем мы и поговорим в рамках данной статьи.

    Основой простой конструкции является микросхема AN6884 -представляющая из себя почти готовый индикатор уровня сигнала. Можно использовать и транзисторный вариант устройства, но понадобится много транзисторов и эффект будет на порядок хуже, а чувствительность в целом ниже.


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


    В этом варианте схемы применяются биполярные транзисторы типа КТ315 или КТ3102,полупроводниковые диоды 1n4148 или КД522. Для настройки уровня перед фильтром устанавливаются подстроечные сопротивления на 100кОм, как и в первом варианте. При низком уровне сигнала необходимо применить предусилитель.


    Для каждого столбика требуется одна микросхема или несколько биполярных транзисторов в зависимости от числа светодиодов в конкретном столбце и фильтр для выделения необходимой полосы частот. Количество столбиков может быть различным, только необходимо подобрать фильтры под каждый. Примеры фильтров на рисунке ниже:


    Низкочастотный фильтр обычно монтируется слева, высокочастотный справа. Для НЧ фильтра вместо емкостей и резисторов можно применить катушку индуктивности (около 500 витков тонкого медного провода). Настройка осуществляется регулировкой подстроечных сопротивлений.

    В качестве устройства отображения используется двухстрочный символьный ЖК индикатор. Основным моментом при реализации данного проекта является не аппаратная часть, а программная, точнее реализация дискретного преобразования Фурье (ДПФ) на 8-разрядном микроконтроллере. Сразу следует отметить, что автор не является экспертом в этой области и поэтому начал с основ - с простого дискретного преобразования Фурье. Алгоритм быстрого преобразования Фурье является не только быстрым, но и достаточно сложным.

    Дискретное преобразование Фурье (в англоязычной литературе DFT, Discrete Fourier Transform) - это одно из преобразований Фурье, широко применяемых в алгоритмах цифровой обработки сигналов (его модификации применяются в сжатии звука в MP3, сжатии изображений в JPEG и др.), а также в других областях, связанных с анализом частот в дискретном (к примеру, оцифрованном аналоговом) сигнале. Дискретное преобразование Фурье требует в качестве входа дискретную функцию. Такие функции часто создаются путем дискретизации (выборки значений из непрерывных функций).

    Принципиальная схема анализатора спектра звукового сигнала очень проста и условно ее можно разделить на цифровую часть и аналоговую.

    Цифровая часть образована микроконтроллером и подключенным к нему ЖК индикатором. Микроконтроллер тактируется от кварцевого резонатора 16 МГц, в качестве опорного напряжения для АЦП микроконтроллера используется напряжение питания +5 В.
    Шина данных ЖК индикатора подключена к порту C микроконтроллера (линии ввода/вывода PC0-PC3), шина управления подключена к порту D(PD5, PD6) микроконтроллера. Индикатор работает в 4-битном режиме. Переменный резистор номиналом 4.7 кОм используется для регулировки контрастности. Для работы с индикатором были созданы пользовательские символы для отображения 8 горизонтальных столбиков анализатора, эти пользовательские символы занимают все 64 Байта ОЗУ ЖК индикатора.

    Микроконтроллер работает от внешнего кварцевого резонатора 16 МГц.

    Аналоговая часть устройства - это самая важная часть и представляет собой предварительный усилитель сигнала электретного микрофона, выход которого подключается к каналу ADC0 встроенного в микроконтроллер АЦП. Уровень нуля на входе АЦП нам необходимо установить равным точно половине опорного напряжения, т.е. 2.5 В. В этом случае мы сможем использовать положительную и отрицательную полуволну сигнала, но его амплитуда не должна превышать установленный предел, т.е. коэффициент усиления должен быть точно настроен для предотвращения перегрузки. Всем вышеуказанным условиям отвечает распространенная микросхема низкопотребляющего операционного усилителя .

    Алгоритм ДПФ несколько медленнее в сравнении с быстрым преобразованием Фурье. Но наш анализатор спектра не требует высокой скорости, и если он способен обеспечить скорость обновления около 30 кадров в секунду, этого будет более чем достаточно для визуализации спектра звукового сигнала. В любом случае, в нашем варианте возможно достичь скорости 100 кадров в секунду, но это уже слишком высокое значение параметра для двухстрочного символьного ЖК индикатора и оно не рекомендуется. Частота дискретизации равна 20 кГц для 32 точечного дискретного преобразования Фурье и поскольку результат преобразования симметричен, нам нужно использовать только первую половину, т.е. первые 16 результатов. Следовательно, мы можем отображать частотный спектр в диапазоне до 10 кГц и разрешение анализатора составляет 10 кГц/16 = 625 Гц.

    Автором конструкции были предприняты попытки увеличения скорости вычисления ДПФ. Если это преобразование имеет N точек, то мы должны найти N2/2 значений синуса и косинуса. Для нашего 32 точечного преобразования необходимо найти 512 значений синуса и косинуса. Но, прежде чем найти их нам необходимо вычислить угол (градусы), что займет некторое процессорное время, поэтому было решено использовать для этих вычислений таблицы значений. При расчетах в программе микроконтроллера не используются вычисления с плавающей точкой и числа двойной точности (double), так как это займет больше времени на обработку на 8-разрядном микроконтроллере. Вместо этого значения в таблицах поиска используются 16-разрядные данные целочисленного типа (integer), умноженные на 10000. Затем после выполнения преобразования результаты делятся на 10000. При таком подходе имеется возможность выполнять 120 32-точечных преобразований в секунду, что более чем достаточно для нашего устройства.

    Демонстрация работы анализатора спектра на микроконтроллере ATmega32

    Загрузки

    Исходный код (программа микроконтроллера, таблицы данных синуса, косинуса и угла) -

    Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться .

    • Понятно, что на АВР-ке дальше светомузыки сложно уехать, не те параметры. Но 120 32-точечных преобразований в секунду для большинства задач может быть достаточно. А выборку 625Гц, можно конечно и другую взять, по точнее потеряв частоту обновления. Стоит отметить, что МК будет себя плохо чувствовать, в плане производительности мало что на него еще навешаешь. Но тут можно же организовать выдачу результата по аппаратным методам передачи данных. Тогда это будет вспомогательный МК, а основной будет только принимать с него данный и обрабатывать совместимо с другими процессами. По большому счету все же в частоту проца упирается. Когда-то получалось разгонять мегу выше 20 МГц, но для этих задач наверно получим только глюки на высоких частотах. Идея хороша, только бы больше мат части расписано было бы... именно ее реализация на МК
    • я и поинтересней анализаторы делал: You Tube или вариант на цветном ЖКИ: You Tube в основе знаменитая библиотека Чена:)
    • "нам необходимо вычислить угол (градусы)" А может кто-нибудь подробнее рассказать как рассчитываются значения для этих таблиц?
    • С таблицей синусов и косинусов все понятно. Не понятно как рассчитываются значения в таблице degree_lookup?

    >



    Внимание! Порядок добавления тегов имеет значение! Начинайте добавлять с наиболее важного. По возможности пользуйтесь уже существующими тегами

    Данный проект является логическим продолжением проекта "Темброблок с микроконтроллерным управлением на TDA8425". Для расширения функционала я предлагаю вам собрать простой спектроанализатор звука. Анализатор спектра обрабатывает сигнал и на светодиодных шкалах показывает его интенсивность в определенных частотных диапазонах.
    Итак, ниже схема устройства.

    Сердцем устройства является микроконтроллер PIC12F675 фирмы MICROCHIP. Это новый представитель семейства 8-ми выводных Flash-микроконтроллеров. Фирма MICROCHIP продолжает разработку и производство передовых продуктов, предоставляющих пользователю большую функциональность и надежность. Контроллер PIC12F675 объединил все преимущества архитектуры микроконтроллеров PICmicro и гибкость Flash программной памяти. При низкой цене и малых размерах этот контроллер обеспечивают функциональность и удобство использования, которые были недоступны ранее.
    Аудио сигнал подается на вход микросхемы BA3834F - симиполосный фильтр японской корпорации ROHM. BA3834F имеет семь полосовых фильтров: 68 Гц, 170 Гц, 420 Гц, 1000 Гц, 2400 Гц, 5900 Гц, 14400 Гц. Выбор соответствующего фильтра осуществляет микроконтроллер PIC12F675.
    Выходной сигнал с каждого полосового фильтра оцифровывается микроконтроллером и передается на микросхемы-драйверы 74HC595 (последовательный регистр сдвига с выходной блокировкой). В свою очередь, комбинация сигналов на 74HC595 включает соответствующие светодиоды. Светодиоды сгруппированы в матрицу из 7 столбцов "X" и 16 строк "Y" с общим анодом. Всего 112 светодиодов.
    Спектроанализатор конструктивно собран на двух платах - управления и индикации. Ниже рисунок и фото платы управления.

    Рисунки печатных плат односторонние; изготавливаются любым доступным способом, например ЛУТ. Обратите внимание - микросхема BA3834F в корпусе SOP18. Она смонтирована со стороны дорожек способом поверхностного монтажа. Далее рисунок и фото платы индикации.

    Аноды светодиодов соединены между собой над поверхностью платы и подпаяны к контактным площадкам. Для более удобного соединения были использованы штыревые разъемы типа PLS (однорядные с шагом 2,54 мм); соответственно, для кабеля понадобятся гнезда с контактами типа BLS (однорядные с шагом 2,54 мм) и кримпер 6PK-301U (клещи обжимные) для заделки разъемов на кабель.
    Данный проект собирался и отлаживался с помощью PicKit2 Debug Express. Этот же программатор можно рекомендовать для прошивания микроконтроллера PIC12F675.