22.05.2019 colorMusic_v2.10: • Исправлен глюк с большим количеством светодиодов на МЕГЕ
</span>
СТАРЫЕ ВЕРСИИ
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 секунд после последнего нажатия на любую кнопку ИК пульта
ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ
Понятные схемы, прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов.
ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ
НАСТРОЙКА ОПОРНОГО НАПРЯЖЕНИЯ. Потенциометр настройки опорного напряжения настраивается “методом тыка” пока не заработает (у меня стоит в середине). Подстройка нужна при смене источника аудио или изменении его потенциальной громкости.
- Если во время работы в режиме 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 – калибровка шума, * – вкл/выкл систему, |
СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ
Внимание! arduino подключается к источнику звука до усилителя (линейному выходу)! звук, который идёт с усилителя на колонки, может спалить плату!
Разделяем на две вертикальные стойки
Без режима частот
С частотами (3-5 режим)
С микрофоном
От источника 12В
С ИК пультом 3.5 вход
С ИК пультом мик вход
С ИК пультом 3.5
Вход с усилителя (с колонки)
Схема для Pro Micro (by Евгений Зятьков)
МАТЕРИАЛЫ И КОМПОНЕНТЫ
Ссылки на магазины, с которых я закупаюсь уже не один год
Вам скорее всего пригодится:
- Arduino NANO с ногами http://ali.ski/kJHHnL http://ali.ski/OnjivR
- Arduino NANO без ног http://ali.ski/SK0PW http://ali.ski/GAq_mq
- Адресная лента https://ali.ski/tdsIOJ http://ali.ski/j2xitd
- Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
- 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
- 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
- IP30 лента без влагозащиты (как на видео)
- IP65 лента покрыта силиконом
- IP67 лента полностью в силиконовом коробе
- Лента как на видео: Black PCB 5m 60 IP30
- Понижайка для автомобиля http://ali.ski/T5TpbR http://ali.ski/yLUrOg
- Блок питания 5V 2A https://ali.ski/ATrWrthttps://ali.ski/_xdKee
- Адаптер питания 5.5х2.1 http://ali.ski/UWjFu
- Аудио гнездо http://ali.ski/OBCRvl
- Разветвитель наушников http://ali.ski/LuAcL http://ali.ski/gjhGIB
- ИК пульт (для версии 2.0 WAVGAT) http://ali.ski/jIgy6d http://ali.pub/2eh6xy
- Звук через микрофон
- Микрофон модуль http://ali.pub/2cd5qr http://ali.pub/2cd5th http://ali.pub/2cd5un
- Звук по FM радио
- Передатчик FM http://ali.ski/29sic http://ali.ski/lklMs
- Передатчик “сделай сам” http://ali.ski/YsmHW http://ali.ski/wmNkEX
- Приёмник FM из видео http://ali.ski/VsnK0 http://ali.ski/uVp3_
- Понижайка 3.3V http://ali.ski/ftSy1x http://ali.ski/acDEN
- Приёмник “сделай сам” http://ali.ski/26e_Jh
- Звук по Bluetooth
- Передатчик Bluetooth http://ali.ski/_94Dig
- Приёмник “свисток” http://ali.ski/Rkuyvl
- Ещё приёмник http://ali.ski/QyigGj
- Кнопки, конденсаторы и крутилки ищите в любых магазинах для радиолюбителей, так как у китайцев можно купить только мешок 50 штук!
- Алик
- Куча резисторов http://ali.ski/FcTn6
- Куча кнопок http://ali.ski/EBLzU
- Куча конденсаторов http://ali.ski/_ARA6v
- Куча потенциометров (можно обойтись без него! Читайте инструкцию) http://ali.ski/fAJrzc
- Куча конденсаторов для микрофона 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
ПРОШИВКА И НАСТРОЙКА
Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если например лента его потребует. Это может привести к выгоранию защитного диода на плате Arduino. Гайд по скачиванию и загрузке прошивки можно найти под спойлером на следующей строчке.
ИНСТРУКЦИЯ ПО ЗАГРУЗКЕ ПРОШИВКИ
1. Если это ваше первое знакомство с Arduino, внимательно изучите гайд для новичков и установите необходимые для загрузки прошивки программы.
2. Скачайте архив со страницы проекта. Если вы зашли с GitHub – кликните справа вверху Clone or download, затем Download ZIP. Это тот же самый архив!
3. Извлеките архив. Содержимое папки libraries перетащите в пустое место папки с библиотеками Arduino C:/Program Files (x86)/Arduino/libraries/
4. Папку с прошивкой из firmware положите по пути без русских букв. Если в папке с прошивкой несколько файлов – это вкладки, они откроются автоматически.
5. Настройте прошивку (если нужно), выберите свою плату, процессор. Подключите Arduino к компьютеру, выберите её COM порт и нажмите загрузить.
6. При возникновении ошибок или красного текста в логе обратитесь к 5-ому пункту гайда для новичков – “Разбор ошибок загрузки и компиляции“.
Содержимое папок в архиве
- libraries – библиотеки проекта. Заменить имеющиеся версии
-
firmware – прошивки
- colorMusic_v*** – прошивка для Arduino
- Old versions – старые версии прошивок (не рекомендуется вообще их трогать)
- IRtest_2.0 – скетч для получения кодов кнопок стороннего ИК пульта
- schemes – схемы подключения
Дополнительно
-
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, которая выводит в порт значения хранящихся в памяти настроек. Так, для отладки и понимания.
АЛГОРИТМ РАБОТЫ
Режим громкости
- Делается 100 измерений напряжения на АЦП
- Ищется максимальное
- Фильтруется по нижнему порогу шумов
- Возводится в степень для большей “резкости” анимации
- Фильтруется “бегущим средним”
- Ищется “средняя” громкость за несколько секунд (тоже бегущее среднее, но очень медленное)
- Ищем “максимальную громкость шкалы”, как среднюю * некоторый коэффициент
- Преобразуем сигнал в количество горящих светодиодов
- Включаются светодиоды согласно режиму отрисовки
Режим цветомузыки:
- Преобразование Хартли (разбивка на спектр частот)
- Фильтрация по нижнему порогу шумов
- Поиск максимального значения в трёх диапазонах (низкие, средние, высокие)
- Расчёт “средней громкости” (медленное бегущее среднее)
- Если текущий сигнал больше среднего * коэффициент – включаем светодиоды
- Итого имеем массив colorMusicFlash, в котором три ячейки 1 или 0, вкл или выкл
- Включаем отрезки светодиодов согласно массиву
Цветомузыку собрал примерно за 3 часа, остальное время ушло на разбор и модификацию кода, а так же на поездку в магазин за профилем и кнопками.
Особенность этой цветомузыки в том, что ее не нужно подключать к источнику аудио сигнала, так как она получает аудио данные, благодаря встроенному в нее модулю микрофона. Он подключен через усилитель напряжения к АЦП ардуины. Усилитель собран на транзисторе КТ3102, у которого есть зарубежные аналоги.
Для выбора режимов на цветомузыке имеются две кнопки, color и pattern. Кнопка color переключает цветовые схемы, их всего 3, а кнопка patern переключает динамические режимы цветомузыки, их всего 8.
Для настройки чувствительности и яркости установлен потенциометр param, это переменный резистор с изменяемым сопротивлением от 0 до 10 кОм. Он так же подключен к АЦП и в зависимости от его положения происходит программная обработка параметров. Можно модифицировать код и установить вместо потенциометра энкодер, но это уже будет реализовано в другом проекте.
В настройках так же можно выбирать используемое в ленте количество светодиодов 60, 120 или 180 и регулировать частотный фильтр, настроенный на 8 частотных диапазонов, для этого применяется программный фильтр частот на базе алгоритма быстрого преобразования Фурье.
Светодиодная лента основана на полноцветных, управляемых адресных светодиодах ws2812b. Плотность ленты я выбрал 60 светодиодов на 1 метр. На мой взгляд это оптимальное соотношение для многих задач. К питанию светодиодной ленты нужно отнестись серьезно , так как на максимуме она потребляет до 3,6 А на 1 метр. Конечно вероятность такого сценария что цветомузыка включит все светодиоды белым цветом и еще на полную мощность, равна нулю. Но тем не менее лучше сразу приобрести хороший блок питания. Как минимум на 5 Вольт и 5 Ампер.
Схема цветомузыки. По схеме комментировать особо нечего. Нужно только настроить среднюю точку усилителя на транзисторе КТ3102. Настройка сводится к подбору резистора смещения 200 кОм или резистора нагрузки 1 кОм, нужно добиться половины напряжения питания на коллекторе транзистора или входе A0. Транзистор можно заменить любым n-p-n аналогом.
Потенциометр лучше использовать линейный с сопротивлением от 10 до 50 кОм.
Если Вы в своем проекте будете использовать контроллер Arduino pro mini, то припаяйте сразу керамический конденсатор 0,1 мкФ на 20-й вывод (ARef) микроконтроллера ATmega328.
Основные комплектующиеArduino Pro miniСветодиодная лента на WS2812BМикрофон с усилителемПотенциометр 20кОм Адаптер питания 5 В, 10 А очень давно куплен на алиэкспресс
Скетч для Ардуино ws2812b Я использовал в своем проекте, код цветомузыки Lumazoid с небольшими модификациями. Оригинальный скетч можно скачать с гитхаба Еще нужно добавить в папку libraries, используемые в проекте дополнительные библиотеки NeoPixel.h и ffft.h
Если Вы в скетче не прописали параметры своей светодиодной ленты, то их можно изменить. Для этого нажмите кнопку pattern, не отпуская ее включите питание. Вращая потенциометр нужно выбрать плотность используемой светодиодной ленты, по светящимся красным светодиодам: первый — 60, второй — 120 или третий — 180 светодиодов. Для сохранения параметров в EEPROM еще раз нажмите кнопку pattern.
Для регулировки яркости нужно нажать и удерживать кнопку color, после чего включаем питание. По умолчанию в скетче прописано 8 светодиодов которые будут светиться основными цветами. Ручкой потенциометра param можно изменить их яркость. Для сохранения параметров в EEPROM нажмите еще раз кнопку color.
Видео демонстрирующее возможности цветомузыки. Сразу прошу извинить меня за качество ролика, снимал дешевым смартфоном.
Надеюсь я ничего не упустил. Если у Вас возникнут вопросы, я с удовольствием на них отвечу. Обсуждение на форуме cyber-place.ru











#define REMOTE_TYPE 0
Там должен стоять «0».Настройки Arduino будет хранить в энергонезависимой памяти EEPROM. Чтобы не возникало ошибок в дальнейшем, сбросим все настройки. Находим строку:
#define RESET_SETTINGS 0
Ставим вначале «1», прошиваем скетч, после этого ставим «0» и прошиваем еще раз.В строке:
#define NUM_LEDS 36
Указываем ваше количество светодиодов. После запуска цветомузыки поступаем следующим образом: для начала надо настроить нижнюю границу уровня звука. Для этого ставим музыку на паузу, зажимает и удерживаем кнопку пока не загорится диод на плате Arduino. Вариантов установки цветомузыки масса. Я установил блок питания и Arduino на шкафу. Блок питания подальше, чтобы его не было видно, а ленты направил вверх:
Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!
*Заполняя форму вы соглашаетесь на обработку персональных данных
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь. Используемые источники:
- https://alexgyver.ru/colormusic/
- https://duino.ru/blog/all/cvetomuzyka-na-arduino-svoimi-rukami/
- https://usamodelkina.ru/16334-cvetomuzyka-na-arduino.html
Что такое Ардуино? Это свобода для изобретателя
Основные неисправности светодиодных лент и способы их устранения




Дубликатор домофонных ключей (iButton) на Arduino Uno









Как выбрать и подключить диммер для светодиодной ленты
Датчики давления Arduino bmp280, bmp180, bme280
Подсветка с датчиком движения: особенности, виды, советы по выбору
Adau17017