Как сделать светомузыку на ленте 2812в – Крутая цветомузыка своими руками | AlexGyver Technologies

Цветомузыка на Arduino

Цветомузыка на Arduino

Видео демонстрация под Metallica — Fuel

Видео демонстрация под Evanescence — Even in death (2016 version)

Добрый день всем читателям и любителям «посамодельничать». Все мы с нетерпением ждем Новый год. И конечно хочется украсить свой дом. Чтобы вокруг всем было красиво и сказочно. И какой же Новый год без хорошей музыки. Вкусы у всех, конечно, разные, но каждый захочет включить что-нибудь, веселое и потанцевать. А может это будет медленный танец или вспомнить ушедший год под грустные мотивы. В любом случае, создать атмосферу и украсить дом, поможет цветомузыка. Созданию цветомузыки на основе Arduino и WS2812, и будет посвящена данная инструкция. На эту идею меня натолкнул AlexGyver. На его сайте alexgyver.ru много подобных идей и изобретений. Загляните как будет время. Итак, начнем.

В список покупок к Новому году добавим:

— Arduino Nano (можно использовать практически любую совместимую плату)
— Адресные светодиоды WS2812 (WS2812B), в количество светодиодов от 2 – 400 шт.
— Переменный резистор 10 – 100 кОм
— Кнопка
— Блок питания 5 В, 3 А (сила тока подбирается по ваше количество диодов)
— гнездо подключения блока питания
— Гнездо стерео-джек 3,5 мм
— Соединительный провод (стерео-джек 3,5 мм — стерео-джек 3,5 мм)
— Керамический конденсатор 10нФ (маркировка 103)
— Провода
— Паяльник и все сопутствующие ему.


Шаг 1 Подготовка светодиодных лент.
В этом шаге большой простор для вашей фантазии. Можно закрепить ленты на шкафу, картине, карнизе, телевизоре, тумбе и тд и тп. Я так и не смог определиться с выбором места. Я сделал, и вам рекомендую, сделать переносную ленту, точнее две. По длине – все зависит от вашего желания. Также ленту бываю с разной плотностью. Я брал с плотностью 30 диодов на метр. Они также есть 60 и 120 диодов на метр. Я сделал две полоски по 18 светодиодов. Это примерно 60 см. Для начала нам нужно основа. Под основу подойдут полоски фанеры, ДВП или пластика. Я взял фанеру толщиной 3 мм и вырезал две полоски шириной 1 см и диной 62 см (с запасом чтобы на конце закрепить провода от ленты):
Цветомузыка на Arduino

Поверх полоски из фанеры клеим светодиодную ленту, если вы приклеили ленту не ровно и пришлось ленту отодрать, она будет плохо держаться. В таком случае рекомендую использовать канцелярский двусторонний скотч. Он есть толщиной 1 см, как раз по ширине нашей ленты:

Цветомузыка на Arduino

Для тех кот не работал с адресными лентами вкратце расскажу. WS2812 – это три светодиода (красный, синий, зеленый) и 8-битный ШИМ драйвер для них в одном корпусе. Для подключения ленты используется три провода. +5V контакт на который подается плюс от блока питания, GND – минус блока питания. Управление происходит подачей 24 битного сигнала для каждого светодиода (8 бит на один цвет). Сигнал от Arduino подается на контакт Din первого светодиода, который в свою очередь, записывает себе во временную память первые 24 бита и согласно им, устанавливает цвет свечения, отсекает от сигнала эти первые 24 бита и отправляет сигнал через контакт Do дальше, следующим светодиодам. Поэтому у ленты есть направление. Она указано на ленте стрелочкой, или от контакта Din к Do.

Чем больше светодиодов, тем больше протекающий ток . WS2812 очень прожорливы и один диод потребляет (при максимальной яркости все трех цветов) 0,06 А. Поэтому провода питания контакты +5V и GND надо подбирать под максимальный ток протекающий по ним. Я использовал медный гибкий провод сечение 0,5 мм (с запасом и для дальнейшего увеличения длины ленты). Провод для сигнального контакты не столь требователен к сечению, ток протекающий по нему мал, поэтому берем тоненький гибкий провод. Припаиваем провода к ленте и изолируем контакты:

Цветомузыка на Arduino

Цветомузыка работает следующим образом: делит количество светодиодов пополам, громкость музыки указывается загоранием диодов от середины к концам всей ленты. Поэтому, если вы хотите две полосы, работающие как у меня на видео обе ленты подключаются параллельно (провод от контактов Din обеих лент к одному пину Arduino, D12). И тогда количество светодиодов в скетче указываем равное сумме диодов обеих лент. Если вы хотите, чтобы лента работала от середины подключаем две полоски последовательно и также указываем общее количество светодиодов.

Шаг 2 Блок питания.
Как я уже говорил лента WS2812 прожорлива, к выбору блока питания надо подойти основательно. Нам нужен 5 вольтовой стабилизированный, силу тока подбираем в зависимости от количества светодиодов, лучше брать с запасом. Я рекомендую, например, такой на 3 А:

Цветомузыка на Arduino

Характеристики написаны на корпусе блока питания:

Цветомузыка на Arduino

Я планирую дальнейшее расширение моей цветомузыки, поэтому не мелочась беру компьютерный блок питания с выведенными контактами подключения:

Цветомузыка на Arduino

Шаг 3 Arduino и схема подключения.
Для реализации данного проекта подойдет практически любая Arduino совместимая плата. У меня под руками оказалась Arduino Uno. Теперь надо собрать все по схеме. Схему возьму от моего идейного вдохновителя AlexGyver –ра:

Цветомузыка на Arduino

Потенциометр нужен для установки опорного напряжения для измерения уровня аудио сигнала. Контакт A0 используется как GND (для Arduino Nano так удобнее подключать). Можно обойтись без потенциометра, включив использование внутреннего опорного напряжения в скетче.

Контакты A1, A2 используются для подключения аудио сигнала, не забываем соединить GND контакты Arduino и провода аудио сигнала.
Кнопка, используется для переключения режимов, подключается к контакту D3 Arduino.

Соединение гнезда и контакта A3 через конденсатор нужно для работы некоторых режимов. Подробно о режимах работы вы можете узнать на странице AlexGyver:

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

Цветомузыка на Arduino

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

Я собрал все на основе Arduino Uno и разместил на блоке питания:

Цветомузыка на Arduino

Шаг 4 Редактирование, настройка и заливка скетча.
Для начала необходимо скачать последнюю версию среды разработки Arduino IDE. Лучше всего с официального сайта.

Выбирайте как вам удобнее: скачать ZIP архив и распаковать в нужное место или скачать установочный файл и установить программу. Разницы нет.

Для работы скетча нам понадобятся библиотеки: Adafruit_NeoPixel-master, EEPROMex, FastLED-master, FHT, GyverButton, IRLremote-master и IRremote. Проще всего скачать их все вместе и уже нужные версии с сайта AlexGyver.

Скачиваем целиком архив. Распаковав архив, переписываем все содержимое папки «libraries» в одноименную папку, находящуюся в папке с установленной Arduino iDE.

Запускаем Arduino IDE. Открываем скетч из скаченного ранее архива. Нужный нам скетч находиться в папке «firmware». Открываем «colorMusic_v2.10». Чтобы он работал правильно его нужно немного подправить, а точнее выставить правильные настройки.
Скетч предусматриваем возможность использования инфракрасного пульта для управления. Если есть желание вы можете найти все нужные инструкции на сайте AlexGyver-а. На мой взгляд пульт не обязателен. Поэтому будет настраивать на работу без пульта. Ищем строку:

#define REMOTE_TYPE 0

Там должен стоять «0».

Настройки Arduino будет хранить в энергонезависимой памяти EEPROM. Чтобы не возникало ошибок в дальнейшем, сбросим все настройки. Находим строку:

#define RESET_SETTINGS 0

Ставим вначале «1», прошиваем скетч, после этого ставим «0» и прошиваем еще раз.

В строке:

#define NUM_LEDS 36

Указываем ваше количество светодиодов.
После запуска цветомузыки поступаем следующим образом: для начала надо настроить нижнюю границу уровня звука. Для этого ставим музыку на паузу, зажимает и удерживаем кнопку пока не загорится диод на плате Arduino.

Вариантов установки цветомузыки масса. Я установил блок питания и Arduino на шкафу. Блок питания подальше, чтобы его не было видно, а ленты направил вверх:

Цветомузыка на Arduino

Также можно установить ленты по бокам от компьютерного стола:

Цветомузыка на Arduino

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

Цветомузыка на Arduino Цветомузыка на Arduino Доставка новых самоделок на почту

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

*Заполняя форму вы соглашаетесь на обработку персональных данных

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

usamodelkina.ru

Цветомузыка на Ардуино своими руками

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

Цветомузыку собрал примерно за 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.

Цветовую схему лучше выбрать 3-ю, так как она наиболее красочная. В этом режиме каждому цвету соответствует свой частотный диапазон. Всего 8 частотных диапазонов, перечисляю их цвета от самого низкого до самого высокого: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый.
Если удерживать кнопки color, pattern и вращать потенциометр param, то можно ограничивать частотный диапазон убирая высокие — средние и так далее до самых низких частот(красный светодиод). Например если Вам нужно что бы цветомузыка реагировала только на низкие звуки, то достаточно оставить только низкий диапазон частот.

Видео демонстрирующее возможности цветомузыки.
Сразу прошу извинить меня за качество ролика, снимал дешевым смартфоном.

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

duino.ru

Цветомузыка на светодиодной ленте WS2812

Привет дорогой читатель.

Предлагаю к сборке еще один вариант цветомузыки. Данный вариант построен на модуле с микроконтроллером STM32F103C8T6.

Схема цветомузыки
Цветомузыка на светодиодной ленте WS2812 - 1

Для сборки контроллера вам потребуется:
Модуль с микроконтроллером STM32F103C8T6;
Модуль микрофона;
Светодиодная лента с пиксельной адресацией WS2812B;
Модуль bluetooth (если требуется управление со смартфона).

Программа модуля микроконтроллера может снимать аудио сигнал с входов A0 и A1. Вы можете выбрать контакт аналогового входа A0 или A1 подключением вывода A15 к общему (G) выводу или оставив A15 не подключённым.
Второй вход вы можете использовать для подключения к линейному выходу устройства воспроизведения аудио. Используйте буферный усилитель для согласования выходного уровня с входным уровнем АЦП модуля микроконтроллера 0-3,3В. Каждая из схем имеет свои плюсы, и минусы. Для линейного входа нужен кабель, а микрофон принимает посторонние звуки.

Назначение кнопок:
Кнопка(контакт) B9 – Сохранение установленного режима как режима при включении питания;
Кнопка(контакт) B8 – Установка количества активных светодиодов в ленте;
Кнопка(контакт) B7 – Выбор динамической программы;
Кнопка(контакт) B6 – Выбор музыкальной программы;
Кнопка(контакт) B5 – Включение/выключение режима перебора динамических программ;
Кнопка(контакт) B4 – Установка яркости ленты;
Кнопка(контакт) B3 – Установка темпа переключения.

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

Программа для микроконтроллера STM32F103C8T6 доступна для скачивания c google диска. Выберите прошивку MC_**led.HEX c номером совпадающим с количеством светодиодов в вашей ленте: 30, 60, 72, 90, 120, 144, 150, 180, 210, 216, 240. Если позднее у вас изменится количество светодиодов в ленте вы сможете настроить их количество с помощью кнопки подключённой к выводу B8. Нажмите и удерживайте кнопку пока все светодиоды не будут задействованы.
Сохраните режим после установки количества светодиодов в ленте!

Кнопка подключённая к выводу B9 сохраняет установленный режим как режим по умолчанию. Для выполнения сохранения нажмите и удерживайте кнопку 3-4 секунды.

Наиболее просто программирование STM32F103C8T6 выполняется с помощью программы Flash loader demonstrator по UART. Для этого вам понадобится переходник USB-UART. В интернете есть несколько описаний процесса программирования STM32 по UART. Вы можете выбрать описание которое вам покажется более понятным. Будьте внимательны при подключении модуля микроконтроллера к программатору. Помните входы STM32F103C8T6 расчитаны на 3,3В.

Управление возможно c кнопок и/или из приложения под Android.

Программа “Цветомузыка“ под Android доступна для скачивания на Google Play.
Цветомузыка на светодиодной ленте WS2812 - 2
Цветомузыка на светодиодной ленте WS2812 - 3
Цветомузыка на светодиодной ленте WS2812 - 4
Цветомузыка на светодиодной ленте WS2812 - 5

Видео работы цветомузыки выложено на youtube:

Автор: juraspb

Источник

www.pvsm.ru

Цветомузыка на Arduino, Светодиодный проект на WS2812b

То, что у вас уже есть, вы можете удалить в корзине.

С наступающим! Приближается Новый год, а значит, пора срочно создавать настроение! Ну и как всегда в это время года рождаются десятки электронных схем различных цветомузыкальных установок. Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.
Чип и Дип является крупнейшим поставщиком адресных светодиодов WS2812b на российский рынок. Поэтому мы хотим показать вам очень простую и удивительную цветомузыку, которую работает на Arduino. Назовем её — визуализатор звука!

Инструкция

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

Схема

Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180. А впрочем, любое количество.
В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Основную часть скетча писал Майкл Крампас, парни из Чип и Дипа добавили функционал, ещё одна часть кода взята из проекта Piccolo компании Adafruit.
В Adafruit также писали библиотеку для светодиодов neopixel. А библиотека быстрого преобразования Фурье (FFT) написана уважаемым ChaN, это библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.
Сам скетч и библиотеки ffft.h и Adafruit_NeoPixel.h нужно скачать в подвале этой страницы и распаковать в папку с другими библиотеками Arduino. Например C:\Program Files (x86)\Arduino\libraries
Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч в плату Arduino и наслаждайтесь шоу.
Это всего лишь развлечение!

Настройки

В момент первого включения нужно сделать пару настроек:
Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.
Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:
1=60 светодиодов
2=120 светодиодов
3=180 светодиодов
По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.

Алгоритмы

Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.
Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.
Световая полоса: в пиках освещается вся полоса.
Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.
Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.
Вспышки: пики сигналов отображаются в виде светодиодной вспышки в случайном месте. Начальный цвет белый, а затем исчезает через другой цвет.
Светлячки: пики сигналов отображаются как одиночные светодиоды в случайном месте, и они перемещаются влево или вправо и исчезают. Их скорость зависит от величины сигнала.

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

Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.
Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.
Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.
Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.

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


Ещё одна композиция


Эпилог или разбор полётов
1. Как изменить подсветку в паузах?
2. Можно ли изменить динамику?
3. Как подключить ленту с количеством светодиодов отличным от 60/120/180?

Это открытый проект! Лицензия, под которой он распространяется – Creative Commons — Attribution — Share Alike license.

www.chipdip.ru

Адресная светодиодная лента ws2812b Arduino — подключение и скетч

Адресная светодиодная лента – это украшение любого проекта Arduino. С ее помощью вы можете создавать светомузыку, умную подсветку для телевизора, бегущие строки и другие проекты, в которых требуется отобразить информацию на широком экране. Благодаря встроенным контроллерам, вы можете управлять каждым из светодиодов ленты в отдельности, управляя ими как пикселями на экране. В этой статье мы разберемся, как работает адресная светодиодная лента, как ее подключить к  Ардуино и какие библиотеки лучше использовать для управления.   

Адресные светодиодные ленты

Светодиодная лента – это набор связанных светодиодов, на которые может одновременно подаваться напряжение питания. Обычные ленты хорошо всем знакомы, они используются сегодня повсюду. В адресной светодиодной ленте так же используются светодиоды, но светоизлучающий диод может управляться отдельно и независимо от других. Таким образом, адресные ленты можно использовать для более интеллектуального управления световым потоком на отдельных участках ленты, включая или выключая подсветку в нужное время и в нужном месте.

Адресная светодиодная лента WS2811Адресная светодиодная лента WS2811

Сегодня наибольшей популярностью пользуются разноцветные светодиодные ленты RGB-формата, позволяющие получать множество цветов. Благодаря конструкции есть возможность управления цветом каждого светодиода, что позволяет создавать оригинальные световые эффекты. Главное отличие адресной светодиодной ленты от обычной RGB ленты – это наличие специальных контроллеров (конструктивно выполненных в виде микросхем) возле каждого светодиода, что и дает возможность индивидуальной адресации и регулирования каждого оттенка.

Как правило,л ента содержит 3-4 контакта для подключения. Два вывода используются для питания – 5 Вольт и земля, остальные один или два – логический, для управления свечением.  

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

Самыми популярными адресными светодиодными лентами являются устройства на чипах WS2812b и WS2811. В первом случае чип находится прямо внутри светодиода, то есть один прибор управляет свечением одного излучающего диода. Питание ленты составляет 5 вольт. Во втором случае чип помещается отдельно, и к нему подключаются 3 диода. Мощность – 12 вольт.

Купить адресную светодиодную ленту

Ленты ws2812 достаточно распространены на российском рынке, их без труда можно найти в многочисленных специализированных магазинах. Можем посоветовать интернет-магазин Giant4.Ru с достаточно широким ассортиментом различных светодиодных лент и вполне низкими ценами, сопоставимыми с али. Если же есть возможность и желание ждать товар с Алиэкспресса, то ниже мы собрали вместе некоторые популярные варианты у надежных поставщиков:

 

Как работает адресная светодиодная лента

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

Маркировка адресной ленты: 

  • Black PCB / White PCB – цвета подложки; 
  • 1м/5 м – длина адресной ленты; 
  • 30/60/74 и т.д. – сколько светодиодов приходится на 1 метр ленты; 
  • IP30, IP65, IP67 – степень влаго- и пылезащищенности ленты =.  

Адресные светодиодные ленты используются для сборки полноценных модулей, в конструировании ламп с управлением soft lights, для декоративной подсветки, в построении диодных экранов уличной рекламы.  

Видео инструкции и ролики

Обучающее видео на канале HomeMade:


Видео по созданию бегущей строки на базе ленты ws2112

 

Лента на базе ws2812b

Лента на базе ws2812b Лента на базе ws2812b

Лента на чипе ws2812b является более совершенствованной, чем ее предшественник. ШИМ драйвер в адресной ленте компактен, и размещается прямо в корпусе светоизлучающего диода.  

Основные преимущества ленты на основе ws2812b: 

  • компактные размеры; 
  • легкость управления; 
  • управление осуществляется всего по одной линии + провода питания; 
  • количество включенных последовательно светодиодов не ограничено; 
  • невысокая стоимость – покупка отдельно трех светодиодов и драйвера к ним выйдет значительно дороже. 

Лента оснащена четырьмя выходами: 

  • питание; 
  • выход передачи данных; 
  • общий контакт; 
  • вход передачи данных. 

Максимальный ток одного адресного светодиода равняется 60 миллиамперам. Рабочие температуры лежат в пределах от -25 до +80 градусов. Напряжение питания составляет 5 В +-0,5. 

ШИМ драйверы ленты 8-мибитные – для каждого цвета возможно 256 градация яркости. Для установки яркости нужно 3 байта информации – по 8 бит с каждого светодиода. Информация передается по однолинейному протоколу с фиксированной скоростью. Нули и единицы кодируются высоким и низким уровнем сигнала по линии.  

1 бит передается за 1,25 мкс. Весь пакет из 24 бит для одного светодиода передается за 30 мкс.  

Пример подключения к ардуино

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

Лента ws2812B подключается к Ардуино следующим образом. 

 

Лента ws2812B подключается к Ардуино следующим образомЛента ws2812B подключается к Ардуино следующим образом

Еще один вариант подключения:

Подключение ws2128 к АрдуиноПодключение ws2128 к Ардуино

Выходы питания с ленты 5В и земля соединяются с соответствующими контактами на микроконтроллере Ардуино. При подключении отрезка с более чем 13 светодиодами потребуется выносной блок питания. Земля и минус блока питания должны быть соединены друг с другом. DINможно подключить к любому цифровому порту на Ардуино. Он используется для получения данных с контроллера.  

Цифровой вход ленты идет на вход контроллера, поэтому между ними нужен токоограничивающий резистор номиналом 100-500 Ом. С его использованием нагрузка на пин будет ниже.  На другом конце ленты также есть 3 контакта, к которым можно подключить отрезки различной длины.  

Каждый блок ленты состоит из трех светодиодов. Соответственно, для управления подсветкой потребуется 3 байта – по одному на каждый свет. Каждый байт принимает значение от 0 до 255 – это значит, что есть возможность задания более 16 миллионов оттенков.

Данные передаются следующим образом: 

  • ШИМ драйвер забирает первые 3 байта, остальные передаются на выход D0; 
  • затем пауза длительностью 50 мкс; 
  • второй драйвер принимает следующие 3 байта.И так далее.
  • Когда длительность задержки становится более 50 мкс, передача окончена и начинается второй цикл.

Причины проблем при работе с адресной светодиодная лентой: 

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

Библиотеки Ардуино для работы со светодиодной лентой

Для управления адресной светодиодной лентой существует 3 библиотеки: FastLED, AdafruitNeoPixel и LightWS2812. Наиюолее популярной является первая. Она поддерживает все версии Ардуино и различные протоколы данных, которые используются не только для адресной ленты. Но надо иметь в виду, что FastLED более ресурсоемкая.

Вторая библиотека, AdafruitNeoPixel, чаще используется при работе со светодиодными кольцами. Возможностей меньше, скорость ниже, но она менее требовательна к ресурсам, в ее составе только самое нужное. Поддерживает все версии Ардуино. Третья библиотека используется не очень часто.

Работать с библиотеками FastLED и Adafruit NeoPixel одинаково просто. Их отличия заключаются в функциональности и объеме занимаемой памяти.

Основные моменты подключения ленты: 

  • Команды передаются друг за другом, и нужно не перепутать начало и конец. D1 принимает команды, D0 используется для подключения дополнительных отрезков.  
  • Для подключения цифрового входа нужно резистор. 
  • При монтаже адресной светодиодной ленты нельзя допускать статического электричества.  
  • Если между лентой и Ардуино расстояние более 15 см, сигнальный провод и землю нужно перекрутить в косичку. Это поможет избежать наводок.  
  • Питание. Каждому светодиоду в сегменте нужно 20 мА. Суммарный ток будет составлять 60 мА. Нужно просчитать общий ток ленты, и, исходя из полученного значения, подбирать блок питания. Например, лента длиной 1 м с 60 диодами будет потреблять 60*60=3600 мА=3,6 Ампер. Блок питания подбирается с похожей мощностью.  
  • Силовые точки должны быть запаяны качественно. Провода должны иметь такое сечение, чтобы выдерживать подаваемую нагрузку. Минимальное сечение 1,5 кв.м. При тонких проводах заданный программно белый цвет будет отдавать красным оттенком.  
  • Помехи. Лента, которая мигает, может создать помехи на линии. Если она с контроллером получает напряжение от одного источника, то помехи пойдут на микроконтроллер. Это может привести к нестабильности работы и различным сбоям. Решением проблемы будет установка электролитического конденсатора емкостью 470 мкФ на питание микроконтроллера и конденсатор на 1000 или 2200 мкФ на питание ленты.  
  • Если лента и устройство управления питаются от источников с разным напряжением, нужно использовать преобразователь уровня.  
  • Рекомендуется подавать на ленту менее 5 В питания. 
  • Питание в длинной ленте советуется распределить по всей длине. В ином случае моет произойти перегрев токопроводящих дорожек.
  • На ленте имеется толстый слой меди. От точки питания по ленте может падать напряжение. Для удаления подобной проблемы нужно дублировать питание при помощи медного провода сечением минимум 1,5 кв.м. через каждый метр.  

Соблюдение основных моментов и следование инструкции позволяет самостоятельно подключить адресную светодиодную ленту к вашему проекту.

arduinomaster.ru

Светодиодная лента WS2812B — изготовление новогодней подсветки окна

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


Я взял влагозащищенную версию, которая у продавца обозначается как «White 4m 60 IP67», это лента в силиконе. Пришла на катушке, в фольгированном пакетике:

На одном метре 60 светиков, залитых силиконом:

С обратной стороны двухсторонний скотч для крепления к поверхности:

Посмотрим на отдельную секцию ленты:

Видим: линии отреза по контактам, собственно контакты с двух сторон: DIN — входные данные, DO — выходные данные, +5V — плюс питания, GND — минус питания, C1 — керамический конденсатор, ну и собственно сам светодиод припаянный 4-мя контактами. Направление передачи данных указано черным треугольником.

Cами светодиоды WS2812B представляют собой сборку из микросхемы и 3-х светодиодов (красный, синий и зеленый), благодаря специальному протоколу, микросхема принимает данные только для своей сборки, остальные данные передает дальше по цепочке. Благодаря этому, каждой отдельной сборке можно передать информацию о яркости ее каждого светодиода (красного, синего и зеленого) и получить нужный цвет.

Подробно о свойствах отдельной сборки описано здесь. Я лишь отмечу, что максимально последовательно можно соединить 1024 микросхем, информация в которых может обновляться 30 раз в секунду.

Для ардуино разработана хорошая библиотека для данных сборок Adafruit_NeoPixel. Которая позволяет раскрашивать каждую сборку в свой цвет. Также у Adafruit есть библиотека для экранов из данных сборок и неплохие примеры использования.

Мы уже видели на этом сайте замечательные результаты творчества с применением WS2812B: аналог Ambilight/Aurea, снежинка.

Мне захотелось сделать управляемую ленту в окошко с применением данной ленты. Клеить ленту будем в оконный проем, поэтому потребуется 2 метра ленты. Собрав прототип простой гирлянды и загрузив пример, идущий в комплекте с библиотекой Adafruit_NeoPixel: strandtest, я убедился что принципиально все работает. Фактически в библиотеке задается один пин контроллера который подключается ко входу Din первой сборки.
Схема:

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

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

Первым делом я решил подключить ик приемник и управлять с пульта. Собрал схему помигал светодиодом и подключил ленту… Реакции не было… Точнее я подключив консоль получал случайного вида коды кнопок, нажав 10 раз на одну кнопку и увидев только разные коды, я задумался. Первая мысль была помеха по питанию, ведь кроме включения ленты ничего не менялось. Прочитал на adafruit.com о рекомендации впаять на вход ленты электролит напряжением 6.3 Вольта и емкостью не меньше 1000 мкФ, конечно же сразу это сделал, результат нулевой… Начал копать код библиотеки Adafruit_NeoPixel и обнаружил, что при передаче данных на светодиоды библиотека полностью блокирует прерывания. Отключение блокировки привело к тому что лента вела себя очень странно, прерывания происходили на любой мусор попавший на вход ик приемника…

Расстроившись в неудаче при такой простой схеме, начал думать про второй контроллер, отвечающий за прием ик сигналов и управляющий основным… Если кому то хочется сделать ик-управляемую ленту на WS2812B, то это единственный разумный вариант. Конечно есть еще и экзотические, например, вводить промежутки времени когда гирлянда не меняет свое состояние и принимать в них ик-сигналы — но это уже совсем рогатый метод…

В итоге принято решение использовать bluetooth и с телефона управлять гирляндой, благо несколько штучек модулей HC-06 у меня лежали без дела. Для индикации текущего режима работы гирлянды решил использовать дисплей на TM1637, обзор которого присутствует здесь. Итоговая схема:

Основная проблема, которая возникла с кодом, это то что при сменах состояния используется delay(), который не дает возможность вмешаться в процесс кроме как прерываниями, но… прерывания то у нас отключены… Принято решение переписать эффекты используя хранение информации о текущем состоянии гирлянды и смены его по таймингу. Для этого циклы преобразованы в переходы на следующее состояние, и добавлены признаки смены режимов. Пришлось задуматься стоит ли выкладывать кривой экспериментальный код, но желание облегчить кому-то его творческий процесс пересилило — вот код (там абсолютно экспериментальный код, использование на свой страх и риск).

Теперь про управление, конечно написать свое красивое приложение заманчивая идея, но времени на это не было и я воспользовался приложением для android — BluetoothSPP, в режиме кнопок настроил нужные коды и стало все хорошо. Есть возможность подписать каждой кнопке посылаемый код и обозначение. Большего мне и не было нужно. Все эффекты пронумеровал получилось 10 различных, 10 кнопок задействованы под эффекты, и 1 кнопка на то чтобы включить последовательную смену эффектов.

Bluetooth модуль конфигуририровал с помощью программки btinit.exe, очень удобно, можно изменить название устройства при поиске и скорость:

HC-06 следует подключить к компьютеру с помощью стандартного USB-TTL ковертора.

Подключив к лабораторному блоку питания, выяснил, что моя лента (2 метра) потребляет в пике, когда все включено 2.1 А при напряжении 5В. Поставил блок питания на 3А, купленный в офлайне:

неделя непрерывной работы, проблем не выявила.

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

Делаем печатную плату в программе Sprint Layout, ИК приемник, я все таки оставил, так как возможно иное применение коробочки, либо как-то удастся разрешить проблему с ним:

Процесс изготовления методом ЛУТ я описывал ранее в обзоре шарового крана.
Вот так выглядела плата с нанесением тонера:

Травление:

Собираем устройство:

Для подключения гирлянды я использовал разъем для наушников, по нему же подается питание на устройство. Провод для подключения блока питания к ленте я использовал ПВС 2×0.5, а для подключения устройства к ленте телефонный кабель 4 жилы, землю сделал из 2-х жил.
Итоговое устройство:



Ну и его эффекты:





Конечно лучше всего смотреть гирлянду на видео:

Лентой и полученным результатом все довольны, работает больше недели непрерывно.

UPD: добавил файл платы для Sprint Layout

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

Новогодний хищник рад гирлянде


mysku.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *