В предыдущей статье я написал про светодиоды с пиксельной адресацией WS2812B.
Пора применить данные диоды на деле. Начну с обычной линейки из 10 светодиодов. Зачем?
Во первых, необходимо научиться работать со светодиодами WS2812.
Во вторых, данные линейки планирую использовать в своем проекте цифро/аналоговых часов с возможностями СДУ, о котором я напишу позже.
Ну и в третьих, такая линейка интересна, как элемент декоративной подсветки, иллюминации, рекламных конструкций, а также динамической подсветки дисплея, аналогичной Ambilight от Philips.
Для ленивых дам совет, можно ничего не паять, а купить светодиодную ленту на WS2812, например, у того же продавца на TAOBAO.COM, где я покупал светодиоды и нарезать ее необходимыми кусками.
Для тех, кому интересно все делать своими руками эта статья.
Для начала полезно посмотреть даташит на WS2812B.
У светодиода Ws2812B четыре контакта: +5В, -5В, вход сигнала и выход сигнала:
Схема подключения примитивно простая.
Плату я буду делать методом лазерно утюжной технологии (Давно пора ее освоить!) . Для начала, проектирую в программе Sprint Layout 6.0.
Здесь можно скачать фал для Spirit Layout 6.0 рисунка печатной платы линейки из 10 светодиодов WS2812B. Для ЛУТ печатать в зеркальном виде.
Описывать ЛУТ я не буду. В интернете о нем очень много написано.
Травлю плату в растворе перекиси водорода и лимонной кислоты. В 100 мл 3% раствора перекиси водорода растворяю 30г лимонной кислоты и чайную ложку поваренной соли. Раствор нетоксичный (по крайней мере до начала травления). Компоненты для травления легкодоступны и стоят копейки.
Скорость травления довольно быстрая. С чистых участков платы сразу начинают идти пузырьки воздуха. При травлении появляется неприятный запах и раствор набирает голубизну.
На 12 линеек 150×15 мм ушло 2 бутылочки перекиси.
С готовой платы тонер счищаю механическим способом пластиковым скребком
Лужу и паяю вручную
Теперь пора заставить работать светодиоды WS2812B
Для этого я использовал готовую библиотеку Adafruit Neo Pixel
Подключаю линейку к 6-пину ардуинки.
Заливаю скетч из примеров данной библиотеки, устанавливаю номер порта и количество светодиодов в линейке
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(10, PIN, NEO_GRB + NEO_KHZ800);
Наслаждаюсь работой демо-скетча:
Как и предполагалось, можно управлять цветом и яркостью каждого светодиода в линейке по одному проводу
http://www.youtube.com/watch?v=IW48-YZptDY
Теперь можно изготовить требуемое количество линеек
Весь техпроцесс под жестким контролем.
P.S. При изготовлении линеек мне удалось испортить несколько светодиодов. Нет, не перегревом. Когда паял, фиксировал диоды к плате тем что подвернулось под руку, а именно, маленьким зубастым «крокодильчиком». Так вот, осторожнее, светодиоды WS2812 очень легко повредить механически, так как кристаллы и проводочки там за тонкой прозрачной пленочкой.
Здравствуйте! Огромное спасибо за статью!
Есть вопрос — почему вы решили обойтись без конденсаторов между + и — рядом с каждым светодиодом? Какие последствия такого решения могут быть на линейках с числом 100-150 светодиодов?
Будем считать, что о сэкономил. )))
Последствия — помехи и ошибки в управлении светодиодами. У меня такого не наблюдалось
Спасибо!
Все сразу заработало, в отличие от других авторов поделок.
Я купил готовое «панно» из 4-х вложенных колец со светодиодами.
Внешнее кольцо — 24 светодиода, 8 см диаметр.
Очень красиво моргает.
Привет. Я начинающий в Ардуино. Подскажите, пожалуйста, как залить данный скетч в Mega2560. Готовая лента WS2812B имеется.
sketch_dec01a:15: error: ‘Adafruit_NeoPixel’ does not name a type такая вот ошибка
Видимо нужно установить Adafruit_NeoPixel в папку с библиотеками
Вожусь с этими светиками.
Пока юзал ленту — было норм, а вот как начал свое на платах разводить…
На плате — 4 светика. (Разводка на 18, но пока отлаживаю)
Запускаю, горит второй. Первый и 3-4 подмаргивали при подаче питания, после чего — молчат.
Адресуюсь конкретно на первый, меняю цвет.
Цвет меняется. На втором.
Адресуюсь на третий — тишина!
Матерюсь вторую неделю — сейчас еду за кондеями на тыщу микрофарад, которые в даташите советуют на питание повесить: уже просто версий нет!
С распиновкой светодиодов все правильно? Вход/выход не перепутали?
Когда паял, бывало, не работали плохие контакты.
Спасибо!!!
Не работает.
Каким образом можно физически запараллелить светодиоды? У меня есть задача. 30 светодиодов, первые 10 работают параллельно под одним, остальные 20 каждый под индивидуальным адресом. Возможно это сделать ?
Взять обычные 5050 светодиоды. Коммутировать их MOSFETами, подключенным к одному из WS2812
Годно. Нужно. пожалуй, часы тоже сделать, пикселей много лишних осталось.
Сам сейчас проект небольшой паяю.
Платки крохотные, 3*4 см и на нее 4 шт ws2812b крестом углами друг к другу, с отверстием посередине.
Причем односторонняя разводка…
Конденсаторы и резисторы ставить некуда)
На всякий случай оставил возможность один 3225 резистор на DIN впаять и один SMD 3225 конденсатор между Vcc и Vss.
На всякий случай в начале цепи питания 1000 мФ воткнуть надо бы и резистор на 330 кОм.
В цепочке 3 таких модуля, буду надеяться что не начнут моргать.
не отзеркалил плату, припаял диоды, включил…не загорелись диоды, я их спалил? или есть шанс что выжили?
Лучше один раз попробовать )))
Шанс что выжили есть. Сами по себе светодиоды вполне держат обратное напряжение
А вот с чипом сложнее угадать