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

ОБНОВЛЕНИЯ


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

Предыдущие

15.03.2018, colorMusic_v1.1:

  • Добавлена плавность режиму цветомузыки по частотам! Настройка SMOOTH_STEP
  • Добавлен режим стробоскопа с целой кучей настроек!

16.03.2018 colorMusic_v2.0:

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

18.03.2018 colorMusic_v2.2:

  • Настройки сохраняются в память (энергонезависимую)

19.03.2018 colorMusic_v2.3:

  • Улучшена производительность, почищен мусор
  • в 7 режиме радугу можно остановить и пустить вспять

08.05.2018 colorMusic_v2.4:

  • Добавлена настройка 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 светодиодов (работа может быть нестабильной)

20.05.2018 colorMusic_v2.6.1:

  • Исправлен небольшой баг

22.06.18 colorMusic_v2.6.2

  • Добавлено сохранение состояния “включено/выключено” в энергонезависимую память. Штука опциональная, в настройках можно выключить (настройка 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.

СХЕМЫ


ПРОШИВКА


УПРАВЛЕНИЕ


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

  • Если во время работы в режиме 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,13 частотыПлавность анимацииЧувствительностьСмена подрежима
5,2НизкиеПлавность анимацииЧувствительностьСмена подрежима
5,3СредниеПлавность анимацииЧувствительностьСмена подрежима
5,4ВысокиеПлавность анимацииЧувствительностьСмена подрежима
6СтробоскопПлавность вспышекЧастота вспышек
7Цветная подсветка
7,1ПостоянныйЦветНасыщенностьСмена подрежима
7,2Плавная смена цветаСкоростьНасыщенностьСмена подрежима
7,3Бегущая радугаСкоростьШаг радугиСмена подрежима
8Бегущие частоты
8,13 частотыСкоростьЧувствительностьСмена подрежима
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?
О: Адресная лента управляется по спец протоколу и работает ТОЛЬКО при подключении к драйверу (микроконтроллеру)

  • МОЖНО СОБРАТЬ СХЕМУ БЕЗ ПОТЕНЦИОМЕТРА! Для этого параметру POTENT (в скетче в блоке настроек в настройках сигнала) присваиваем 0. Будет задействован внутренний опорный источник опорного напряжения 1.1 Вольт. Но он будет работать не с любой громкостью! Для корректной работы системы нужно будет подобрать громкость входящего аудио сигнала так, чтобы всё было красиво, используя предыдущие два пункта по настройке.
  • Версию 2.0 и выше можно использовать БЕЗ ИК ПУЛЬТА, режимы переключаются кнопкой, всё остальное настраивается вручную перед загрузкой прошивки.
  • Как настроить другой пульт?
    У других пультов кнопки имеют другой код, для определения кода кнопок используйте скетч IR_test (версии 2.0-2.4) или IRtest_2.0 (для версий 2.5+), есть в архиве проекта. Скетч шлёт в монитор порта коды нажатых кнопок. Далее в основном скетче в секции для разработчиков есть блок дефайнов для кнопок пульта, просто измените коды на свои. Можно сделать калибровку пульта, но честно уже совсем лень.
  • Как сделать два столбика громкости по каналам?
    Для этого вовсе необязательно переписывать прошивку, достаточно разрезать длинный кусок ленты на два коротких и восстановить нарушенные электрические связи тремя проводами (GND, 5V, DO-DI). Лента продолжит работать, как одно целое, но теперь у вас есть два куска. Само собой, аудио-штекер должен быть подключен тремя проводами, а в настройках отключен моно режим (MONO 0), а количество светодиодов должно быть равно суммарному количеству на двух отрезках.
    P.S. Посмотри первую схему в схемах!
  • Как сбросить настройки, которые хранятся в памяти?
    Если вы доигрались с настройками и что то пошло не так, можно сбросить настройки на “заводские”.  Начиная с версии 2.4 есть настройка RESET_SETTINGS, ставите её 1, прошиваетесь, ставите 0 и снова прошиваетесь. В память будут записаны настройки из скетча. Если вы на 2.3, то смело обновляйте до 2.4, версии отличаются только новой настройкой, которая никак не повлияет на работу системы. В версии 2.9 появилась настройка SETTINGS_LOG, которая выводит в порт значения хранящихся в памяти настроек. Так, для отладки и понимания.

ПОДДЕРЖАТЬ


Вы можете поддержать меня за создание доступных проектов с открытым исходным кодом, полный список реквизитов есть вот здесь.

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

640 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх