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

Обновлено: 15.09.2024

Мастер предлагает вам собрать своими руками 3D елочку на светодиодах из радиоконструктора набора деталей и плат. Такая елочка украсит ваш стол, подоконник или интерьер. При соответствующей фантазии елочка может стать украшением головного убора или одежды , например, на карнавал или гуляния на Новый Год. Приведена схема и подробная инструкция для сборки радиоконструктора своими руками. Как всегда инструкция сопровождается видео и подробными фото.

3D елка со звездой

1. Состав набора радиоконструктора

количество Обозначение и маркировка детали на схеме
6×10К резистор R1, R3, R5 на обеих платах
6×330 Ом — 3K резистор R2 (2К), R4 (1К), R6 (330) на обеих платах
1×2K резистор R7 (только на одной плате)
6×47мкФ конденсатор C1, C2, C3 на обеих платах
6×9014 транзистор Q1, Q2, Q3 на обеих платах
13×Красные светодиоды D1-D6 на обеих платах и D19 (только на одной плате с R7)
12×Желтые светодиоды D7-D12 (на обеих платах)
12× Зеленые светодиодыD13-D18 на обеих платах
3×Печатные платы
4×Контейнер батарей с крепежом, гнездо питания, выключатель и USB кабель питания
Электронная елка. Состав набора

2. Схема 3D елки и теория ее работы

Схема 3D елки

Подобная схема уже собиралась на сайте Секрет Мастера. Применительно к конструкции 3D елки, это практически две одинаковые схемы размещенных на двух печатных платах. Транзистор схемы Q и цепочка резистор 10К — конденсатор 47uF образуют RC-генератор. В схеме три RC генератора соединенных в петлю. Такое соединение позволяет упорядочить работу схемы и обеспечить периодическое открывание каждого транзистора петли. Открытый транзистор пропускает ток, что позволяет включить 6 светодиодов через токоограничивающий резистор в цепи коллектора транзистора. Подача тока на светодиоды заставляет их светится. Изменением номинала резистора 10К можно регулировать скорость мигания светодиодов. Один светодиод D19 подключен сразу к источнику питания через токоограничивающий резистор R7. Сборка платы осуществляется в несколько этапов. Пайку лучше начать с установки резисторов.

3. Припаивание резисторов

Цветовой код резисторов

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

Наборы 3D елок комплектуются парами резисторов R2, R4, R6 с номиналами сопротивления отличающимися от 1К. В любом случае резистор самого низкого сопротивления устанавливается в цепь питания зеленых светодиодов D1-D6, а резистор самого большого сопротивления в цепь красных светодиодов D7-D12. Установка резистора низкого сопротивления в цепь питания зеленых светодиодов позволит им светиться чуть-чуть ярче. Зеленые светодиоды обычно менее яркие относительно светодиодов другого цвета свечения.

Установка резисторов в плату 3D елки
Установка резисторов в плату 3D электронной елки

Резисторы припаяны на плату электронной елки

Далее припаиваем транзисторы.

4. Установка транзисторов

Установка транзисторов на плату электронной елки
Пайка транзистора на плате электронной елки

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

5. Пайка конденсаторов

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

6. Припаивание светодиодов

Положительный электрод светодиода длиннее
Положительный электрод имеет меньшую площадь
Установка светодиода в плате электронной елки
Красные светодиоды припаяны
Желтые светодиоды 3D елки припаяны
Плата 3D елки собрана

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

Обратите внимание на положение светодиодов относительно платы. Диод D19 пока не устанавливаем. После установки светодиодов настает время проверки правильности монтажа.

7. Проверка работы спаянных плат

Электронная елка

8. Пайка базовой платы

Электронная елка. Только при такой установке выключатель будет работать

Правильное положение выключателя на плпте

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

9. Окончательная сборка

Электронная елка. Электронная елка. Ключ сборки плат

Электронная елка. Ключ сборки плат

Электронная елка. Соединение плат вместе

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

Припаиваем, соблюдая полярность, светодиод D19 на макушке елки

Припаиваем, соблюдая полярность, светодиод D19 на макушке елки.

На макушку соблюдая полярность припаиваем светодиод D19.

Электронная елка. Соединение трех плат вместе

3D светодиодная елка может питаться от батарейного блока или USB источника питания. Когда штекер USB питания вставлен, батареи внутренним контактом гнезда отключается, поэтому батареи можно не вынимать при питании от USB.



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

Пролог


Идея, хоть, и была навеселе, но предложила мне следующий простой концепт: объединить несколько светодиодов в виде матрицы и на каркасе из одножильного провода типа 24 AWG соорудить что-то немного напоминающее елку.
Светодиоды соединены в четыре группы. Каждая группа состоит из трех светодиодов с общим катодом анодом катодом анодом (никак не могу запомнить кто из них кто).
Схема примерно такая (резисторы добавить по вкусу):

Ряды идут на цифровые выходы Arduino, группы я подсоединил на аналоговые выходы (по идее можно их тоже на цифровые, но у меня не было подходящих токоограничительных резисторов и я решил просто ограничивать яркость ШИМом на скорую руку).
То есть, когда у ряда на выходе 0, то можно управлять светодиодами в группе. Когда у ряда 1, то светодиоды терпеливо молчат и ждут своей очереди.

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

Нам понадобится

  • Желание и время заниматься этой ерундой
  • Горстка светодиодов (я использовал 5 мм светодиоды разных цветов — 3 красных, 3 желтых, 3 синих и 3 зеленых)
  • Arduino или любую другую подходящую плату с микроконтроллером (я использовать Arduino Fio так как ее удобно запитать от Lipo аккумулятора)
  • Одножильный провод для каркаса
  • Инструменты для пайки

Сборка


Для начала светодиоды я решил обработать наждачкой, так как хотелось что бы они немного рассеивали свет:

Фотик старый, руки дрожат, горизонт завален — к сожалению, это отразилось на всех фотках. Но надеюсь, что процесс передать получилось.


Саму сборку я начал с формирования и пайки отдельных рядов.
Нижний ряд имеет сторону примерно 60мм, средний ряд примерно 50мм, а верхний получился примерно 30мм.
Так выглядят отдельно собранные три ряда:


Дальше уже проще. Вот тут уже напаяна вторая цепочка светодиодов (фотка с дальним родственником):

Таким образом напаиваем остальные светодиодные цепочки на каркас.

Проверка и код


Проверял я на Arduino Mega2560, так как это единственная Arduino плата, которая согласилась на сей опасный эксперимент (все остальные куда-то попрятались когда узнали что я решил замутить):

Результат


После отладки и проверки я перенес все это безобразие на Arduino Fio с Lipo аккумулятором дабы придать некую законченность и мобильность конструкции:

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

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


WS2812B - трехцветный светодиод с интегрированным драйвером и схемой, реализующей протокол управления. Имеет 4 вывода, как и "обычный" RGB-диод, однако их назначение отличается: два вывода отведены под питание схемы, один вывод под вход данных, и один - под выход (диоды можно соединять последовательно). Нет необходимости придумывать сложные алгоритмы для регулировки яркости и цвета каждого диода - разработчику достаточно передать в цепочку диодов последовательность байт и выдержать необходимые временные интервалы - после чего цепочка будет гореть заданным цветом либо до подачи другой последовательности, либо до отключения питания. При этом расходуется всего один вывод МК или ПЛИС!

В даташите на диоды (прикреплен в конце статьи) подробно расписаны все характеристики, здесь же приведу наиболее важные параметры:

  • размер одного диода 5х5 мм, корпус - для поверхностного монтажа;
  • напряжение питания - 3,5. 5,3В;
  • максимальное количество диодов в одной цепочке - 1024, при частоте обновления 30 кадров в секунду. Стоит заметить, что подключить такое число диодов возможно при идеальном следовании таймингам протокола, что бывает проблематично;
  • светодиоды реализуют RGB-модель: каждый цвет кодируется одним байтом - теоретически возможно получить более 16 млн цветов. Однако на глаз разница между даже не столь близкими цветами незаметна.

Схема подключения диодов выглядит следующим образом:


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

  1. Передать 8 бит G7..G0 для установки зеленого цвета первого диода;
  2. Передать биты R7..R0 для установки красного цвета;
  3. Передать биты B7..B0 для установки синего цвета;
  4. Повторить пункты 1-3 для второго, третьего и др. диодов. То есть, после инициализации первого диода, данные начинают проходить через него на следующий диод;
  5. Установить на входе логический "0" как минимум на 50 мкс, после чего все инициализированные диоды примут заданный цвет.

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


Далее я подробно прокомментирую программу, которая инициализирует диоды, отвечает за управление и смену эффектов. Программа написана на языке ассемблера, проект в среде ATmelStudio 6.2 прикреплен в конце статьи. Будет рассмотрена только логика загрузки и переключения эффектов; очевидные вещи, вроде инициализации стека и настройки прерываний и портов, опущены. Также подразумевается, что цепочка диодов подключена к порту PD7 контроллера, рабочая частота - 8 МГц.

Идея программы заключается в следующем. Имеется некий набор эффектов, которые поочередно требуется выводит на светодиоды. Эффект характеризуется:

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

Перед объяснением логики работы следует пояснить, для чего нужны следующие регистры и константы:

Учитывая приведенные выше характеристики эффекта, он выглядит примерно следующим образом:

