Светодиодные эффекты своими руками

Невероятно эффектная цветомузыка на Arduino и светодиодах

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

Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.

Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!

Инструкция

Схема очень простая!

Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из 180 светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180.

В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Скетч писал Майкл Крампас, парни из Чип и Дипа добавили функционал, а библиотека для светодиодов и быстрого преобразования Фурье (FFT) написана в Адафрут для проекта Piccolo. Библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.

Сам скетч и библиотеку FFT нужно скачать здесь и здесь.

Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч и наслаждайтесь шоу.
Это всего лишь развлечение!

В момент первого включения нужно сделать пару настроек:

Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.

Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:

1=60 светодиодов
2=120 светодиодов
3=180 светодиодов

По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.

Алгоритмы

Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.

Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.

Световая полоса: в пиках освещается вся полоса.

Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.

Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.

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

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

Цветовые схемы

Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.

Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.

Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.

Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.

Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.

Источник

Крутая цветомузыка своими руками

ОБНОВЛЕНИЯ

22.05.2019 colorMusic_v2.10: Исправлен глюк с большим количеством светодиодов на МЕГЕ

  • Добавлена плавность режиму цветомузыки по частотам! Настройка SMOOTH_STEP
  • Добавлен режим стробоскопа с целой кучей настроек!
  • Добавлено управление с ИК пульта! Купить пульт можно по этой ссылке, цена вопроса 50р
  • 7 режим – Режим подсветки
  • 8 режим – Режим бегущих частот
  • 9 режим – Анализатор спектра (Версия 2.1)
  • У некоторых режимов появились подрежимы
  • Возможна работа БЕЗ потенциометра. Читайте ниже в инструкции по эксплуатации
  • Настройки сохраняются в память (энергонезависимую)
  • Улучшена производительность, почищен мусор
  • в 7 режиме радугу можно остановить и пустить вспять
  • Добавлена настройка RESET_SETTINGS для сброса настроек в случае некорректной работы. Читайте ниже в FAQ

11.05.2018 ночь colorMusic_v2.5:

  • Код оптимизирован, библиотеки FastLED и IRremote заменены на более оптимальные Adafruit_NeoPixel и IRLremote (для работы версии 2.5 и выше необходимо установить новые библиотеки из общей папки с библиотеками!)
  • ИК пульт теперь срабатывает почти в 100% случаев вместо прежних 30%
  • Поддержка максимум 410 светодиодов

11.05.2018 день colorMusic_v2.6:

  • Возвращена библиотека FastLED (как оказалось, функции FastLED работают гораздо быстрее, чем NeoPixel, а также поддерживает такое же количество светодиодов!)
  • ИК пульт всё ещё срабатывает почти в 100%, по сравнению с 30% в версиях 2.0-2.4
  • Поддержка максимум 410 светодиодов (работа может быть нестабильной)
  • Исправлен небольшой баг
  • Добавлено сохранение состояния “включено/выключено” в энергонезависимую память. Штука опциональная, в настройках можно выключить (настройка KEEP_STATE)

28.09.2018 colorMusic_v2.7 (by Евгений Зятьков):

  • Настройка пульта внесена в скетч, тип пульта настраивается в IR_RCT
  • Добавлена поддержка Arduino Mega и Pro Micro
  • Исправлены мелкие баги

22.11.2018 colorMusic_v2.8:

• Добавлено ограничение тока для всей системы, настройка CURRENT_LIMIT
• Слегка оптимизированы настройки

22.05.2019 colorMusic_v2.10:
• Исправлен глюк с большим количеством светодиодов на МЕГЕ

ОПИСАНИЕ

Крутейшая свето- цветомузыка на Arduino и адресной светодиодной ленте WS2812b. Работает с лентой любой длины (до 450 светодиодов (версия 1.1), до 350 светодиодов (версия 2.0)), и может быть размещена в любом месте в квартире или автомобиле.

Режимы работы (переключаются кнопкой или с ИК пульта (версия 2.0)):

  • VU meter (столбик громкости): от зелёного к красному
  • VU meter (столбик громкости): плавно бегущая радуга
  • Светомузыка по частотам: 5 полос симметрично
  • Светомузыка по частотам: 3 полосы
  • Светомузыка по частотам: 1 полоса
  • Стробоскоп (Версия 2.0)
  • Подсветка (Версия 2.0)
    • Постоянный цвет
    • Плавная смена цвета
    • Бегущая радуга
  • Бегущие частоты (Версия 2.0)
  • Анализатор спектра (Версия 2.1)
  • Плавная анимация (можно настроить)
  • Автонастройка по громкости (можно настроить)
  • Фильтр нижнего шума (можно настроить)
  • Автокалибровка шума при запуске (можно настроить)
  • Поддержка стерео и моно звука (можно настроить)
  • Лента не гаснет полностью (Версия 2.0)
  • (Версия 2.1) все настройки сохраняются в памяти и не сбрасываются при перезагрузке
    • Сохранение настроек происходит при выключении кнопкой звёздочка (*)
    • А также через 30 секунд после последнего нажатия на любую кнопку ИК пульта

ВИДЕО

КОМПОНЕНТЫ

Каталоги ссылок на Алиэкспресс на этом сайте:

Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .

  • Arduino Nano купить в РФ, aliexpress, aliexpress, искать
  • Адресная лента
    • Купить в РФ, 60 свет/метр, 30 свет/метр
    • Купить на Али ссылка, ссылка
    • Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
    • 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
    • 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
    • IP30 лента без влагозащиты (как на видео)
    • IP65 лента покрыта силиконом
    • IP67 лента полностью в силиконовом коробе
    • Постфикс ECO – лента чуть более низкого качества, меньше меди, на длинной ленте будет сильно проседать яркость
  • Понижайка для автомобиля https://ali.ski/2I7QI
  • Блоки питания aliexpress, aliexpress, искать
  • Гнездо 5.5×2.1 aliexpress, aliexpress, искать
  • Аудио гнездо https://ali.ski/7f3W9
  • Разветвитель наушников https://ali.ski/BGyNE2
  • ИК пульт (для версии 2.0 WAVGAT) https://ali.ski/WVANd
  • Микрофонный модуль aliexpress, aliexpress, искать
  • Кнопки, конденсаторы и крутилки ищите в любых магазинах для радиолюбителей, так как у китайцев можно купить только мешок 50 штук!
  • Алик
    • Куча резисторов https://ali.ski/few1rq
    • Куча кнопок https://ali.ski/2A_nxM
    • Куча конденсаторов https://ali.ski/lwuDxJ
    • Куча потенциометров (можно обойтись без него! Читайте инструкцию) https://ali.ski/pttk-
    • Куча конденсаторов для микрофона http://ali.ski/eqALT
  • ЧипДип (Россия)
    • Резистор https://www.chipdip.ru/product0/27226
    • Кнопка https://www.chipdip.ru/product/tyco-2-1825910-7-fsm14jh
    • Конденсатор 10нф https://www.chipdip.ru/product0/42179
    • Конденсатор для микрофона https://www.chipdip.ru/product0/9000261766
    • Потенциометр (можно обойтись без него! Читайте инструкцию) https://www.chipdip.ru/product/r-0901n-b20k

СХЕМЫ

ПРОШИВКА

УПРАВЛЕНИЕ

НАСТРОЙКА ОПОРНОГО НАПРЯЖЕНИЯ. Потенциометр настройки опорного напряжения настраивается “методом тыка” пока не заработает (у меня стоит в середине). Подстройка нужна при смене источника аудио или изменении его потенциальной громкости.

  • Если во время работы в режиме VU метра (первые два режима) шкала всё время горит – слишком низкое опорное напряжение, Ардуино получает слишком высокий сигнал
  • Если не горит – опорное слишком высокое, системе не удаётся распознать изменение громкости с достаточной для работы точностью

МОЖНО СОБРАТЬ СХЕМУ БЕЗ ПОТЕНЦИОМЕТРА! Для этого параметру POTENT (в скетче в блоке настроек в настройках сигнала) присваиваем 0. Будет задействован внутренний опорный источник опорного напряжения 1.1 Вольт. Но он будет работать не с любой громкостью! Для корректной работы системы нужно будет подобрать громкость входящего аудио сигнала так, чтобы всё было красиво, используя предыдущие два пункта по настройке.

НАСТРОЙКА НИЖНЕГО ПОРОГА ШУМОВ является очень важной, в идеале выполняется 1 раз для любого нового источника звука или смены громкости старого. Есть 3 варианта настройки:

  • Ручная: выключаем AUTO_LOW_PASS и EEPROM_LOW_PASS (ставим около них 0), настраиваем значения LOW_PASS и SPEKTR_LOW_PASS вручную, методом тыка
  • Автонастройка при каждом запуске: включаем AUTO_LOW_PASS, выключаем EEPROM_LOW_PASS . При подаче питания музыка должна стоять на паузе! Калибровка происходит буквально за 1 секунду.
  • По кнопке: при удерживании кнопки 1 секунду настраивается нижний порог шума (музыку на паузу!)
  • Из памяти (ЛУЧШИЙ ВАРИАНТ): выключаем AUTO_LOW_PASS и включаем EEPROM_LOW_PASS
    • Включаем систему, источник звука подключен проводом
    • Ставим музыку на паузу
    • Удерживаем кнопку 1 секунду (либо кликаем кнопку 0 (ноль) на ИК пульте
    • Загорится светодиод на плате Arduino, погаснет через

    1.5 секунды

  • Значения шумов будут записаны в память и будут САМИ загружаться при последующем запуске!
Номер режима Режим Кнопки ← → Кнопки ↑ ↓ Кнопка #
1 Шкала громкости (градиент) Плавность анимации
2 Шкала громкости (радуга) Плавность анимации Скорость радуги
3 Цветомузыка (5 полос) Плавность анимации Чувствительность
4 Цветомузыка (3 полосы) Плавность анимации Чувствительность
5 Цветомузыка (1 полоса)
5,1 3 частоты Плавность анимации Чувствительность Смена подрежима
5,2 Низкие Плавность анимации Чувствительность Смена подрежима
5,3 Средние Плавность анимации Чувствительность Смена подрежима
5,4 Высокие Плавность анимации Чувствительность Смена подрежима
6 Стробоскоп Плавность вспышек Частота вспышек
7 Цветная подсветка
7,1 Постоянный Цвет Насыщенность Смена подрежима
7,2 Плавная смена цвета Скорость Насыщенность Смена подрежима
7,3 Бегущая радуга Скорость Шаг радуги Смена подрежима
8 Бегущие частоты
8,1 3 частоты Скорость Чувствительность Смена подрежима
8,2 Низкие Скорость Чувствительность Смена подрежима
8,3 Средние Скорость Чувствительность Смена подрежима
8,4 Высокие Скорость Чувствительность Смена подрежима
9 Анализатор спектра Шаг цвета Цвет
Общие настройки (перекл. ОК) Все режимы Общая яркость горящих светодиодов Яркость “не горящих” светодиодов
Остальные кнопки: цифра 0 – калибровка шума, * – вкл/выкл систему,

ОШИБКИ И FAQ

FAQ:
Большинство проблем можно решить, прочитав вот эту статью: https://alexgyver.ru/ws2812_guide/

В: Купил ленту, на ней контакты G, R, B, 12. Как подключить?
О: Это не та лента, можешь выкинуть

В: Прошивка загружается, но выползает рыжими буквами ошибка “Pragma message….”
О: Это не ошибка, а информация о версии библиотеки

В: Что делать, чтобы подключить ленту своей длины?
О: Посчитать количество светодиодов, перед загрузкой прошивки изменить самую первую в скетче настройку NUM_LEDS (по умолчанию стоит 120, заменить на своё). Да, просто заменить и всё.

В: Сколько светодиодов поддерживает система?
О: Версия 1.1: максимум 450 штук, версия 2.0: 350 штук

В: Как увеличить это количество?
О: Варианта два: оптимизировать код, взять другую библиотеку для ленты (но придётся переписать часть). Либо взять Arduino MEGA, у неё больше памяти.

В: Какой конденсатор ставить на питание ленты?
О: Электролитический. Напряжение 6.3 Вольт минимум (можно больше, но сам кондер будет крупнее). Ёмкость – минимум 1000 мкФ, а так чем больше тем лучше.

В: Как проверить ленту без Arduino? Горит ли лента без Arduino?
О: Адресная лента управляется по спец протоколу и работает ТОЛЬКО при подключении к драйверу (микроконтроллеру)

Источник

Читайте также:  Сандали кожа своими руками
Оцените статью