Новогодняя звезда на микроконтроллере схема. Новогодняя светодиодная звезда на микроконтроллере. Изготовление светодиодной звезды

Светодиодная звезда, особенно когда она мерцает, создает романтичную атмосферу и представляет собой достойное праздничное украшение к любому торжеству. Исключительно хороши светодиодные звезды к Новому году и к Рождеству: они помогают создать волшебную, сказочную обстановку. Умея немного паять, можно своими руками изготовить вполне приличные светодиодные звезды.

Необходимые материалы (для одной звезды):

– светодиоды 5 мм (один можно мигающий) 5 штук;
– 9-вольтовый аккумулятор;
– резисторы 60 Ом 2 штуки;
– аккумуляторный разъем (точнее, коннекторы от него).

Необходимые инструменты:

– фанерный лист для шаблона примерно 0,5х0,5 м;
– маркер;
– транспортир;
– изолента;
– паяльник и припой;
– мультиметр (только желательно);
– плоскогубцы или щипцы.

Изготовление светодиодной звезды

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

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

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

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

Убедившись, что прибор работает, приспосабливаем к нему разъем для подключения аккумулятора 9 В. Разъем будет подсоединен к звезде через два резистора. Резисторы будут ограничивать ток через светодиоды, что продлит срок службы светодиодов и аккумулятора.

Берем разъем для 9-вольтового аккумулятора и острым ножом срезаем его корпус из мягкого пластика.

Отпаиваем провода от коннекторов.

К обоим коннекторам припаиваем резисторы.

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

Аккуратно устанавливаем разъем со звездой на аккумуляторную батарейку. На этом наша работа успешно завершается: светодиодная звезда полностью готова.

Электронная игрушка "Рождественская звезда" может быть использована для украшения посоха Деда Мороза или новогодней ёлки, например как наконечник. Игрушка разработана в качестве учебного пособия для сборки воспитанниками кружка радиоконструирования Житомирского городского центра научно-технического творчества учащейся молодёжи при изучении раздела программы "Генераторы электрических колебаний и устройства на их основе".


Схема показана на рис. 1 , игрушка является модернизированным вариантом устройства, опубликованного ранее (Хмара В. Миниатюрная ёлка с "бегущим огнём". - Радио, 2011, № 12, с. 48, 49).

На транзисторах VT1-VT3, конденсаторах С1 -СЗ и резисторах R1, R2, R5, R6, R8, R9 собран трёхфазный генератор прямоугольных импульсов. Частота их следования зависит от сопротивления резисторов R1, R5, R8, ёмкости конденсаторов С1-СЗ и при указанных на схеме номиналах приблизительно равна 2 Гц. На транзисторах VT4-VT6 собраны электронные ключи, которые подают питание на группы светодиодов (HL1- HL30), размещённых на печатной плате так, чтобы создать изображение шестиугольной звезды. Во время работы трёхфазного генератора на коллекторах транзисторов VT1- VT3 поочерёдно возникают прямоугольные импульсы, которые также поочерёдно открывают транзисторы VT4-VT6, поэтому будут включаться и гаснуть соответствующие светодиоды. Они размещены так, что создаётся эффект вращения звезды.

Все элементы, за исключением батареи питания и выключателя, смонтированы на односторонней печатной плате из фольгированного стеклотекстолита толщиной 1,5.-.2 мм. Чертёж платы и расположение на ней элементов показаны на рис. 2 . Применены резисторы МЛТ, С2-23, оксидные конденсаторы - импортные, С - керамический К10-17. Светодиоды - красного или зелёного цвета свечения с диаметром корпуса не более 7 мм, причём в разных группах или в одной они могут быть различного цвета (рис. 3 ). Перед монтажом на плату со стороны установки светодиодов можно разместить цветную клейкую непроводящую плёнку в виде звезды. Источник питания - батарея 6F22 ("Крона") или батарея из шести соединённых последовательно гальванических элементов типоразмера АА или ААА.

Налаживания устройство не требует, при исправных деталях и правильном монтаже оно начинает работать сразу. При желании скорость переключения светодиодов можно изменить подборкой конденсаторов С1, С2 и СЗ. Если трёхфазный генератор запускается неустойчиво, для надёжного запуска следует установить конденсатор С". Его ёмкость подбирают в пределах 0,022...0,1 мкФ.

В. ХМАРА, г. Житомир, Украина Журнал Радио, №12 2012г

Светодиодная звезда на елку с питанием от двух батареек АА





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

Для своего питания, проект использует две батарейки типа АА, поэтому необходимо использовать конвертер напряжения DC/DC, так как синие светодиоды имеют прямое падение напряжения чуть более 3V, а чип светодиодного драйвера около 0,6V. Две новые батарейки АА выдают напряжение чуть больше 3V, а перезаряжаемые аккумуляторные батареи, даже при полной зарядке не могут дать достаточного потенциала. Для ликвидации этой проблемы, используется преобразователь напряжения, который преобразует номинальные 3V от батареек в необходимые для работы 3,71V.

Микроконтроллер может работать от напряжения преобразователя DC / DC или непосредственно от батареек. Также, микроконтроллер может отключать преобразователь DC/DC во время спящего режима для экономии заряда аккумуляторов, в этом режиме преобразователь потребляет около 1 мкА. Сам микроконтроллер PIC16LF1703 надежно работает до 1,8V и является очень экономичным в потреблении электроэнергии, особенно в спящем режиме.

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

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

Выбор использования обычных светодиодов, обусловлен их небольшим размером по сравнению с SMD светодиодами. Светодиодный драйвер обеспечивает постоянный ток светодиодов 5мА.

Микроконтроллер выполняет 3 основные функции:

  1. Посылает команды SPI на драйвер для включения и отключения светодиодов.
  2. Контролирует напряжение батареек или аккумуляторов, если напряжение падает ниже допустимого, то он переводит преобразователь DC/DC в спящий режим.
  3. Обрабатывает сигналы от внешней кнопки.

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

На рисунке ниже представлена полная электрическая схема звезды:

На рисунке ниже представлена архитектурная схема работы программного обеспечения, и схема его динамического поведения:


Конструкция системы и принцип управления светодиодами











Светодиодный драйвер управляется 16-битными SPI пакетами, в одном таком пакете, каждый бит соответствует одному светодиоду. Когда определенный бит, равен единице, то соответствующий светодиод включается, когда он равен нулю, то светодиод выключается.

Чтобы создать последовательность, пакеты битов посылаются на светодиодный драйвер с заданной периодичностью. Базовый период равняется 62мс. Он может меняться в пределах от 81мс до 81*255мс.

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

При создании проекта были использованы следующие электронные компоненты:

  • Светодиодный драйвер TLC5925IDWR
  • Микроконтроллер PIC16LF1703-I/SL
  • Конвертер DC/DC MCP1640T-I/CHY
  • Отсек для батареек
  • Конденсатор 22 мкФ
  • Конденсатор 27 пкФ
  • Конденсатор 4.7 мкФ
  • Кнопка, монтируемая на PCB плату
  • Диодная сборка MBR0530T1G
  • Резистор 300 кОм
  • Резистор 620 кОм
  • Резистор 4.3 кОм
  • Светодиоды 8 мм, синие и красные
  • Светодиоды 10 мм, желтые и красные

Светящийся елочный шар на елку своими руками в виде Звезды Смерти из фильма «Звездные войны»

Чтобы сделать светильник ночник в виде Звезды Смерти из фильма «Звездные войны» вам понадобятся:

  • Пластиковый шар диаметром 100 мм
  • Дрель
  • Мелкозернистая наждачная бумага
  • Медицинский спирт
  • Эпоксидная шпатлевка
  • Кусочки глины или пластилина
  • Малярный скотч
  • Канцелярский нож
  • Аэрозольная краска
  • Светодиоды
  • Тонкий черный провод
  • Паяльник
  • Ненужная электронная схема, старый фонарик и светодиодная свеча

Шаг 1





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

Шаг 2





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

Шаг 3

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



Шаг 4




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

Шаг 5

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



Светящиеся новогодние украшение для елки


Это руководство предназначено для пошагового создания светодиодной звезды для новогодней елки, которая светится очень ярко и к тому же может менять свои цвета. В проекте был использован лист фанеры, адресуемые светодиодные ленты WS2812b и микроконтроллер Arduino.

Шаг 1: Инструменты и материалы

  • Лист фанеры приблизительно 30 x 30 x 0.6 см.
  • Светодиодная лента WS2812b с плотностью 60 светодиодов на метр. Понадобится отрезок длиной 67 см, который содержит 40 светодиодов.
  • Малогабаритный микроконтроллер Arduino на базе чипа ATmega328 или Attiny45 (Подойдет например Arduino Pro Mini 3.3 / 5V или Adafruit Gemma)
  • Наждачная бумага средней зернистости
  • Акриловый клей
  • Источник питания 3,3 / 5V или аккумуляторная батарея LiPo 3,7V или любой другой подходящий источник питания
  • Тонкий электрический провод

Шаг 2: Чертеж звезды



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

Шаг 3: Вырезание звезды


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

Шаг 4: Подготовка светодиодов




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

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

Внимание: Перед наклеиванием полоски, убедитесь, что она ориентирована правильно, так как этот тип светодиодной ленты имеет одностороннее направление передачи данных (т.е. контакт Dout предыдущей ленты должен соединяться с контактом Din следующей)

Шаг 5: Соединение светодиодов

Теперь светодиодные полоски надо соединить между собой. Для этого нарезаем много небольших кусочков тонкого провода, длиною примерно 3 – 4 см. Используя паяльник, надо припаять эти кусочки провода между контактами светодиодных полосок в следующем виде: DO – DI, V – V, GND – GND. Проверка пайки и подключения будет выполнена на следующем шаге, а в данный момент выполняется только визуальный осмотр, на наличие коротких замыканий и прочих физических ошибок.

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

Шаг 6: Подключение микроконтроллера

Первым делом, подключаются провода питания и заземления к источнику питания. Затем контакт Vcc на микроконтроллере подключается к контакту V первой светодиодной полоски, соответственно контакт GND к GND. Контакт микроконтроллера №6 подключается к контакту входа данных DI первой полоски (этот контакт определяется программно и может быть переопределен).

Если вы используете Arduino Pro Mini, то подключите программатор к последовательному порту. В противном случае просто подключите к микроконтроллеру USB кабель от компьютера.

Шаг 7: Программирование микроконтроллера

Для того чтобы запрограммировать микроконтроллер, вам нужно скачать и установить на свой компьютер программу Arduino IDE, оснащенную библиотекой Adafruit NeoPixel, которая может быть загружена с сайта Adafruit.

После установки программы, откройте проверочный программный код (эскиз) под названием strandtest, перейдя по следующим пунктам меню:

File → Examples → Libraries → Adafruit_NeoPixel → strandtest

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

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

Если вы используете микроконтроллер Adafruit FLORA или Gemma, то вам нужно будет настроить тип микроконтроллера в программе Arduino IDE, для этого следуйте этим инструкциям: https://learn.adafruit.com/add-boards-arduino-v164/setup

Шаг 8: Тест подключений


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

Если что-то не работает, проверьте все соединения, начиная от микроконтроллера и заканчивая последним светодиодным отрезком светодиодной ленты.

Шаг 9: Последние штрихи

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

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



Елочные украшения имеют свой собственный веб-сервер. Весь программный код работает на микроконтроллере Wemos / ESP8266. Все остальное, что требуется – это источник питания 5 Вольт (USB) и сеть Wi-Fi.
Эта инструкция, которая содержит поэтапные шаги, начинается с трех примеров программного кода. Первый пример – это простой эскиз Arduino по схемам Autodesk с использованием светодиодного кольца NeoPixel. Этот пример является базовым для этого проекта. Второй пример кода – это веб-сервер, использующий микроконтроллер Wemos. В третьем примере кода объясняется, как выполнять различные функции с определенными интервалами времени.
После этих примеров кодирования описывается создание дизайна модели игрушки, который представляет собой абсолютно симметричную геометрию с 20 сторонами. Дизайн и форма были созданы в программе Fusion 360, а затем напечатаны с помощью 3D-принтера.
В конце, после сборки, описывается итоговый программный код, который представляет собой комбинацию из трех примеров в начале этой инструкции.
Хоть эта инструкция и описывает создание орнамента из новогодних украшений, веб-интерфейс не ограничивается только этими возможностями. Его можно использовать для множества других проектов. Фактически, все, что работает под управлением микроконтроллеров Arduino, можно контролировать через сеть Wi-Fi.

Шаг 1: Необходимые материалы


Необходимые материалы:

  • Микроконтроллер Wemos D1 Mini Pro или Wemos D1 Mini
  • Светодиодная лента WS2812b , 30 led / метр, IP30 или миниатюрные программируемые пиксели
  • Кабель USB – micro-USB
  • Провода
  • Суперклей
  • Блестки в виде порошка
  • USB источник питания на 5 вольт

Используйте подходящий USB источник питания. Каждый светодиод потребляет максимум 60 мА, поэтому 20 светодиодов на полной мощности потребляют 1,2 А (6 Вт). В данном проекте использовался блок питания Ikea Koppla USB. Он оснащен 3 USB портами и обеспечивает ток 3,2 А при напряжении 5 Вольт.

Шаг 2. Схема Autodesk: пример подключения светодиодного кольца NeoPixel


Построение чего-либо с помощью светодиодов WS2812 и микроконтроллера Arduino действительно простая задача. Но это может показаться пугающим, если вы никогда раньше не работали с Arduino. Некоторый опыт в программировании и электронике будет весьма кстати. Это не так уж сложно.
И совсем не обязательно покупать микроконтроллер Arduino, чтобы попробовать свои силы. Есть веб-сайты, где вы можете имитировать работу микроконтроллера. Одним из них является сайт компании Autodesk Circuits . Этот пример сделан на микроконтроллере Arduino с использованием светодиодного кольца NeoPixel , и является основой этого рождественского проекта.
Программный код для микроконтроллера выглядит просто, но в тоже время показывает многие возможности кодирования микроконтроллеров Arduino:

  • Программный код использует внешнюю библиотеку «Adafruit NeoPixel». Поэтому не нужно беспокоиться об изменении цвета светодиодов. Все, что нужно сделать, это использовать библиотечные функции.
  • Программный код определяет значения 12 цветов RGB в 3 массивах. Это те 12 цветов, которые используются в веб-интерфейсе для управления светодиодной полосой.
  • Также, существует самоопределяемая функция. Это функция «setColor», которая может быть вызвана из любой точки программы.

Этот код содержит один массив из 12 цветов (пронумерованных от 0 до 11). Для этого проекта было выбрано 12 цветов, потому что итоговый код содержит и распознает одну кнопку для каждого цвета:

Цвет 0: янтарные (FFC200)
цвет 1: оранжевый (FFA500)
цвет 2: киноварь (E34234)
цвет 3: красный (FF0000)
цвет 4: пурпурный (FF00FF)
цвет 5: фиолетовый (800080)
цвет 6: индиго (4B0082)
Цвет 7: голубой (0000FF)
цвет 8: аквамарин (7FFFD4)
цвет 9: зеленый (00FF00)
цвет 10: зеленовато (7FFF00)
цвет 11: желтый (FFFF00)

Если хотите, вы можете изменить цвета, изменив значения RGB. Другие коды цветов можно найти в Википедии .

Шаг 3. Здравствуй мир!


После программирования контроллера Arduino на работу со светодиодами WS2812, пришло время создать простой веб-сервер на базе контроллера. Для этого требуется микроконтроллер Wemos (с ESP8266), содержащий адаптер Wi-Fi. Контроллер Wemos можно подключить к компьютеру с помощью USB-кабеля. Нет необходимости использовать дополнительные USB-адаптеры. Это преимущество контроллера Wemos над модулем ESP8266-12.
Контроллер Wemos можно запрограммировать с использованием программного обеспечения Arduino. Но для этого потребуется добавление дополнительных плат в программную среду Arduino IDE с помощью функции Boards Manager. Это описано в документации на контроллер Wemos .
После выполнения этих шагов можно выбрать плату Wemos для программирования в среде программирования Arduino IDE. Для этого надо выбрать контроллер Wemos (+ соответствующий COM-порт) и загрузить в него следующий код:

Только перед компиляцией и загрузкой кода, измените учетные данные сети.
Это очень простой веб-сервер. Контроллер Wemos подключится к сети Wi-Fi и запустит веб-сервер только с одной страницей. Используйте монитор последовательного порта, чтобы получить IP-адрес вашего веб-сервера.

Шаг 4: Подключение

Для создания схемы требуется немного пайки. Но благодаря использованию светодиодной полосы WS2812b она сводится к минимуму.
Надо припаять штыревые контакты к плате контроллера Wemos. Для этого используются контакты на плате «D2», «+5В» и контакт «GND». Это означает, что контакты должны быть припаяны только с одной стороны платы.
Затем припаяйте три разноцветных провода к светодиодной полосе (земля, сигнал и +5V).
После этого удалите пластик с USB-разъема на проводе. В таком виде для этого разъема нет места. Добавьте 2 дополнительных провода к кабелю USB (скрутка на картинке): один к проводу «+5V» и один к проводу «GND». Они непосредственно используются для питания светодиодов. Не забудьте заизолировать эти провода.
Подключите дополнительные провода «+5V» от USB-кабеля к светодиодной полосе. То же самое для провода «GND». Подключите сигнальный провод от светодиодной полосы к контакту D2 на плате контроллера Wemos. Наконец подключите USB-кабель к плате контроллера Wemos.
К контакту на плате контроллера Wemos не подключен провод заземления. Этот контакт заземления напрямую подключен к разъему USB. Это связано с дополнительным проводом «GND».

Шаг 5: Пример работы таймеров

В первом примере кода NeoPixel для Arduino (светодиодное кольцо NeoPixel) изменение цвета производятся в основном цикле. Это требует задержки в основном цикле, или изменение цвета будет происходить слишком быстро. Во время этой задержки контроллер Wemos просто ждет и не выполняет никаких других команд. За исключением фоновых процессов, например, обрабатывает сетевое соединение Wi-Fi.
Конечный продукт будет запускать веб-сервер для управления светодиодами. Из-за этого внутри кода не должно быть ожиданий, потому что это даст не чувствительный web-интерфейс.
В примере ниже, светодиоды управляются внутренним таймером «osTimer», который определяется функцией «os_timer_setfn», а затем активируется функцией «os_timer_arm». Используемое значение 1000 определяется в миллисекундах. Используя это значение, таймер контроллера Wemos будет выполнять процедуру «timerCallback» каждую секунду. Эта процедура увеличивает значение цвета и изменяет цвета светодиодов. В итоге, все эти действия выполняются вне основного цикла.
Помните, что код внутри «osTimer» должен быть очень коротким, так как он должен быть выполнен до того, как будет запущен следующий таймер.
Программный код: Этот код также содержит функцию с именем «setColor», которая может принимать 3 значения, используемые для изменения цвета всех светодиодов одновременно.

Шаг 6: Правильный выпуклый многогранник



Существуют елочные украшения разных форм. В то время, когда подбирался дизайн, случайно были найдены некоторые геометрические формы. И один тип геометрии привлек внимание: правильный многогранник. Он абсолютно симметричен. Это делает его идеальным для рождественских игрушек. Известно всего пять типов :
1. Треугольная пирамида (4 стороны)
2. Куб (6 сторон)
3. Октаэдр (8 сторон)
4. Додекаэдр (12 сторон)
5. Икосаэдр (20 сторон)
Был выбран икосаэдр . Он имеет наибольшее количество сторон. На каждой стороне будет один светодиод WS2812, а всего их будет 20.
Использование светодиодных лент WS2812 ограничивает размер геометрии. Расстояние между светодиодами составляет 33 мм (30 светодиодов на метр). Это равно верхнему пределу для сторон каждого равностороннего треугольника. После создания бумажного прототипа, был разработан размер икосаэдра около 75 мм. Это дает достаточно места для контроллера Wemos и 20-ти светодиодов.

Шаг 7: Работа в программе Autodesk Fusion 360






Создание стандартного икосаэдра начинается с 3 прямоугольников на каждой оси. Это должны быть золотые прямоугольники. Золотой прямоугольник - это прямоугольник, длина сторон которого находится в золотом соотношении (приблизительно 1,618). Мы можем рассчитать стороны для золотого прямоугольника с диагональю 75 мм, используя теорему Пифагора, размер сторон получается 65 х 40 мм.
Каждый угол прямоугольников представляет собой угол из 5 треугольников.

Перед вклейкой светодиодов нарисуйте путь светодиодной полосы. Это поможет ей не пересекаться.
Начните с вклеивания светодиодов внутри большой 3D-печатной части, с последнего светодиода в конце полосы. В данном проекте, для фиксации использовался горячий клей. Будьте осторожны, аккуратно сгибайте светодиодную ленту во время сборки, чтобы она не повредилась.
В этой версии использовалось два отрезка светодиодной ленты. Один с 5-ю светодиодами и один с 15-ю светодиодами. Но вполне можно использовать одну светодиодную полоску из 20 светодиодов. Это экономит время и не требует пайки.
Подключите провода «+5V» и «GND» от светодиодной полосы к USB-кабелю. Сигнальный провод подключается к выходу «D2» на плате контроллера Wemos. Земля соединена внутри. Не забудьте проверить светодиоды перед закрытием рождественской игрушки.
Чтобы части не разъединялись, используется клей. Поместите плату контроллера Wemos внутри большой 3D-печатной части. Сделайте отверстие для пропуска USB-кабеля и склейте обе части вместе.

Шаг 10: Веб-сервер


Файл эскиза Arduino, приложенный в конце раздела, содержит весь код для веб-сервера на контроллере Wemos. Перед загрузкой кода измените переменные «ssid» и «password».
О коде

Некоторые части кода требуют небольшого объяснения:

#include
#include
#include
#include
#include
#include
Это все библиотеки, используемые в этом эскизе для Arduino.

#define NUM_PIXELS 20
Adafruit_NeoPixel pixels(NUM_PIXELS, D2, NEO_GRB | NEO_KHZ800);
Есть 20 светодиодов, которые подключены к контакту «D2» на плате контроллера Wemos.

int R = {255,255,227,255,255,128,075,000,127,000,127,255,000};
int G = {194,165,066,000,000,000,000,000,255,255,255,255,000};
int B = {000,000,052,000,255,128,130,255,212,000,000,000,000};
Это 12 цветов (цвет от 0 до 11), они используются для светодиодов. Соответствующие значения HEX используются для кнопок. В этом массиве есть 13 значений. Последнее значение в массиве выключает светодиод (# 000000 = черный). Вы можете изменить эти цвета, если хотите.

String buttonColor = {"white", "black"};
boolean ColorState = {1,1,1,1,1,1,1,1,1,1,1,1,1}; // initial colors
Все 12 кнопок имеют «Состояние». Если у кнопки появляется значение «Истина», то соответствующий светодиод отображает соответствующий цвет. При нажатии кнопки состояние этой кнопки изменяется. Это также меняет цвет текста этой кнопки (например, черный или белый ).

int waitTimes = {50, 100, 150, 200, 250, 500, 750, 1000, 1500, 2000, ...
int waitTime = 5; // default values
Есть две кнопки для изменения значения таймера («быстрее» и «медленнее»). Значение «waitTime» по умолчанию равно 5. Это значение дает интервал таймера 500 миллисекунд.

int nextColor (int lastColor)
{
foundColor = numColors; // nothing found return value
countColors = 0; // count number of searches inside the loop
do
{
currentColor += 1;
countColors += 1;
if (currentColor>numColors) {currentColor=0;}
if (ColorState) {foundColor=currentColor;}
}
while (currentColor != lastColor
&& foundColor == numColors
&& countColors < numColors+1);
return (foundColor);
}
Эта функция находит следующий цвет для отображения из массива «colorState». Она начинает поиск с позиции с номером «lastColor», и возвращает следующее индекс-значение в массиве colorState со значением 1.
Пример. В следующем массиве цвет 2-7 выключен (белый текст). Выполнение этой функции со значением 0 возвращает 1. Использование этой функции со значением 1 возвращает 8. Это следующий цвет, который имеется в массиве «colorState» со значением «Истина».
Цвет 0: янтарный (FFC200)
Цвет 1: оранжевый (FFA500)
Цвет 2: алый (E34234)
Цвет 3: красный (FF0000)
Цвет 4: пурпурно-красный (FF00FF)
Цвет 5: пурпурный (800080)
Цвет 6: индиго (4B0082)
Цвет 7: синий (0000FF)
Цвет 8: зеленовато-голубой (аквамарин) (7FFFD4)
Цвет 9: зеленый (00FF00)
Цвет 10: шартрез (салатовый) (7FFF00)
Цвет 11: желтый (FFFF00)
Цвета всегда отображаются в фиксированном порядке. Когда все 12 цветов выключены, значит, что все светодиоды тоже выключены (значение 000000).

// interrupt os-timer
void timerCallback(void *pArg)
if (!buttonSparkle)
{
// Sparkle Off = Blink
}
else
{
// Sparkle
}
Существует 2 режима работы: «Искрение» и «Мерцание». И каждый из них имеет разный путь кода внутри OS-таймера.
Режим мигания имеет самый простой код. Он получает следующий цвет, вызывая функцию «nextColor». Затем все цвета светодиодов меняются на этот цвет.
Режим искрения очень сильно отличается. Он всегда начинается с первого доступного цвета в массиве «ColorState». Затем для каждого светодиода вызывается функция «nextColor». Быстрое изменение цвета светодиода дает эффект сверкания.

Void showPage()
{
webPage += "