В первой строке находятся 4 байта характеристик:

  • два байта настройки прерывания таймера, определяющие частоты смены кадров. В данном случае частота - 15 кадров/сек;
  • байт длительности эффекта (в кадрах). Данный эффект продлится 16 секунд;
  • байт "умности" эффекта. Так как данный эффект (перелив) проще запрограммировать, байт равен единице.

Далее в массиве следуют:

  • 51 байт цветовых характеристик каждого диода (в случае покадрового описания их было бы на порядок больше);
  • маркер конца массива.

Под хранение буфера и некоторых констант в ОЗУ выделено следующее количество места:

Хочется подробнее пояснить "программируемость" эффектов. Дело в том, что в массиве должны быть перечислены интенсивности каждого цвета (от 0 до 16). В свою очередь, данные значения умножаются на значения следующий регистров (заодно приведены константы-помощники в реализации перелива):

Произведение констант из массива и соответствующих регистров формируют таблицу цветов (ColorsTable) для каждого из диодов. В случае, если эффект программируется, значения регистров R,G,B можно динамически менять. Описание всех кадров такого эффекта нецелесообразно (требует слишком много памяти контроллера).

В случае, если эффект не программируемый, все кадры перечислены в массиве, а интенсивности вместо значений регистров умножаются на 15.

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

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

Откуда взялась волшебная константа 0х88? Нужная длительность низких и высоких уровней формируется путем выдерживания определенного значения на выходе порта. Команды lsl - nop - out выполняются за три такта, то есть за 375 нс, что укладывается в допустимую погрешность. Таким образом, передача нуля сводится к загрузке последовательности 1000, а единицы - 1100. То есть, в одном байте передаются два бита, а в двенадцати байтах - настройки одного диода (24 бита = 3 байта G,R,B), что сразу делает понятной данную строку:

.equ BUFFER_SIZE = LED_COUNT*12+1 ;размер буфера (будет пояснено позднее)

Именно поэтому в начале байт равен 0x88, функция ColorToBytes попросту выставляет единицы на позициях 6 и 2, если это необходимо, и загружает байт в выходной буфер.

В упомянутом выше прерывании таймера реализовано следующее:

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

Общий алгоритм работы представлен следующей блок-схемой:


Также в конце статьи прикреплен шаблон проекта, незначительная правка которого позволит очень быстро работать с WS2812B.

Осталось продемонстрировать готовое устройство на "умных" светодиодах - новогоднюю елку. Схема елки достаточно проста и приведена ниже:


Основной компонент схемы - микроконтроллер ATmega8A в TQFP-корпусе. Также я оставил две кнопки для будущей доработки елки. Остальные компоненты почти полностью представлены резисторами и конденсаторами типоразмера 0805. Питается елка от 5 Вольт через разъем micro-USB, что позволяет разместить елку где угодно при подключении к внешнему ЗУ типа PowerBank. Файл с ПП елки находится в архиве (плата двусторонняя).

Фото вырезанной на ЧПУ-станке платы (одна сторона):


Впервые в жизни попробовал вырезать плату из тонкого (0.3мм) текстолита, так как планировал закрепить елку на листе бумаги формата А3. Для больших плат механическая прочность такого текстолита низка; советую брать текстолит от 1 мм толщиной. На фото даже видно просвечивающие дорожки другой стороны!

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



Далее осталось закрепить (или не закреплять) елку на какой-либо поверхности либо опоре, задекорировать мишурой. В общем, здесь простор для творчества еще больше.

Небольшое видео работы (пример эффекта перелива):

В конце статьи прикреплен архив, где находятся:

  • исходный проект новогодней елки в AtmelStudio 6.2;
  • шаблон проекта в этой же среде;
  • файл печатной платы елки;
  • файл схемы елки;
  • прошивка елки;
  • FUSE-биты контроллера;
  • схема подключения диодов;
  • даташит на WS2812B.

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

Воскресенье вечер, до нового года осталось всего пару дней, и пора собрать себе эксклюзивную ёлку. Желание собрать такую елку появилось после того, как увидел картинку с другой светодиодной елкой. Как раз еще нашел схему пиликалки на МК PIC16F628 с исходниками. В исходниках более мение описано как что менять. Когда-то горел желанием записать звуки в микроконтроллер и теперь моя мечта сбылась. Но так как мне медведь на ухо наступил, я не смог сам составить мелодию, хоть и попытался. Ну ладно, начнем проект LED ёлки. После неудавшегося анализатора спектра (скорее всего плата кривая или сама схема т.к. много раз заливал прошивки и менял МК не заработал) у меня осталось много светодиодов, которые не знал куда приспособить.

много зелёных светодиодов

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

Все светодиоды спаяны параллельно

Все светодиоды спаяны параллельно.

светодиоды спаяны в виде ёлки

Принципиальная схема LED ёлки на МК

Принципиальная схема LED ёлки

Резисторы которые идут к светодиодам у меня все по 1к. Динамик обычный бумажный 4 Ом подключен через резистор в 100 Ом.

Согласно схеме припаиваем светодиоды к минусу

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



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






Далее у нас идет декодирования ноты. Здесь немного не понятен алгоритм по которому выставляется частота поэтому частоты присваивайте на глаз). Я не заметил никаких признаков закономерности и зависимости частоты от кода. Счет идет примерно следующим образом (тем кто знаком с двоичным кодом сложности не составит). Начинается с:

00000DDD (DDD-длительность, об этом говорилось выше)
00001DDD

Далее продолжим счет в двоичном коде (буду писать без DDD)

00010
00011
00100
00101
00110
00111
01000

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



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

ми-ми-ми,ми-ми-ми
ми-соль-до-ре-ми
фа-фа-фа, фа-ми-ми-ми
ми-ре-ре-ми-ре, соль

ми-ми-ми, ми-ми-ми
ми-соль-до-ре-ми
фа-фа-фа, фа-ми-ми-ми
соль соль фа ре до

до-фа-ми-ре-до
до-до-соль-фа-ми-ре
ре-соль-фа-ми-ля-ля-ля
си-ля-соль-си-до (верх)

Нашел таблицу с частотами и нотами:



Начал писать песенку в двоичном коде:

retlw B'00110001'
retlw B'00110001'

retlw B'00110001'
retlw B'00110001'
retlw B'00110001'

retlw B'00110001'
retlw B'01000001'
retlw B'00001001'
retlw B'00101001'
retlw B'00110001'

retlw B'00111001'
retlw B'00111001'
retlw B'00111001'

retlw B'00111001'
retlw B'00110001'
retlw B'00110001'
retlw B'00110001'

retlw B'00110001'
retlw B'00101001'
retlw B'00101001'
retlw B'00110001'
retlw B'00101001'
retlw B'01000001'

retlw B'00110001'
retlw B'00110001'
retlw B'00110001'

retlw B'00110001'
retlw B'00110001'
retlw B'00110001'

retlw B'00110001'
retlw B'01000001'
retlw B'00001001'
retlw B'00101001'
retlw B'00110001'

retlw B'00111001'
retlw B'00111001'
retlw B'00111001'

retlw B'00111001'
retlw B'00110001'
retlw B'00110001'
retlw B'00110001'
retlw B'00110001'

retlw B'01000001'
retlw B'01000001'
retlw B'00111001'
retlw B'00101001'
retlw B'00001001'

retlw B'00001001'
retlw B'00111001'
retlw B'00110001'
retlw B'00101001'
retlw B'00001001'

retlw B'00001001'
retlw B'00001001'
retlw B'01000001'
retlw B'00111001'
retlw B'00101001'

retlw B'00101001'
retlw B'01000001'
retlw B'00111001'
retlw B'00110001'
retlw B'01100001'
retlw B'01100001'
retlw B'01100001'
retlw B'01110001'
retlw B'01100001'
retlw B'01000001'
retlw B'01110001'
retlw B'00001001'

Задержки везде выставил одинаковые и короткие, в дальнейшем пытался их менять но ничего не вышло. Скорее всего, автор прошивки использовал какую-то программу для кодирования midi.

Вот что у меня получилось

Память микроконтроллера не велика, поэтому не стоит слишком длинные мелодии записывать. Лично я удалил одну мелодию, а на ее место поставил свою. Сохраняем, file>save as>сохранить (не меняя названия, но можно и сменить) > заменить (если не меняли имени файла). Пол-дела сделано, осталось откомпилировать в НЕХ. Для этого заходим в папку с установленной средой разработки ищем папку MPASM Suite, в этой папке запускаем MPASMWIN.exe.


Выбираем кнопкой Browse наш файл и жмем Assemble. Если все удачно – вылезет окошко:



В папке где лежал исходник появится несколько файлов с разными расширениями, но названием elka2. Находим елку с расширением НЕХ это и будет наша прошивка для МК, остается только залить ее. Теперь вроде бы все рассказал.

СВЕТОДИОДНАЯ ЁЛКА - как сделать

Видео работы LED ёлки

Самодельная СВЕТОДИОДНАЯ ЁЛКА

СВЕТОДИОДНАЯ ЁЛКА своими руками

Питание лучше помощнее взять, у меня зарядка от мобилы 5В 0,5А и ее явно не хватает, светодиоды еле светят. Удачи всем и счастливого Нового Года! )) [)еНиС.

Форум по обсуждению материала СВЕТОДИОДНАЯ ЁЛКА


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.


В каком направлении течет ток - от плюса к минусу или наоборот? Занимательная теория сути электричества.


Микрофоны MEMS - новое качество в записи звука. Подробное описание технологии.


Обзор ещё нескольких схем и готовых конструкций Gauss Gun с Алиэкспресс.

Читайте также: