Оглавление:

Аудиовизуализатор со светодиодной лентой без адресации RGB: 6 шагов (с изображениями)
Аудиовизуализатор со светодиодной лентой без адресации RGB: 6 шагов (с изображениями)

Видео: Аудиовизуализатор со светодиодной лентой без адресации RGB: 6 шагов (с изображениями)

Видео: Аудиовизуализатор со светодиодной лентой без адресации RGB: 6 шагов (с изображениями)
Видео: RGB светодиодный аудио-визуализатор с дисплеем спектра музыки из набора «сделай сам» 2024, Ноябрь
Anonim
Image
Image

Некоторое время у меня была светодиодная лента RGB 12 В вокруг моего телевизионного шкафа, и она управляется скучным светодиодным драйвером, который позволяет мне выбирать один из 16 предварительно запрограммированных цветов!

Я слушаю много музыки, что меня мотивирует, но освещение просто не создает нужного настроения. Чтобы исправить это, решил взять аудиосигнал, подаваемый на мой динамик через AUX (разъем 3,5 мм), обработать его и соответствующим образом управлять полосой RGB.

Светодиоды реагируют на музыку в зависимости от величины низких (низких), высоких (средних) и высоких частот.

Диапазон частот - Цвет следующий:

Низкий - Красный

Середина - зеленый

Высокий - Синий

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

Запасы

(x1) Светодиодная лента RGB

(x1) Arduino Uno / Nano (рекомендуется Mega)

(x1) TL072 или TL082 (TL081 / TL071 тоже в порядке)

(x3) TIP120 NPN-транзистор (TIP121, TIP122 или N-канальные МОП-транзисторы, такие как IRF540, IRF 530, тоже подходят)

(x1) линейный потенциометр 10 кОм

(x3) резисторы 100 кОм 1/4 Вт

(x1) электролитический конденсатор 10 мкФ

(x1) керамический конденсатор 47 нФ

(x2) аудиоразъем 3,5 мм - розетка

(x2) батарея 9 В

(x2) Разъем аккумулятора 9 В с защелкой

Шаг 1. Общие сведения о типах светодиодных лент RGB

Понимание типов светодиодных лент RGB
Понимание типов светодиодных лент RGB

Есть два основных типа светодиодных лент: аналоговые и цифровые.

Полосы аналогового типа (рис. 1) имеют все светодиоды, подключенные параллельно, и поэтому они действуют как один огромный трехцветный светодиод; вы можете установить любой цвет для всей полосы, но вы не можете управлять цветами отдельных светодиодов. Они очень просты в использовании и относительно недороги.

Полоски цифрового типа (рис. 2) работают по-другому. У них есть микросхема для каждого светодиода, чтобы использовать полосу для отправки данных в цифровом виде на микросхемы. Однако это означает, что вы можете управлять каждым светодиодом индивидуально! Из-за дополнительной сложности чипа они дороже.

Если вам трудно физически определить различия между полосами аналогового и цифрового типа,

  1. Тип Anolog использует 4 контакта, 1 общий положительный и 3 отрицательных, то есть по одному для каждого цвета RGB.
  2. Цифровой тип использует 3 контакта, положительный, данные и землю.

Я буду использовать полоски аналогового типа, потому что

  1. Очень мало или совсем нет инструкций, которые учат, как сделать музыкально-реактивную полосу аналогового типа. Большинство из них ориентированы на цифровой тип, и их легче заставить реагировать на музыку.
  2. У меня валялись полоски аналогового типа.

Шаг 2: усиление аудиосигнала

Усиление аудиосигнала
Усиление аудиосигнала
Усиление аудиосигнала
Усиление аудиосигнала
Усиление аудиосигнала
Усиление аудиосигнала

Аудиосигнал, передаваемый через аудиоразъем, является

аналоговый сигнал, который колеблется в пределах от + 200 мВ до -200 мВ. Проблема заключается в том, что мы хотим измерить аудиосигнал с помощью одного из аналоговых входов Arduino, потому что аналоговые входы Arduino могут измерять только напряжения между 0 и 5 В. Если бы мы попытались измерить отрицательные напряжения в аудиосигнале от, Arduino прочитал бы только 0 В, и мы закончили бы обрезанием нижней части сигнала.

Чтобы решить эту проблему, мы должны усилить и смещать аудиосигналы, чтобы они попадали в диапазон 0-5 В. В идеале сигнал должен иметь амплитуду 2,5 В, которая колеблется около 2,5 В, так что его минимальное напряжение составляет 0 В, а максимальное - 5 В.

Усиление

Усилитель - это первая ступень в схеме, он увеличивает амплитуду сигнала примерно с + или - 200 мВ до + или - 2,5 В (в идеале). Другая функция усилителя - защитить источник звука (в первую очередь то, что генерирует аудиосигнал) от остальной части схемы. Исходящий усиленный сигнал будет источником всего своего тока от усилителя, поэтому любая нагрузка, приложенная к нему позже в цепи, не будет «ощущаться» источником звука (в моем случае телефон / iPod / ноутбук). Сделайте это, установив один из операционных усилителей в корпусе TL072 или TL082 (рис. 2) в неинвертирующую конфигурацию усилителя.

В таблице данных TL072 или TL082 указано, что он должен питаться от +15 и -15 В, но, поскольку сигнал никогда не будет усилен выше + или - 2,5 В, можно использовать операционный усилитель с более низким напряжением. Я использовал две девятивольтовые батареи, соединенные последовательно, чтобы создать источник питания + или - 9В.

Подключите + V (контакт 8) и –V (контакт 4) к операционному усилителю. Подключите сигнал от моно-разъема к неинвертирующему входу (контакт 3) и подключите заземляющий контакт разъема к опорной точке 0 В на вашем источнике напряжения (для меня это было соединение между двумя батареями 9 В, соединенными последовательно). Подключите резистор 100 кОм между выходом (контакт 1) и инвертирующим входом (контакт 2) операционного усилителя. В этой схеме я использовал потенциометр 10 кОм, подключенный как переменный резистор, для регулировки усиления (величины, которую усиливает усилитель) моего неинвертирующего усилителя. Подключите этот линейный конический потенциометр 10 кОм между инвертирующим входом и опорным напряжением 0 В.

Смещение постоянного тока

Схема смещения постоянного тока состоит из двух основных компонентов: делителя напряжения и конденсатора. Делитель напряжения состоит из двух резисторов по 100 кОм, соединенных последовательно от источника питания 5 В на Arduino на землю. Поскольку резисторы имеют одинаковое сопротивление, напряжение на переходе между ними равно 2,5 В. Этот переход 2,5 В подключен к выходу усилителя через конденсатор емкостью 10 мкФ. По мере того, как напряжение на стороне усилителя конденсатора растет и падает, это вызывает мгновенное накопление заряда и отталкивание от стороны конденсатора, подключенной к переходу 2,5 В. Это заставляет напряжение на переходе 2,5 В колебаться вверх и вниз с центром около 2,5 В.

Как показано на схеме, подключите отрицательный вывод конденсатора 10 мкФ к выходу усилителя. Подключите другую сторону крышки к переходу между двумя резисторами 100 кОм, подключенными последовательно между 5 В и землей. Кроме того, добавьте конденсатор 47 нФ от 2,5 В к земле.

Шаг 3: разложение сигнала на сумму стационарных синусоид - теория

Разложение сигнала на сумму стационарных синусоид - теория
Разложение сигнала на сумму стационарных синусоид - теория

Аудиосигнал, передаваемый через любой разъем 3,5 мм, находится в

диапазон от 20 Гц до 20 кГц. Он дискретизируется с частотой 44,1 кГц, и каждый отсчет кодируется в 16 битах.

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

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

Здесь очень полезен алгоритм быстрого преобразования Фурье (БПФ)!

По определению, БПФ быстро вычисляет такие преобразования, разлагая матрицу ДПФ на произведение разреженных (в основном нулевых) множителей. В результате ему удается снизить сложность вычисления ДПФ с O (N2), которое возникает, если просто применить определение ДПФ, до O (N log N), где N - размер данных. Разница в скорости может быть огромной, особенно для длинных наборов данных, где N может быть в тысячах или миллионах. При наличии ошибки округления многие алгоритмы БПФ намного точнее, чем прямая или косвенная оценка определения ДПФ.

Проще говоря, это просто означает, что алгоритм БПФ является более быстрым способом вычисления преобразования Фурье любого сигнала. Обычно это используется на устройствах с низкой вычислительной мощностью.

Рекомендуемые: