RGB елочная гирлянда на Arduino

Мигание светодиодами NeoPixel в ленте

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

Arduino

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUMPIXELS 7

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void NeoBlink(int num, int wait)
{
for (int i = 0; i < num; i++)
{
pixels.setPixelColor(i, 35, 35, 35);
}
pixels.show();
delay(wait);
for (int j = 0; j < num; j++)
{
pixels.setPixelColor(j, 0, 255, 0);
}
pixels.show();
delay(wait);
}

void setup()
{
pixels.begin();
pixels.setBrightness(50);
}

void loop()
{
NeoBlink(7, 500);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#include <Adafruit_NeoPixel.h>
 
#define PIN        6
#define NUMPIXELS 7
 
 

Adafruit_NeoPixelpixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);

voidNeoBlink(intnum,intwait)

{

for(inti=;i<num;i++)

{

pixels.setPixelColor(i,35,35,35);

}

pixels.show();

delay(wait);

for(intj=;j<num;j++)

{

pixels.setPixelColor(j,,255,);

}

pixels.show();

delay(wait);

}
 

voidsetup()

{

pixels.begin();

pixels.setBrightness(50);

}
 

voidloop()

{

NeoBlink(7,500);

}

Светодиодная лента Ардуино — Подключение

Чтобы подключить 12v светодиодную ленту к Arduino, вам понадобится несколько компонентов: ● 12v RGB светодиодная лента(SMD5050); ● 1 x Arduino Uno (любая совместимая плата подойдет); ● 3 x 10 кОм резисторов; ● 3 x логических уровня N-канальных МОП-транзисторов (MOSFET); ● 1 х макет; ● Монтажные провода; ● Блок питания на 12 В.

Подключение адресной светодиодной ленты к Ардуино

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

Настройте свою схему следующим образом:

1. Подключите контакты Arduino 9, 6 и 5 к концам затвора трех МОП-транзисторов и подключите резистор 10 кОм в соответствии с заземлением. 2. Подключите ножки источника к заземлению. 3. Подключите дренажные опоры к разъемам Green, Red и Blue на светодиодной ленте. 4

Подключите шину питания к разъему +12v светодиодной полосы (обратите внимание, что на изображении выше провод питания черный, чтобы соответствовать цветам разъемов на моей светодиодной полосе). 5

Подключите заземление Arduino. 6. Подключите стабилизатор питания 12 В в сеть. Большинство светодиодных полосок имеет разъемы Dupont, к которым легко подключиться. Если у вас нет таких, вам понадобится припаять провода к диодной ленте. Не паникуйте, если вы новичок в пайке — это легкая работа. В интернете есть множество руководств по началу работы с паяльником, с которыми можно ознакомиться, если пайка доставляет вам трудности. Для этого проекта мы будем управлять нашей платой Arduino по USB . Вы можете выбрать питание платы с помощью вывода VIN, но перед этим убедитесь, что вы знаете ограничения мощности для своего устройства.

После всех процедур схема и Светодиодная лента Ардуино должна выглядеть примерно так:

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

Это интересно: Утюг не работает после чистки солью: что делать?

Объяснение программы Arduino для работы с адресной светодиодной лентой

Прежде чем начинать работу с адресной светодиодной лентой в Arduino необходимо скачать и установить библиотеку для нее — NeoPixel Adafruit library.

Arduino

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

1 Adafruit_NeoPixelpixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);

Эта функция определяет число светодиодов и контакт Arduino для управления ими.

Arduino

pixels.begin();

1 pixels.begin();

Эта функция инициализирует адресную светодиодную ленту.

Arduino

pixel.setBrightness(b);

1 pixel.setBrightness(b);

Функция, устанавливающая яркость свечения светодиодов. 1 – минимальная яркость, 255 – максимальная.

Arduino

pixels.setPixelColor(Wich LED,Wich color(Red,Green,Blue));

1 pixels.setPixelColor(WichLED,Wichcolor(Red,Green,Blue));

Эта функция задает цвет свечения светодиода с помощью системы RGB, при этом задается номер светодиода (от 0 до NUMPIXELS-1).

Arduino

pixels.show();

1 pixels.show();

Функция, которая активирует заданные настройки, то есть включает светодиоды с заданными ранее настройками.

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

Схема №4 все в одном

Ну и для тех, кто хочет собрать лаконичное законченное устройство «все в одном корпусе», приведу и на этот случай схему подключения.

RGB елочная гирлянда на Arduino

В этой схеме вам дополнительно может понадобится:

  • Блок питания 12В 5А
  • Гнездо 220 В
  • Кабель питания 220 В
  • Ну и коробочек, чтобы побольше влез блок питания.

Для удобства можно вывести внешний подстрочный потенциометр, для более удобной регулировки питания.

Ну и для полного эстетического удовлетворения ручка потенциометра.

Уже какой-то лабораторный блок питания получился, кстати есть такая статья, можно ознакомиться тут: «DIY Лабораторный блок питания». Возможно, будет полезно что-то взять именно с этой статьи.

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

  • ESP8266 nodeMCU
  • Блок питания 5В 2А (1 мало, 3 много)
  • Адресная гирлянда 5В (я брал 10 метров, 2 х 5)

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

  • Все та же ESP8266 nodeMCU
  • Блок питания 12В 3А
  • Адресная гирлянда 5В, ну или любая другая из приведенных выше
  • Понижающий преобразователь с вольтметром

Обратите внимание, что любая адресная лента имеет направление подключения. В местах подключения имеется стрелка

Настраиваем среду разработки Arduino IDE

1. Подключаем Arduino к Mac и запускаем приложение Arduino IDE.

2. В меню Инструменты – Плата выбираем тип используемой платы Arduino.

3. В меню Инструменты – Процессор выбираем тип процессора на плате. Чаще всего это ATmega328P, но на старых платах может использоваться ATmega328P (Old Bootloader). Проверяется методом перебора.

4. В меню Инструменты – Порт выбираем USB порт с подключенной платой Arduino. Если плата не отображается, следует удалить и заново установить кексты по инструкции выше.

5. Проверяем подключение командой Инструменты – Получить информацию о плате.

Все, наше приложение готово и настроено для работы с платой Arduino.

Раздельное управление светодиодами NeoPixel

В этом примере программы мы включаем светодиоды в ленте и управляем цветом и интенсивностью свечения каждого светодиода по отдельности использую плату Arduino UNO.

Arduino

#include <Adafruit_NeoPixel.h>

#define PIN 6 // контакт для управления светодиодами
#define NUMPIXELS 7 // столько светодиодов в сборке

Популярные статьи  Как украсить дом на Новый год 2022 своими руками — лучшие красивые фото идеи

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels (время паузы в миллисекундах между пикселами)

void setup() {
pixels.begin();
}

void loop() {
pixels.clear();
pixels.setBrightness(10);
pixels.setPixelColor(0, pixels.Color(255, 255, 255));
pixels.setPixelColor(1, pixels.Color(255, 0, 0));
pixels.setPixelColor(2, pixels.Color(0, 255, 0));
pixels.setPixelColor(3, pixels.Color(0, 0, 255));
pixels.setPixelColor(4, pixels.Color(255, 0, 255));
pixels.setPixelColor(5, pixels.Color(255, 255, 0));
pixels.setPixelColor(6, pixels.Color(0, 255, 255));
pixels.show();
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

#include <Adafruit_NeoPixel.h>
 
#define PIN      6 // контакт для управления светодиодами
#define NUMPIXELS 7 // столько светодиодов в сборке
 
 

Adafruit_NeoPixelpixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);

 
#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels (время паузы в миллисекундах между пикселами)
 

voidsetup(){

pixels.begin();

}
 

voidloop(){

pixels.clear();

pixels.setBrightness(10);

pixels.setPixelColor(,pixels.Color(255,255,255));

pixels.setPixelColor(1,pixels.Color(255,,));

pixels.setPixelColor(2,pixels.Color(,255,));

pixels.setPixelColor(3,pixels.Color(,,255));

pixels.setPixelColor(4,pixels.Color(255,,255));

pixels.setPixelColor(5,pixels.Color(255,255,));

pixels.setPixelColor(6,pixels.Color(,255,255));

pixels.show();

}

Режим радуги для светодиодов NeoPixel

В сети есть интересный инструмент для удобного создания различных эффектов для адресной светодиодной ленты NeoPixel — NeoPixel Effects Generator. В нем вы можете задать число светодиодов и контакт платы Arduino для управления ими и после создания в этом генераторе необходимых эффектов для вашей ленты вы можете в этом генераторе сформировать готовый код для платы Arduino.

Для этого выполните следующую последовательность шагов.

1. На сайте генератора нажмите Add Led Strip (добавить светодиодную ленту).

2. Задайте количество светодиодов в ленте и номер контакта Arduino, с которого будет осуществляться управление ими.

3. После этого нажмите на Add Effect (добавить эффект) и выберите желаемый эффект.

4. Задайте цвет свечения светодиодов.

5. Нажмите на “generate Arduino code” и после этого для вас будет сформирован код программы для Arduino, который вы можете непосредственно вставить в Arduino IDE.

Блок питания

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

Блок питания нам понадобится на 12 вольт, а мощность варьируется в зависимости от длины ленты и плотности светодиодов. 

К примеру, лента со светодиодами 5050, плотностью 60 светодиодов на метр потребляет максимум 0,8 А на метр. Данные выведены чисто экспериментально, ибо в даташитах на ленты с этими светодиодами красуется цифра 14,4 ватт на метр, что означает 1,2 Ампера при 12 вольтах.

Значит для 5-ти метровой ленты достаточно блока питания 4А. И это для максимальной яркости в режиме белого цвета. Также, если цвет отличается от белого, то потребление снижается.

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

 Максимально потребляемый светодиодной лентой ток , Ампер:

RGB елочная гирлянда на Arduino
Расчёт потребления тока светодиодными лентами

Соответственно выбираем блок питания способный выдать ток НЕ МЕНЬШИЙ чем способна потребить ваша лента.

Загружаем проект для гирлянды в Arduino

1. Скачиваем проект с сайта разработчика.

2. Распаковываем архив и находим файл проекта GyverMatrixOS_v1.12.ino (можете использовать боле старые версии или новые после их добавления автором).

3. Импортируем библиотеки, которые нужны для работы проекта через меню Скетч – Подключить библиотеку – Добавить .ZIP Библиотеку…

Потребуется поочередно импортировать четыре библиотеки из архива с проектом, которые лежат в папке GyverMatrixBT-master/libraries/ESP, ARDUINO/.

4. Вносим необходимые изменения в проект:

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

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

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

Для редактирования списка эффектов нужно перейти на вкладку Custom и удалить ненужные блоки начиная с “case” и заканчивая ” break;”

Эффекты можно менять местами или вставлять для повторения. Не забывайте про синтаксис.

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

Здесь же настраивается текст и цвет для бегущих строк.

В-четвертых, настраиваем дополнительные параметры для каждого из эффектов.

Часть настроек находится на главной вкладке проекта, а остальные – на вкладке effects.

5. Когда все настройки внесены, можем загружать прошивку на Arduino.

При возникновении ошибок они будут отображаться в сервисном окне снизу. Ошибки могут быть связаны с отсутствующими библиотеками (внимательно повторяем инструкцию по настройке Arduino IDE) или с нехваткой места на плате (об этом будет явно указано в консоли).

После прошивки отключаем плату от компьютера и подаем питание выбранным способом: через адаптер от сети или при помощи Power Bank.

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

Остается только закрепить гирлянду на окно и дождаться темного времени суток. Скопление зевак и прохожих под окном гарантировано.

Адресные ленты

Самое дешевое исполнение ленты WS2811, к недостаткам можно только отнести 3 диода на один контроллер, если использовать как подсветку — это даже и лучше. Лента работает от 12В.

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

Не самое дешевое исполнение адресной ленты, но, наверное, одно из самых красивых.

Итак, со светодиодными лентами мы определились, можно приступать к выбору остальных комплектующих. Для себя я выбрал вариант «Для новогоднего настроения», а также у меня было два куска по 5 метров дешевой ленты на WS2811. Ввиду того, что ленты работают на разных напряжениях, рассмотрим вариант как для питания 5В, так и для 12В.

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

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

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

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

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

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

Популярные статьи  Частотомер 10 Гц - 60.00 МГц на pic16f628a + nokia lcd 5110

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

Подключение WS2812B в Arduino IDE

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

По умолчанию, количество пикселей в ленте – 30, но при необходимости это можно изменить в скетче.

Пример с использованием библиотеки FastLED:

// Подключаем библиотеку FastLED.

#include «FastLED.h»

// Указываем, какое количество пикселей у нашей ленты.

#define LED_COUNT 30

// Указываем, к какому порту подключен вход ленты DIN.

#define LED_PIN 6

// Создаем переменную strip для управления нашей лентой.

CRGBstrip;

voidsetup()

{

  // Добавляем ленту

  FastLED.addLeds<WS2812B,LED_PIN,RGB>(strip,LED_COUNT);

}

voidloop()

{

  // Включаем все светодиоды

  for(inti=;i<LED_COUNT;i++)

  {

    strip=CRGB::Red;// Красный цвет.

  }

  // Передаем цвета ленте.

  FastLED.show();

  // Ждем 500 мс.

  delay(500);

  // Выключаем все светодиоды.

  for(inti=;i<LED_COUNT;i++)

  {

    strip=CRGB::Black;// Черный цвет, т.е. выключено.

  }

  // Передаем цвета ленте.

  FastLED.show();

  // Ждем 500 мс.

  delay(500);

}

Скетч займёт 3758 байт в программной памяти Arduino и 187 байт ОЗУ.

Теперь попробуем тоже самое с библиотекой Adafruit NeoPixel:

// Подключаем библиотеку Adafruit NeoPixel.

#include «Adafruit_NeoPixel.h»

// Указываем, какое количество пикселей у нашей ленты.

#define LED_COUNT 30

// Указываем, к какому порту подключен вход ленты DIN.

#define LED_PIN 6

// Создаем переменную strip для управления нашей лентой.

Adafruit_NeoPixelstrip=Adafruit_NeoPixel(LED_COUNT,LED_PIN,NEO_GRB+NEO_KHZ800);

voidsetup()

{

  // Инициализируем ленту.

  strip.begin();

}

voidloop()

{

  // Включаем все светодиоды.

  for(inti=;i<LED_COUNT;i++)

  {

    strip.setPixelColor(i,strip.Color(255,,));// Красный цвет.

  }

  // Передаем цвета ленте.

  strip.show();

  // Ждем 500 мс.

  delay(500);

  // Выключаем все светодиоды.

  for(inti=;i<LED_COUNT;i++)

  {

    strip.setPixelColor(i,strip.Color(,,));// Черный цвет, т.е. выключено.

  }

  // Передаем цвета ленте.

  strip.show();

  // Ждем 500 мс.

  delay(500);

}

Скетч займёт 2592 постоянной и 40 байт оперативной памяти Arduino.

Как можно увидеть, библиотека FastLED более ресурсоёмка. Кроме того, используя её в Arduino с 2 Кб ОЗУ (таковой является, например, UNO) можно управлять не более чем 600 пикселями светодиодной ленты. Это связано с тем, что на каждый пиксель резервируется 3 байта памяти.

А вот в Adafruit NeoPixel минимум нужных функций и меньший расход памяти. Какую из них использовать – ваш выбор. Удачи в проектах!

Список необходимого

  • Мозг устройства – Ардуино Нано – 1 шт. — 150 р.
  • Датчик движения — HC-SR505 – 1 шт. — 60 р.
  • Сенсорная кнопка TTP-223 – 1 шт. — 20 р.
  • Транзистор IRF-3205 — 3 шт. -150 р.
  • Резистор 10 К 0,25 Вт – 3 шт. – 6 р.
  • Резистор 20 Ом 0,25 Вт – 3 шт. – 6 р.
  • Макетная плата под пайку размерами 90х50 мм – 1 шт. 100 р.
  • Корпус 100х60 — 1 шт. 60 руб.

Итого 14 деталей на общую сумму примерно 600 рублей + сама светодиодная RGB лента в зависимости от формата планируемой подсветки.

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

Руководство по выбору светодиодных лент к Arduino

При покупке светодиодных лент есть несколько вещей, которые следует учитывать. Во-первых, это функциональность. Если вы планируете использовать устройства в основном для окружающего освещения, то правильным выбором станет простая диодная полоса 12 В RGB (SMD5050). Многие приборы поставляются с инфракрасным пультом для управления ими, хотя в этом проекте мы будем использовать Arduino. Потратьте немного времени на покупки. На момент написания статьи метр ленты можно было купить всего за 1 доллар. Если вы хотите что-то более высокотехнологичное, рассмотрите SPI RGB ленту.

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

Подробне о SPI RGB лентах вы можете прочитать здесь.

Эти полосы требуют всего 5 В для полноценного питания. Несмотря на то, что можно подавать небольшое количество мощности непосредственно с платы Arduino, обычно рекомендуется использовать отдельный источник питания 5 В, чтобы избавиться от запаха гари. Если вы ищете индивидуально программируемые светодиоды, светодиодная лента Ардуино — лучшая находка для вас. В данный момент стоимость 1 метра равняется примерно 4 долларам — 270 рублям. Еще одна вещь, которую следует учитывать, — это то, где ленты, вероятно, будут использоваться. Оба типа полосы имеют различную длину, плотность светодиодов — количество диодов на метр — и разную степень защиты от атмосферных воздействий

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

Например, если в списке указано «30 IP67», это означает, что на метр будет 30 светодиодов. «6» — признак того, что устройство полностью защищено от пыли. «7» значит, что прибор не пострадает от непродолжительного погружения в воду. После того, как вы приобретете светодиодную полоску, придет время связать ее с Arduino. Начнем с SMD5050.

Это интересно: Марка кабеля, устойчивого к ультрафиолету — разбираем тщательно

Ёлочный автомат на 12 гирлянд нa ARDUINO UNO

Рейтинг:   / 5

Подробности
Категория: Схемы на Arduino
Опубликовано: 29.04.2018 08:28
Просмотров: 1900

Автомат предназначен для переключения 12-ти гирлянд или других светящихся ёлочных украшений на основе лампочек, питающихся напряжением 220V от электросети. Мощность каждой гирлянды может быть от нуля до 200W. Поэтому автомат пригоден как для домашней ёлочки, так и для большой ёлки, установленной во дворе или на улице, в концертном зале…

RGB елочная гирлянда на Arduino Автомат сделан на основе микроконтроллерной платы ARDUINO UNO. Схема предназначена для управления 12-. гирляндами. Для управления выбраны порты D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13. Логические уровни с этих портов поступают на электронные ключи на ключевых высоковольтных полевых транзисторах VT1-VT12. При логической единице на соответствующем порту платы, открывается соответствующий транзистор. Транзисторы предназначены для работы на постоянным (или пульсирующем) токе, поэтому напряжение на гирлянды поступает через диоды VD13-VD24. Применение отдельного диода для каждой гирлянды вместо общего выпрямителя для всех позволяет обойтись относительно маломощными диодами. Диоды VD1-VD12 служат для улучшения разрядки емкостей затворов мощных полевых транзисторов, а резисторы R1-R12 устраняют кратковременные перегрузки портов по току из-за импульсов тока на заряд / разряд емкостей затворов полевых транзисторов. Программа относительно проста. И при наличии персонального компьютера и программного обеспечения для ARDUINO UNO можно создавать любые, какие угодно порядки переключения гирлянд. Ниже приводится простая программа с всего двумя состояниями — переключение четных и нечетных номеров гирлянд. Но это только демонстрация. Саму программу очень просто можно дописать на любые желаемые порядки переключения гирлянд, скорости переключения. Суть в том, что нужно брать каждый шаг программы и указывать в нем на каких портах должны быть нули (гирлянда не горит), а на каких — единицы (гирлянда горит). Затем указывается время продолжительности этого шага. Всего шагов может быть от двух, как демонстрационной программе, то десятков и сотен, — все зависит от вашей фантазии и усидчивости. И так, программа: /* Blink12 */ //задание выходов void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); } //рабочий цикл void loop() { digitalWrite(2, HIGH); // горит Н12 digitalWrite(3, LOW); // не горит Н11 digitalWrite(4, HIGH); // горит Н10 digitalWrite(5, LOW); // не горит Н9 digitalWrite(6, HIGH); // горит Н8 digitalWhte(7, LOW); // не горит Н7 digitalWrite(8, HIGH); // горит Н6 digitalWrite(9, LOW); // не горит Н5 digitalWrite(10, HIGH); // горит Н4 digitalWrite(11, LOW); // не горит НЗ digital Write(12, HIGH); // горит Н2 digitalWrite(13, LOW); // не горит Н1 delay(1000); // время шага 1 сек. digitalWrite(2, LOW); // не горит Н12 digitalWrite(3, HIGH); // горит Н11 digitalWhte(4, LOW); // не горит Н10 digitalWrite(5, HIGH); // горит Н9 digitalWrite(6, LOW); // не горит Н8 digitalWrite(7, HIGH); // горит Н7 digitalWrite(8, LOW); // не горит Н6 digitalWrite(9, HIGH); // горит Н5 digitalWrite(10, LOW); // не горит Н4 digitalWrite(11, HIGH); // горит НЗ digitalWrite(12, LOW); // не горит Н2 digitalWrite(13, HIGH); // горит Н1 delay(1000); // время шага 1 сек. } Таким образом, в каждый шаг записываем состояния гирлянд (LOW — не горит, HIGH — горит). Затем указываем длительность (время) шага (1000 = 1 сек). Затем следующий шаг. Как уже сказано, шагов может быть сколько угодно. Лампочные гирлянды сейчас уже никак нельзя назвать современным ёлочным украшением. Особенно когда относительно недорого продаются светодиодные ленты. Эту же самую схему, с почти такой же программой совсем несложно приспособить и для управления ёлочными гирляндами, сделанными из RGB-светодиодных лент в количестве четырех штук. Схема показана на рисунке.RGB елочная гирлянда на Arduino Различие только выходных ключах, и в том что вместо гирлянд RGB ленты. Программа составляется так же, только нужно учитывать не номер гирлянды и номер RGB ленты и её цвет. Полевые транзисторы 2SK2782 можно заменить на IRLU024N или другие аналогичные. Каравкин В. Литература: 1. Каравкин В. «Ёлочная гирлянда на ARDUINO как средство от боязни микроконтроллеров», ж. Радиоконструктор, №11, 2016г. PK 11-2017

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

Оставлять комментарии могут только зарегистрированные пользователи

Выбор RGB ленты

Для этого проекта нам понадобится именно RGB светодиодная лента, та — что с четырьмя контактами.

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

Вариант с тремя контактами – это адресная лента. Для управления такой лентой нужная другая схема и другой программный код, поэтому рассмотрим этот вариант в отдельной статье.

Вариант с пятью и шестью контактами это RGBW и RGBWW ленты. Как вы уже догадались, буква W обозначает дополнительно припаянный белый светодиод, а WW два белых светодиода, такие ленты используются в случаях, если белым нужно светить гораздо ярче чем остальными цветами.

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

Из чего?

Немного порывшись в своих коробках, я обнаружил несколько лент индивидуально-адресуемых RGB светодиодов. В дикой природе они имеют разные названия — WS2801, WS2811, WS2812, Neopixels и т.п.
Главная изюминка этих лент в том, что можно управлять любым RGB светодиодом индивидуально и менять RGB цветовые составляющие и яркость.

Любые вариации светодиодных лент можно купить на eBay, Alibaba/AliExpress и в магазинах такого типа.

У себя я нашёл три ленты: одна на базе контроллера WS2801 (25 светодиодов) и две на базе контроллера WS2811 (20 и 15 светодиодов). Итого получается 60 светодиодов щенячей радости.
Две WS2811 я соединил вместе последовательно.

Так как у меня используются 12-ти и 5-ти вольтовые ленты вместе, то я запитал всю схему от 12В/1A блока питания с преобразованием в 5 вольт для питания второй ленты и платы микроконтроллера. Преобразовывал я импульсным DC-DC модулем KIS-3R33S на базе MP2307DN, которые даёт до 3A на выходе и почти не греется. Конечно, модуль можно заменить чем-то типа 7805, но надо будет позаботиться о правильном охлаждении (это порядка 1-1,5 ватта на каждые 10 светодиодов).

RGB елочная гирлянда на Arduino

Список компонентов:

  • Индивидуально-адресуемые светодиодные ленты на базе WS2801, WS2811 и т.п.
  • 12В/1A блок питания. При максимальной яркости 60 светодиодов потребляли примерно 800 мА. Я включаю их на пол-яркости и получаю 400 мА потребления
  • Модуль микроконтроллера Teensy 3.1. Так же подойдёт Arduino или другой подходящий модуль или микроконтроллер
  • DC-DC преобразователь KIS-3R33S. Тут вариантов много и всё зависит от требований питания

RGB елочная гирлянда на Arduino

Что нужно купить на AliExpress

Для сборки данной матрицы нужно купить такие компоненты:

▸ плата Arduino Nano – от 132 руб. Берите сразу несколько, стоят “ардуинки” недорого, а проектов с их участием большое множество.

▸ лента с адресными диодами WS2812B – от 660 руб. Лента продается в мотках по 50 или 100 диодов. Для интересной и заметной матрицы нужно минимум сотня огоньков.

▸ для того, чтобы спаять компоненты, потребуется паяльник. Давно купил себе популярную модель TS100 – 3541 руб. За два года использования ни разу не пожалел, это до сих пор самый продвинутый паяльник для радиолюбителей.

Тем, кто паяет редко, для пары проектов подойдет самая простая и доступная модель – 275 руб.

▸ питать готовую конструкцию можно от мощной зарядки для смартфона (5В 3А минимум) – от 257 руб., можно подключить к Power Bank, который выдает подобную мощность.

▸ еще для базовой реализации проекта потребуется сопротивление 220 ом – то 14 руб.

▸ не забывайте про канифоль и олово для пайки – от 107 руб.

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

Оцените статью
Денис Серебряков
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

RGB елочная гирлянда на Arduino
Защитная маска с доступными фильтрами (COVID-19)