Адресная светодиодная лента своими руками

В отличие от обычной светодиодной RGB-ленты, в которой все светодиоды одинаково реагируют на сигнал с RGB-контроллера, в адресной LED-ленте каждый светодиод получает индивидуальную команду управления. В результате пользователь может максимально точно подбирать оттенок для каждого светодиода, создавать световые эффекты и собирать матрицы с 16 млн цветов. В чём уникальность адресной светодиодной ленты и как научиться ею управлять? Об этом и пойдет речь в данной статье.

Технические характеристики

Адресная светодиодная лента состоит из RGB-светодиодов в SMD корпусе 5050 и микрочипов ШИМ-драйверов. В настоящее время наиболее популярными являются адресные LED-ленты с использованием чипов WS2811 и WS2812B. Модификация WS2811 представляет собой интегральную микросхему (ИМС) в корпусе DIP-8 (9,2х6,4 мм) или SOP-8 (5,1х4,0 мм). Данный 3-канальный драйвер имеет следующую конфигурацию выводов:

  • 1 – ШИМ-регулируемый выход (красный);
  • 2 – ШИМ-регулируемый выход (зелёный);
  • 3 – ШИМ-регулируемый выход (синий);
  • 4 – общий;
  • 5 – выход передачи данных;
  • 6 – вход передачи данных;
  • 7 – выбор режима работы;
  • 8 – питание +5В.

В адресной ленте с использованием чипа WS2811 и питанием 5 вольт микросхема драйвера располагается в непосредственной близости перед каждым RGB-светодиодом SMD 5050, рядом с которым также установлены токоограничивающие резисторы и конденсатор, защищающий от помех. Но на сегодняшний момент такие модели устарели и встречаются крайне редко. Сегодня в продаже имеются адресные светодиодные ленты на чипах WS2811 только с питанием от +12 В. В этом случае чип WS2811 управляет не одним светодиодом, а группой из 3 штук. Не успела ИМС WS2811 обрести популярность, как её место заняла более совершенная WS2812B. Данный тип ШИМ-драйвера намного компактнее и размещается непосредственно в корпусе светодиода SMD 5050. Если присмотреться, то под прозрачным люминофором можно увидеть миниатюрный чёрный прямоугольник с отходящими позолоченными проводниками. Подобная унификация позволила значительно упростить сборку адресных светодиодных лент и модулей, а сам WS2812B имеет лишь 4 вывода:

  • 1 – питание (+3,5… +5,3 В);
  • 2 – выход передачи данных;
  • 3 – общий;
  • 4 – вход передачи данных.

ИМС драйвера потребляет не более 1 мкА, а максимальный ток одного адресного светодиода составляет 60 мА. Диапазон рабочих температур: от -25 до +80°C.

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

Сфера применения

Относительно высокая стоимость светодиодов и лент, собранных на чипах WS2811 и WS2812B, ограничивает их область применения в сравнении с обычными LED-лентами. Главным образом их используют для решения таких задач, с которыми обычной светодиодной ленте не справиться:

  • для сборки полноцветных модулей;
  • в конструировании светильников, управляемых по принципу «soft lights»;
  • в качестве декоративной подсветки чего-либо;
  • в построении LED-видео экранов, используемых в уличной рекламе и шоу-бизнесе.

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

Как это работает?

Адресная лента WS2812B поделена на сегменты, в каждом из которых расположен светодиод и конденсатор (для повышения помехоустойчивости). Относительно напряжения питания все они между собой подключены параллельно, то есть +5 В будет присутствовать на каждом сегменте. А вот передача данных осуществляется последовательно: от предыдущего сегмента к последующему. Поэтому при выходе из строя одного из светодиодов цепи все следующие сегменты перестанут светиться.

Управление готовыми устройствами и модулями на базе WS2812B производится с помощью специализированного контроллера, внутри которого записана программа. На радиолюбительском уровне управлять работой адресной светодиодной ленты удобней всего через Arduino, используя для этого небольшую программу – скетч.

Схема подключения к Arduino

У каждой адресной ленты есть начало и конец, которые нельзя менять местами во время сборки схемы. Чтобы не запутаться, производители используют условные обозначения, например, стрелки, указывающие направление сигнала. Подключение адресной светодиодной ленты WS2812B к Arduino производится по трём проводам, как показано на рисунке. Контакты питания +5V и GND соединяют с соответствующими выводами на плате Arduino. Если подсоединяемый отрезок насчитывает более 13-ти светодиодов, то необходимо использовать выносной блок питания. При этом общий провод (GND) Arduino и «минус» блока питания должны быть соединены между собой. Контакт DIN (digital input) предназначен для приёма данных от контроллера и электрически соединяется с любым из его цифровых портов. С другой стороны адресной ленты (и каждого сегмента тоже) размещено 3 контакта: +5V, DO (digital output) и GND, к которым можно подключить ещё несколько отрезков разной длины.

Так как каждый элемент WS2812B фактически состоит из 3 светодиодов (синего, красного, зелёного), то для управления его свечением потребуется 3 байта (по одному на каждый цвет). В свою очередь, каждый байт может принимать значение от 0 до 255, в результате чего можно задать более 16,5 млн оттенков. Размер скетча будет равен количеству светодиодных сегментов, умноженному на 3. Передача данных происходит следующим образом:

  1. ШИМ-драйвер WS2812B первого сегмента забирает из посылки первые 3 байта, пропуская остальные данные на выход DO.
  2. Далее следует пауза длиною до 50 мкс, означающая, что второй по счёту драйвер должен принять следующие 3 байта. И так далее. Длительность паузы больше 50 мкс означает конец передачи и повторение цикла.

Для работы с адресными лентами и модулями проще всего использовать библиотеки FastLED и Adafruit NeoPixel. Внутри каждой библиотеки есть готовые скетчи, на основе которых несложно научиться самостоятельно создавать новые световые эффекты. Чтобы скетч заработал с первого раза, необходимо в заголовке правильно указать количество светодиодов в ленте (NUM_LEDS) и номер порта для передачи данных (PIN).

Где можно приобрести?

Адресную светодиодную лентe без труда можно найти в любом специализированном магазине. Из проверенного варианта, отличающегося не высокими ценниками и хорошим качеством продукта, можно посоветовать интернет-магазин www.giant4.ru. Также адресную LED-ленты можно приобрести и на всем известной площадки AliExpress.com.

Чтобы избежать проблем с некачественной продукцией, при покупке товара на AliExpress стоит внимательно изучать товар и отзывы покупателей.

В этом гайде расскажу вам о такой штуке как адресная светодиодная лента (лента из адресных светодиодов). Рассмотрим отличия от других типов светодиодных лент, особенности и тонкости подключения, а также управление при помощи Arduino

  • Black PCB / White PCB — цвет подложки ленты, чёрная / белая
  • 1m/5m — длина ленты в метрах
  • 30/60/74/96/100/144 — количество светодиодов на 1 метр ленты
  • IP30 лента без влагозащиты (как на видео)
  • IP65 лента покрыта силиконом
  • IP67 лента полностью в силиконовом коробе
Читайте так же:  Фото овощей и грибов

Лента

Кольца

Матрицы

Адресные ленты можно подключить к готовому контроллеру и переключать режимы пультом/со смартфона

Итак, данный гайд посвящен адресной светодиодной ленте, я решил сделать его познавательным и подробным, поэтому дойдя до пункта “типичные ошибки и неисправности” вы сможете диагностировать и успешно излечить косорукость сборки даже не читая вышеупомянутого пункта. Что такое адресная лента? Рассмотрим эволюцию светодиодных лент.

Обычная светодиодная лента представляет собой ленту с напаянными светодиодами и резисторами, на питание имеет два провода: плюс и минус. Напряжение бывает разное: 5 и 12 вольт постоянки и 220 переменки. Да, в розетку. Для 5 и 12 вольтовых лент нужно использовать блоки питания. Светит такая лента одним цветом, которой зависит от светодиодов.

RGB светодиодная лента. На этой ленте стоят ргб (читай эргэбэ – Рэд Грин Блю) светодиоды. Такой светодиод имеет уже 4 выхода, один общий +12 (анод), и три минуса (катода) на каждый цвет, т.е. внутри одного светодиода находится три светодиода разных цветов. Соответственно такие же выходы имеет и лента: 12, G, R, B. Подавая питание на общий 12 и любой из цветов, мы включаем этот цвет. Подадим на все три – получим белый, зелёный и красный дадут жёлтый, и так далее. Для таких лент существуют контроллеры с пультами, типичный контроллер представляет собой три полевых транзистора на каждый цвет и микроконтроллер, который управляет транзисторами, таким образом давая возможность включить любой цвет. И, как вы уже поняли, да, управлять такой лентой с ардуино очень просто. Берем три полевика, и ШИМим их analogWrit’ом, изи бризи.

Адресная светодиодная лента, вершина эволюции лент. Представляет собой ленту из адресных диодов, один такой светодиод состоит из RGB светодиода и контроллера. Да, внутри светодиода уже находится контроллер с тремя транзисторными выходами! Внутри каждого! Ну дают китайцы блэт! Благодаря такой начинке у нас есть возможность управлять цветом (то бишь яркостью r g b) любого светодиода в ленте и создавать потрясающие эффекты. Адресная лента может иметь 3-4 контакта для подключения, два из них всегда питание (5V и GND например), и остальные (один или два) – логические, для управления.

Лента “умная” и управляется по специальному цифровому протоколу. Это означает, что если просто воткнуть в ленту питание не произойдет ровным счётом ничего, то есть проверить ленту без управляющего контроллера нельзя. Если вы потрогаете цифровой вход ленты, то скорее всего несколько светодиодов загорятся случайными цветами, потому что вы вносите случайные помехи, которые воспринимаются контроллерами диодов как команды. Для управления лентой используются готовые контроллеры, но гораздо интереснее рулить лентой вручную, используя, например, платформу ардуино, для чего ленту нужно правильно подключить. И вот тут есть несколько критических моментов:

1) Команды в ленте передаются от диода к диоду, паровозиком. У ленты есть начало и конец, направление движение команд на некоторых моделях указано стрелочками. Для примера рассмотрим ws2812b, у нее три контакта. Два на питание, а вот третий в начале ленты называется DI (digital input), а в конце – DO (digital output). Лента принимает команды в контакт DI! Контакт DO нужен для подключения дополнительных кусков ленты или соединения матриц.

2) Цифровой вход ленты идёт напрямую на «сырой» вход микроконтроллера внутри диода, поэтому между ним и управляющим пином ардуино нужен токоограничиваюший резистор с номиналом 200-500 ом. Без него есть большой шанс выгорания пина Ардуино или первого светодиода в ленте. Не испытывайте удачу, поставьте резистор. Точность резистора? Любая. Мощность резистора? Любая. Да, даже 1/4.

2.1) Если между лентой и контроллером (Arduino) большое расстояние, т.е. длинные провода (длиннее 10-15 см), то сигнальный провод и землю нужно скрутить в косичку для защиты от наводок, так как протокол связи у ленты достаточно скоростной (800 кГц), на него сильно влияют внешние наводки, экранирование земляной скруткой поможет этого избежать. Без этого может наблюдаться такая картина: лента не работает до тех пор, пока не коснёшься рукой сигнального провода.

3) Самый важный пункт, который почему то все игнорят: цифровой сигнал ходит по двум проводам, поэтому для его передачи одного провода от ардуины мало. Какой второй? Земля GND. Как? Контакт ленты GND и пин ардуино GND (любой из имеющихся) должны быть соединены. Смотрим два примера

4) Питание. Один цвет одного светодиода при максимальной яркости кушает 20 миллиампер. В одном светодиоде три цвета, итого 60 мА на диод. Пусть у вас есть метр ленты с плотностью 60 диод/метр, тогда 60*60 = 3.6 Ампера при максимальной яркости (белый цвет), соответственно нужно брать БП, который с этим справится, но заранее подумать, в каком режиме будет работать лента. Если это режимы типа «радуга», то мощность можно принять как половину от максимальной.

5) Продолжая тему питания, хочу отметить важность качества пайки силовых точек (подключение провода к ленте, подключение этого же провода к БП), а также толщину проводов. Как показывает мой опыт, брать нужно провод сечением минимум 1.5 квадрата, если нужна полная яркость. Пример: на проводе 0.75 кв.мм. на длине 1.5 метра при токе 2 Ампера падает 0.8 вольта, что критично для 5 вольт питания. Первый признак просадки напряжения: заданный программно белый цвет светит не белым, а отдаёт в жёлтый/красный. Чем краснее, тем сильнее просело напряжение!

6) Мигающая лента создаёт помехи на линию питания, а если лента и контроллер питаются от одного источника – помехи идут на микроконтроллер и могут стать причиной нестабильной работы, глюков и даже перезагрузки (если БП слабый). Для сглаживания таких помех рекомендуется ставить электролитический конденсатор 6.3В ёмкостью 470 мкФ (ставить более ёмкий нет смысла) по питанию микроконтроллера, а также более “жирный” конденсатор (1000 или 2200 мкФ) на питание ленты. Ставить их необязательно, но очень желательно. Если вы заметите зависания и глюки в работе системы (Ардуино + лента + другое железо), то причиной в 50% является как раз питание.

7) Слой меди на ленте не очень толстый, поэтому от точки подключения питания вдоль ленты напряжение начинает падать, чем больше яркость, тем больше просадка. Если нужно сделать большой и яркий кусок ленты, то питание нужно дублировать медным проводом 1.5 (или больше, надо экспериментировать) квадрата через каждый метр.

КАК ДЕЛАТЬ НЕЛЬЗЯ

Как мы уже поняли, для питания ленты нужен источник 5 Вольт с достаточным запасом по току, а именно: один цвет одного качественного светодиода на максимальной яркости потребляет 0.02 А (20 мА), соответственно весь светодиод – 0.06 А (60 мА) на максимальной яркости. У китайцев есть “китайские” ленты, которые потребляют меньше и светят тускло. Я всегда закупаюсь в магазине BTF lighting (ссылки в начале статьи), у них ленты качественные. Я понимаю, что порой очень хочется запитать ленту напрямую от Ардуино через USB, либо используя бортовой стабилизатор платы. Так делать нельзя. В первом случае есть риск выгорания защитного диода на плате Arduino (в худшем случае – выгорания USB порта), во втором – синий дым пойдёт из стабилизатора на плате. Если всё-таки очень хочется, есть два варианта:

Читайте так же:  Образ жизни майского жука

    Не подключать больше количества светодиодов, при котором ток потребления будет выше 500 мА, а именно 500/60

8 штук

  • Писать код на основе библиотеки FastLED, где можно ограничить ток специальной функцией. НО! В случае отключения пина Din от источника сигнала есть риск случайного включения ленты, и никакие софтварные ограничения не спасут от выгорания железа
  • Вы наверное спросите: а как тогда прошивать проект с лентой? Ведь судя по первой картинке так подключать нельзя! Оч просто: если прошивка не включает ленту сразу после запуска – прошивайте. Если включает и есть риск перегрузки по току – подключаем внешнее питание на 5V и GND.

    ОТ ЧЕГО ПИТАТЬ ЛЕНТУ?

    Самый простой и понятный вариант – мощный блок питания на 5 Вольт. Если рядом есть источник постоянки 12 Вольт – можно взять понижайку и настроить её на 5 Вольт. Но часто возникает желание сделать “беспроводной” девайс с бортовым источником питания. Как быть в этом случае? Согласно даташиту на WS2812b светодиод будет работать от напряжения 3.5-5.5 Вольт, собственно как и сама Arduino. Помним, что при питании ленты от напряжения ниже 5 Вольт будет уменьшаться максимальная яркость. Отсюда имеем следующие варианты:

    • Powerbank 5V – берём провод с USB штекером и подключаем по схемам выше. Через Ардуино не питаем, нельзя. Ёмкость паурбанков очень высокая, сами знаете. По току обычно можно снять 2 Ампера, есть паурбанки на 3 А
    • Батарейки – можно взять обычные АА батарейки, 3 штуки полностью заряженных (дадут 4,5 Вольт), либо 4 штуки чуть разряженных (дадут 5.5 Вольт). Ёмкость батареек очень небольшая. По току можно снять 1-2 Ампера (алкалин, литий. Солевые сразу в помойку)
    • Никелевые аккумуляторы – имеют напряжение

    1.4В после зарядки, можно смело поставить 4 штуки (

    5.5 Вольт). Ёмкость сборки весьма достойная (до 2700 ма*ч), по току можно снять 2-3 Ампера

  • Литиевые аккумуляторы – напряжение в процессе разряда меняется с 4.2 до 3.0 Вольт, значит ленту можно питать, но светить будет на 10-30% менее ярко. Также нельзя забывать следить за напряжением, литий боится переразряда. Ёмкость – параллельно можно поставить много банок, по току – с обычных банок можно снять 3 Ампера (если стоят в параллель – то с каждой)
  • Литиевый акум + повышайка – отличный способ сохранить полную яркость при небольшом количестве светодиодов, у китайцев есть куча повышаек с лития (3-4.2В) до 5 Вольт с максимальным током до 2 Ампер. Считай тот же powerbank, но можно более компактно разместить
  • ПОЧЕМУ НЕ РАБОТАЕТ?!

    Убедись, что земля ленты соединена с землёй ардуино КАК НА СХЕМЕ

    Убедись, что сигнальный провод идёт в начало ленты (контакт DI) КАК НА СХЕМЕ

    Убедись, что не перепутал 5в и GND. КАК НА СХЕМЕ

    Цвет отдаёт в красный? У тебя слабый БП, некачественная пайка линии питания или слишком тонкие провода питания

    Подключил без резистора и теперь не работает даже с резистором? Пин ардуино отбросил ласты, подключай в другой

    WS2811 и WS2812b

    Сейчас популярны два вида ленты: на чипах WS2812b и WS2811. В чём же разница? Чип WS2812 размещён внутри светодиода, таким образом один чип управляет цветом одного диода, а питание ленты – 5 Вольт. Чип WS2811 размещён отдельно, и от него питаются сразу 3 светодиода, таком образом можно управлять цветом сегментов по 3 диода в каждом. А вот питание у ленты на WS2811 составляет 12 вольт!

    Подключение ленты WS2811

    Если вы вдруг купили ленту на чипах WS2811 (12-вольтовую версию), подключить её можно вот по этим двум схемам. Но следует помнить, что в прошивке нужно указать втрое меньшее количество светодиодов, так как каждый чип на этой ленте управляет тремя диодами, задаёт им один и тот же цвет!

    УПРАВЛЕНИЕ С ARDUINO

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

    Полгода назад мы дополнили наш почти традиционный офисный каток 7,6 тыс. светодиодами, чтобы транслировать изображения и видео прямо на поверхность льда. На гиктаймсе был опубликован пост, в котором рассказывалось о том, что подо льдом скрывается самый настоящий гигантский дисплей разрешением 120х63 «пикселей», на который можно выводить достаточно сложные и яркие изображения.

    Часто нам задавали вопрос: можно ли своими руками сделать нечто подобное дома? Можно, почему нет? Про лед был подробный рассказ (вот история о первом катке — захватывающее чтиво в июльскую жару), а вот о способах превращения светодиодов в большой дисплей практически не упоминали. Так как наши мейкеры люди занятые и предпочитают говорить о чем-то новом, а не пережевывать прошлое, публикация этой статьи откладывалась снова и снова. В конечном счете мы решили перевести для вас понятный и наглядный туториал, после которого можно будет взять и повесить дисплей себе на стену.

    Итак, выдохните, все будет просто. Бóльшая часть времени уйдет на сборку — придется немного покорпеть над соединением лент друг с другом. Они должны быть спаяны в последовательную цепь на задней стороне панели. Для рассеивания света защитное стекло будет матированным.

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

    • 10 м светодиодной ленты (продается в катушках по 5 м). Я использовал дешевый вариант — WS2812B. Если же вам хочется получить более высокое разрешение дисплея, можете приобрести ленту с плотностью 60 светодиодов/метр;
    • блок питания на 5 В и 10 А. Я использовал модель, у которой входное питание до 240 В подается на винтовые зажимы. Если вам нужно сделать дисплей более безопасным, выберите полностью закрытый блок питания;
    • Arduino UNO;
    • большое количество отрезков толстого провода. Я отрезал пучок от старого компьютерного блока питания;
    • фоторамка 50х50 см;
    • матирующий спрей и белая краска.

    Общие затраты у меня получились меньше $100.

    Также вам понадобятся инструменты:

    • паяльник с припоем;
    • клеевой пистолет;
    • нож или ножницы;
    • инструмент для снятия изоляции.

    Сначала прочитайте пособие по работе с электроникой для начинающих!

    Если вы приобрели рамку 50х50 см и такие же светодиодные ленты, как у меня, то сможете уместить в дисплей 15 отрезков по 15 светодиодов. Но ничто не мешает использовать рамку другого размера. Расстояние между светодиодами — около 30 мм, таким образом на один пиксель приходится примерно 30 мм 2 . Это наш 1DPI. Ну да, разрешение не как у Retina.

    Читайте так же:  Изменение в законодательстве земельном участке

    Рассчитайте, сколько отрезков ленты вам понадобится, и расчертите направляющие с обратной стороны панели. Семь раз проверьте, один раз отрежьте: у меня ленты немного различаются, потому что когда я начал их приклеивать, то обнаружил, что могу вместить только 14 отрезков по 15 светодиодов. Но это не страшно — в приложении можно легко настроить разное количество рядов пикселей и их длину. Отрежьте куски, подходящие для вашей рамки. К сожалению, я обнаружил, что у меня 15-е светодиоды в отрезках приходятся как раз на то место, где нужно припаивать соединительные провода. Поэтому пришлось их выпаивать.

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

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

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

    Помните, что сигнал будет проходить через всю цепь, и у каждой ленты есть направление передачи сигнала. Ленты нужно размещать так: у одной стрелка (направление сигнала) указывает направо, у следующей — налево, потом опять направо и т.д. То есть сигнал по дисплею будет идти «змейкой». Проверьте еще раз правильность размещения лент, прежде чем клеить их!

    Для соединения лент требуется по три провода разной длины. Внутреннюю пару контактов соединяем самым коротким проводом (на фото — красный), для средней пары берем провод подлиннее, а к внешним контактам припаиваем самый длинный. В зависимости от того, какие ленты в данный момент соединяются, внутренние контакты будут либо питанием (+5V), либо заземлением (GND).

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

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

    Шестой пин Arduino используется для передачи управляющего сигнала; напряжение питания должно подаваться напрямую от блока питания. Подключите заземление между лентами, Arduino и блоком питания. Не пытайтесь запитать ленты от Arduino, а также не подключайте блок питания к Arduino при подключенном USB (когда будет загружаться код для тестирования).

    Скачайте и добавьте в соответствующую папку библиотеку AdafruitNeoPixel, затем запустите Arduino. Протестируйте подключение с помощью следующего кода, указав в первом параметре количество светодиодов (в нашем примере — 60):

    Adafruit_NeoPixel strip =Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

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

    • неправильное направление ленты;
    • вы спутали контакты при соединении лент;
    • вы припаяли +5V к GND.

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

    Можете еще подумать над тем, возможно ли спрятать в рамке еще и блок питания с Arduino. А пока переходим к настройке ПО.

    Программа Glediator компании SolderLab.de очень хорошо подходит для анимирования светодиодных матриц на вечеринках или в ночных клубах. Она способна управлять матрицей, состоящей из 512 светодиодов WS2812/NeoPixels, формируя до 24 кадров/сек — этого вполне достаточно для нашего дисплея, можно даже выводить на него простенькие анимационные гифы. Микшер позволит делать плавные переходы между анимациями.

    Для работы с Glediator установите на Arduino UNO прошивку, и проверьте, чтобы сигнальный кабель был подключен к пину 6. Не забудьте прописать в переменной количество используемых вами светодиодов.

    Запустите Glediator, откройте свойства и измените размер матрицы и режим вывода. Настройте порядок пикселей, если у вас используется другая схема, но по этому шагу мало документации, поэтому придется действовать методом проб и ошибок. Если изображение на дисплее отличается от задуманного, попробуйте поиграть с настройками. У меня работал порядок пикселей HS_BL — подозреваю, что это означает «horizontalsnake, startingbottomleft» (горизонтальная змейка, начало слева внизу).

    Glediator — профессиональное приложение, не будем пока изучать его интерфейс и возможности. Загрузите в левое и правое окна разные анимации, затем двигайте микшер между ними. Или используйте готовый плейлист, который показан в видеоролике.

    Компания Adafruit создала очень полезную библиотеку для работы со светодиодными матрицами. Сначала она называлась Adafruit GFX, и изначально предназначалась для TFT- и LCD-дисплеев. Затем появилась модификация NeoMatrix, позволяющая полноценно работать с матрицами NeoPixel. Она имеет огромное количество простых в использовании функций по выводу текста или растровой спрайтовой графики.

    Если вы в точности повторили мой проект, то можете воспользоваться этим кодом. Самая важная часть:

    С первыми строками все понятно. В последних трех описывается схема матрицы: в данном случае первый пиксель находится слева внизу (bottomleft), пиксели расположены рядами (rows), соединенными зигзагообразно (zigzag). Если вы сделали иначе, то обратитесь к документации библиотеки.

    Я задал в коде несколько спрайтов — смайлы. Вы можете создать собственные с помощью Java-приложения Img2Code, лежащего в папке библиотеки GFX.

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

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

    avatar
      Подписаться  
    Сообщать о
    Adblock detector