Различные программы
Библиотеки с программами для платы Arduino можно загрузить с официального сайта или найти в Интернете на других информационных ресурсах. Если есть навыки, можете даже самостоятельно написать скетч-программу (исходный код). Для сбора электрической цепи не требуется каких-то специфичных знаний.
Варианты применения системы под управлением Arduino:
- Освещение. Наличие датчика позволит задать программу, в соответствии с которой свет в комнате либо появляется сразу, либо плавно включается параллельно заходу солнца (с увеличением яркости). Для включения можно использовать Wi-Fi, телефон и интеграцию в систему «Умный дом».
- Освещение коридора и лестничных площадок. Arduino позволит организовать освещение каждой детали (к примеру, ступени) отдельно. Добавьте в плату датчик движения, чтобы адресные светодиоды загорались последовательно в зависимости от того места, где зафиксировано движение объекта. Если движения нет, диоды будут гаснуть.
- Светомузыка. Воспользуйтесь фильтрами и подайте на аналоговый вход звуковые сигналы, чтобы на выходе организовать светомузыку (эквалайзер).
- Модернизация компьютера. Некоторые датчики позволят создать зависимость цвета светодиодов от температуры процессора, его загрузки, нагрузки на оперативную память. Используется протокол DMX 512.
Микросхемы Arduino расширяют возможности применения монохромных и многоканальных (RGB) светодиодных лент.
Помимо слияния различных цветов, образования сотен тысяч оттенков сможете создать неповторимые эффекты — затухание при заходе солнца, периодическое включение/выключение при фиксации движения и многое другое.
Для управления этими устройствами используется RGB-контроллер. Но, кроме него, в последние годы применяется плата Arduino.
5Подключение RGB светодиода с общим катодомк Arduino
Если вы используете RGB светодиод с общим катодом, то подключите длинный вывод светодиода к GND платы Arduino, а каналы R, G и B – к цифровым портам Arduino. При этом нужно помнить, что светодиоды загораются при подаче на каналы R, G, B высокого уровня (HIGH), в отличие от светодиода с общим анодом.
Схема подключения RGB светодиода с общим катодом к Arduino
Если не менять вышеприведённый скетч, то каждый цвет светодиода в этом случае будет гореть 0,2 секунды, а пауза между ними составит 0,1 секунду.
Полезный совет
Если вы хотите управлять яркостью светодиода, то подключайте RGB светодиод к цифровым выводам Arduino, которые имеют функцию ШИМ (PWM). Такие выводы на плате Arduino обычно помечены знаком тильда (волнистая линия), звёздочкой или обведены кружочками.
Как подключить светодиодную ленту к Ардуино
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- источник постоянного тока 12 Вольт;
- светодиодная лента;
- полевые / биполярные транзисторы;
- реле Ардуино 12 Вольт;
- датчик движения;
- макетная плата;
- резисторы;
- провода «папа-папа», «папа-мама».
Подключение светодиодной ленты к Ардуино через реле
На картинке мы представили первый вариант подключения светодиодной ленты к Ардуино: через реле, а полевой транзистор рассмотрим далее. Первый и второй скетч, размещенные ниже, можно применять на двух схемах. Третий пример с плавным включением / затуханием можно использовать только в схеме с транзистором. После сборки схемы загрузите следующие примеры программ в плату Arduino.
Как запрограммировать светодиодную ленту
void setup() { pinMode(12, OUTPUT); // объявляем пин 12, как выход } void loop() { digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW) delay(1000); }
Пояснения к коду:
- Для зажигания LED ленты через реле можно использовать цифровой пин;
- Код повторяет программу для мигания светодиода на Ардуино;
- Для данного примера датчик движения к Ардуино можно не подключать.
Скетч для светодиодной ленты с датчиком движения
unsigned long counttime; byte w = 1; #define LED 12 // назначаем порт для реле #define PIR 2 // назначаем порт для датчика void setup() { pinMode(LED, OUTPUT); // объявляем пин LED, как выход pinMode(PIR, INPUT); // объявляем пин PIR, как вход } void loop() { delay(200); // если есть движение - включаем свет if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; } // если движения нет - включаем счетчик if (digitalRead(PIR) == LOW) { counttime = millis(); w = 0; while (w == 0) { delay(200); // если движения нет в течении 10 секунд - выключаем свет и выходим из цикла if (millis() - counttime > 10000) { digitalWrite(LED, LOW); w = 1; } // если обнаружено движение в течении 10 сек. - включаем свет и выходим из цикла if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; } } } }
Пояснения к коду:
- В выражении можно поставить любое значение в миллисекундах, при котором свет не будет выключаться;
- Задержка может влиять на скорость срабатывания датчика, но позволяет немного разгрузить процессор.
Светодиодные ленты
Светодиодная лента представляет собой цепь соединённых светодиодов. Соединены они не просто так, например обычная 12V лента состоит из сегментов по 3 светодиода в каждом. Сегменты соединены между собой параллельно, то есть на каждый приходят общие 12 Вольт. Внутри сегмента светодиоды соединены последовательно, а ток на них ограничивается общим резистором (могут стоять два для более эффективного теплоотвода):
Таким образом достаточно просто подать 12V от источника напряжения на ленту и она будет светиться. За простоту и удобство приходится платить эффективностью. Простая математика: три белых светодиода, каждому нужно по ~3.2V, суммарно это 9.6V. Подключаем ленту к 12V и понимаем, что 2.5V у нас просто уходят в тепло на резисторах. И это в лучшем случае, если резистор подобран так, чтобы светодиод горел на полную яркость.
Подключаем к Arduino
Здесь всё очень просто: смотрите предыдущий урок по управлению нагрузкой постоянного тока. Управлять можно через реле, транзистор или твердотельное реле. Нас больше всего интересует плавное управление яркостью, поэтому продублирую схему с полевым транзистором:
Конечно же, можно воспользоваться китайским мосфет-модулем! Пин VCC кстати можно не подключать, он никуда не подведён на плате.
Управление
Подключенная через транзистор лента управляется точно так же, как светодиод в предыдущей главе, то есть все примеры кода с миганием, плавным миганием и управление потенциометром подходят к этой схеме.
Про RGB и адресные светодиодные ленты мы поговорим в отдельных уроках.
Питание и мощность
Светодиодная лента потребляет немаленький ток, поэтому нужно убедиться в том, что выбранный блок питания, модуль или аккумулятор справится с задачей. Но сначала обязательно прочитайте урок по закону Ома! Потребляемая мощность светодиодной ленты зависит от нескольких факторов:
- Яркость. Максимальная мощность будет потребляться на максимальной яркости.
- Напряжение питания (чаще всего 12V). Также бывают 5, 24 и 220V ленты.
- Качество, тип и цвет светодиодов: одинаковые на вид светодиоды могут потреблять разный ток и светить с разной яркостью.
- Длина ленты. Чем длиннее лента, тем больший ток она будет потреблять.
- Плотность ленты, измеряется в количестве светодиодов на метр. Бывает от 30 до 120 штук, чем плотнее – тем больший ток будет потреблять при той же длине и ярче светить.
Лента всегда имеет характеристику мощности на погонный метр (Ватт/м), указывается именно максимальная мощность ленты при питании от номинального напряжения. Китайские ленты в основном имеют чуть меньшую фактическую мощность (в районе 80%, бывает лучше, бывает хуже). Блок питания нужно подбирать так, чтобы его мощность была больше мощности ленты, т.е. с запасом как минимум на 20%.
- Пример 1: нужно подключить 4 метра ленты с мощностью 14 Ватт на метр, лента может работать на максимальной яркости. 14*4 == 56W, с запасом 20% это будет 56*1.2 ~ 70W, ближайший блок питания в продаже будет скорее всего на 100W.
- Пример 2: берём ту же ленту, но точно знаем, что яркость во время работы не будет больше половины. Тогда можно взять блок на 70 / 2 == 35W.
Важные моменты по току и подключению:
- Подключение: допустим, у нас подключено ленты на 100W. При 12 Вольтах это будет 8 Ампер – весьма немаленький ток! Ленту нужно располагать как можно ближе к блоку питания и подключать толстыми (2.5 кв. мм и толще) проводами. Также при создании освещения есть смысл перейти на 24V ленты, потому что ток в цепи будет меньше и можно взять более тонкие провода: если бы лента из прошлого примера была 24-Вольтовой, ток был бы около 4 Ампер, что уже не так “горячо”.
- Дублирование питания: лента сама по себе является гибкой печатной платой, то есть ток идёт по тонкому слою меди. При подключении большой длины ленты ток будет теряться на сопротивлении самой ленты, и чем дальше от точки подключения – тем слабее она будет светить. Если требуется максимальная яркость на большой длине, нужно дублировать питание от блока питания дополнительными проводами, или ставить дополнительные блоки питания вдоль ленты. Дублировать питание рекомендуется каждые 2 метра, потому что на такой длине просадка яркости становится заметной уже почти на всех лентах.
- Охлаждение: светодиоды имеют не 100% КПД, плюс ток в них ограничивается резистором, и как результат – лента неслабо греется. Рекомендуется приклеивать яркую и мощную ленту на теплоотвод (алюминиевый профиль). Так она не будет отклеиваться и вообще проживёт гораздо дольше.
БИБЛИОТЕКА GYVERRGB
GyverRGB v1.15
Мощная библиотека для удобного управления RGB светодиодами и лентами для Arduino
- 1530 значений для colorWheel
- Работа в пространстве RGB
- Работа в пространстве HSV
- Установка цвета в формате HEX
- Установка цветовой температуры
- 16 предустановленных цветов
- Настройка полярности ШИМ
- Функция плавной смены цвета
- Ограничение тока (по расчёту)
- Регулировка общей яркости
- Поддержание яркости LED ленты по мере разряда АКБ
- Возможность управления 6-ю RGB диодами/лентами с одной Arduino (встроенный генератор ШИМ на ВСЕХ 20 пинах atmega328)
- Режим с настройкой частоты ШИМ
- Матрица коррекции LUT
- Коррекция по минимальному сигналу ШИМ
- CRT гамма-коррекция яркости
Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)
Список необходимого
- Мозг устройства – Ардуино Нано – 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 лента в зависимости от формата планируемой подсветки.
Всё, кроме транзисторов и резисторов дешевле купить в Китае, а вот транзисторы лучше купить в наших магазинах. Китайцы иногда присылают откровенный шлак под видом транзисторов, а резисторы продают большим количеством, хоть и довольно дёшево.
Схема проекта
Схема подключения адресной светодиодной ленты WS2812 к плате Arduino представлена на следующем рисунке.
Резистор в схеме необходим для защиты от повреждений светодиодов NeoPixel и для корректной передачи данных. Наилучшее расстояние для связи между модулем светодиодов NeoPixel и микроконтроллерной платой составляет от 1 до 2 метров.
Примечание: если вы используете адресную светодиодную ленту с большим количеством светодиодов, то в этом случае рекомендуется подключать конденсатор большой емкости (приблизительно 1000 мкФ) параллельно + и – источника питающего напряжения.
Как принять и распарсить принятую команду
Для этого мы напишем две функции: функцию принятие данных и функцию парсинга. Первая будет вызывать из функции цикла Loop и записывать в глобальную переменную “Str” принятые данные. Вторая будет парсить команды и вызывать соответствующую функцию. Парсить будем функцией “strtok”.
void loop () { getStr(); if (Str != "0") ParseCommand(); } //*************************************************** void getStr() { int cb = udp.parsePacket(); if (!cb) {} else { udp.read(packetBuffer, NTP_PACKET_SIZE); Serial.println(packetBuffer); String req = (packetBuffer); Serial.print("Request: "); Serial.println(req); Str = req; } memset(packetBuffer, 0, NTP_PACKET_SIZE); //очищаем буфер для приема следующей команды } //***************************************************--ParseCommand void ParseCommand() { String command = ""; //преобразовываем строку в нужным нам тип Str.toCharArray(buf, 127);// Str - переменная в которой хранится пришедший пакет command = String( strtok (buf, " ")); Serial.println("command: " + command + "(" + Str + ")"); if (command == "save") { SaveComand(); //Сохраняем и подключаемся к Wi-Fi } else if (command == "LightRGB") { LightRGB(); //задаем цвет свечения } else if (command == "LightFade") { LightFade(); //задаем потухание/появление } else if (command == "LightUser") { FadeUser(); } else { Str = "0"; // очищаем } }
Ниже я объясню, что за команды и что они будут делать
Как это работает
Адресная лента WS2812B поделена на сегменты, в каждом из которых расположен светодиод и конденсатор (для повышения помехоустойчивости). Относительно напряжения питания все они между собой подключены параллельно, то есть +5 В будет присутствовать на каждом сегменте. А вот передача данных осуществляется последовательно: от предыдущего сегмента к последующему. Поэтому при выходе из строя одного из светодиодов цепи все следующие сегменты перестанут светиться. Управление готовыми устройствами и модулями на базе WS2812.
B производится с помощью специализированного контроллера, внутри которого записана программа. На радиолюбительском уровне управлять работой адресной светодиодной ленты удобней всего через 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. Передача данных происходит следующим образом: ШИМ-драйвер WS2812B первого сегмента забирает из посылки первые 3 байта, пропуская остальные данные на выход DO.
Далее следует пауза длиною до 50 мкс, означающая, что второй по счёту драйвер должен принять следующие 3 байта. И так далее. Длительность паузы больше 50 мкс означает конец передачи и повторение цикла. Для работы с адресными лентами и модулями проще всего использовать библиотеки FastLED и Adafruit NeoPixel. Внутри каждой библиотеки есть готовые скетчи, на основе которых несложно научиться самостоятельно создавать новые световые эффекты. Чтобы скетч заработал с первого раза, необходимо в заголовке правильно указать количество светодиодов в ленте (NUM_LEDS) и номер порта для передачи данных (PIN).
Адресные ленты стоят дороже обычных лент, и применяются обычно там, где простые ленты по какой-то причине не применимы: полноцветные модульные сборки, декоративная подсветка с управлением «soft light», наружная реклама и т. д. Особенность таких сборок в том, что они способны изменять и цвет и яркость отдельных своих сегментов по более сложному алгоритму, нежели простые LED-ленты, даже если эти LED-ленты оснащены умными драйверами. ШИМ-сигнал управления подается со специального запрограммированного контроллера на вход ленты, и передается последовательно на вход одного чипа (digital input – DI), выходит из него (digital output – DO), затем проходит через второй чип, и т. д. Управление легко осуществить при помощи программы на ардуино.
Светодиодная лента в блоком управления.
Виды транзисторных ключей
- Биполярный;
- Полевой;
- Составной (сборка Дарлингтона).
<center>Способы подключения нагрузки</center> | ||
---|---|---|
Через биполярный транзистор | Через полевой транзистор | Через коммутатор напряжения |
При подаче высокого логического уровня (digitalWrite(12, HIGH);) через порт вывода на базу транзистора через цепочку коллектор-эмиттер потечет опорное напряжение на нагрузку. Таким образом можно включать и отключать светодиод.
Аналогичным образом работает и полевой транзистор, но поскольку у него вместо «базы» сток, который управляется не током, а напряжением, ограничительный резистор в этой схеме необязателен.
Биполярный вид не позволяет регулировать мощные нагрузки. Ток через него ограничен на уровне 0,1-0,3А.
Полевые транзисторы работают с более мощными нагрузками с током до 2А. Для ещё более мощной нагрузки используют полевые транзисторы Mosfet с током до 9А и напряжением до 60В.
Вместо полевых можно использовать сборку Дарлингтона из биполярных транзисторов на микросхемах ULN2003, ULN2803.
Микросхема ULN2003 и принципиальная схема электронного коммутатора напряжения:
Светодиодная лента Ардуино — написание кода.
Вы можете сделать эскиз самостоятельно или просто загрузить готовый код из GitHub (https://gist.github.com/anonymous/d4fa3719478c3c5a9c321cc372e9540).
Начните с определения штырей, которые будут использоваться для управления МОП-транзисторами.
В вашей настройке мы установим выводы Arduino. Мы также будем вызывать пару функций с задержкой в 5 секунд. Этих функций еще не существует, но не беспокойтесь, мы доберемся до них.
Закончив этот код, сохраните его. Проверьте код и загрузите на плату Arduino. Если вы видите ошибки, проверьте код снова на предмет каких-либо опечаток или отсутствующих точек с запятой.
Плавное включение светодиодной ленты на Ардуино
Теперь вы должны увидеть, что ваша светодиодная лента Ардуино наращивает яркость, удерживая белый оттенок в течение 5 секунд, а затем равномерно исчезает до нуля:
Если у вас возникли трудности, дважды проверьте свою проводку и код.
Последовательное включение светодиодов на Ардуино
Что такое Ардуиноfor
byte i; // задаем переменную для цифровых выходов byte LedMax = 13; // максимальное количество выходов (диодов) void setup() { // задаем пины со 2 по 13, как выходы (OUTPUT) for(i=2; i<LedMax; i++) { pinMode(i, OUTPUT); } }
Вместо прописывания в скетче всех пинов с 2 по 13, как выходы, мы воспользовались одним циклом . Сразу отметим, что использование всех выходов на Ардуино для последовательного включения светодиодов или подключения светодиодной шкалы не рационально. На практике для этого используют сдвиговый регистр 74hc165 или, еще более простой вариант драйвер светодиодов М5450В7 для микроконтроллера Ардуино.
Как работать с FastLED
Коротко рассмотрим как работать с библиотекой FastLED и самые основные инструменты.
Логика работы с адресной лентой сводится к следующему: лента представляется в виде одномерного массива, каждый элемент – светодиод, точнее его цвет. Цвет светодиода кодируется тремя байтами, то есть 256 значений на каждый канал: красный, зелёный, синий. В программе можно производить различные манипуляции с этим массивом, то есть задавать цвета светодиодам при помощи различных инструментов библиотеки. Как только построение “кадра” закончено – массив можно отправить на ленту и светодиоды включатся соответственно заданным цветам.
Для начала обозначим константами длину ленты и пин, к которому она подключена, просто чтобы проще было редактировать программу в дальнейшем:
#define LED_PIN 5 // пин #define LED_NUM 50 // количество светодиодов
Подключаем библиотеку:
#include "FastLED.h"
Создаём массив цветов, он имеет тип данных . Размер – сколько светодиодов в ленте, то есть наша константа. Пусть массив будет глобальным, чтобы доступ к нему был у всей программы:
CRGB leds;
В блоке setup нам нужно передать в библиотеку информацию о подключенной ленте, а также подключить созданный выше массив. Чтобы программа знала, откуда брать информацию о цветах. По порядку указывается тип ленты, пин, порядок цветов. В круглых скобках – имя нашего массива, а также его размер – длину ленты:
void setup() { FastLED.addLeds< WS2812, LED_PIN, GRB>(leds, LED_NUM); }
Отлично! Всё настроено и готово к работе.
Общие функции
Помимо задания цветов в массиве, существуют следующие управляющие функции:
- – выводит массив на ленту, т.е. обновляет её текущими цветами
- – очищает ленту, буквально обнуляет все цвета в массиве, задаёт “чёрный” цвет. Для применения нужно вызвать show()
- – устанавливает яркость всей ленты. Не меняет значения в массиве светодиодов, просто “приглушает” итоговую отображаемую яркость. Для применения нужно вызвать show()
- – включает автоматическое ограничение яркости по настроенному току и напряжению. Полезно для длинных лент и/или слабых блоков питания
- – залить всю ленту указанным цветом
Тип данных CRGB
Библиотека организована так, что переменной типа CRGB можно задать значение несколькими способами. Рассмотрим задание цвета первому светодиоду в нашей ленте, то есть элемент массива под номером ноль:
leds = 0xFF44DD; // цвет в HEX формате leds.setRGB(255, 68, 221); // RGB, 0-255 leds.setHSV(224, 187, 255); // HSV, 0-255 leds.setHue(224); // Hue из HSV, S и V будут 255 // готовый цвет. весь список тут https://github.com/FastLED/FastLED/wiki/Pixel-reference#colors leds = CRGB::Red;
Подробнее про цветовые модели RGB и HSV можно почитать вот здесь.
Ардуино и адресная светодиодная лента
Этот проект – простой способ начать работу, но идеи, которые он охватывает, могут быть расширены для действительно эффектного освещения. С помощью всего лишь нескольких компонентов вы можете создать свой собственный восход солнца. Если у вас есть стартовый комплект с Arduino, вы можете использовать любую кнопку или датчик для запуска светодиодов при входе в комнату, например:
Светодиодная лента Ардуино – Яркие идеи.
Эти ленты требуют меньшего количества компонентов для запуска, и есть некоторая свобода в отношении именно того, какие значения компонентов вы можете использовать. Конденсатор в этой цепи гарантирует, что светодиоды 5v получают постоянный источник питания. Резистор становится гарантом того, что сигнал данных, полученный от Arduino, не загружен всяческими помехами.
Вам понадобится:
● Светодиодная лента 5v WS2811/12/12B; Все три модели имеют встроенные микросхемы и работают одинаково.
● 1 x Arduino Uno или аналогичная совместимая плата;
● 1 x резистор 220-440 Ом;
● 1 x конденсатор microFarad 100-1000 (все, что между этими двумя значениями, отлично подойдет);
● Макет и монтажные провода;
● Блок питания 5 В.
Настройте схему, как показано на рисунке:
Обратите внимание, что конденсатор должен быть правильной ориентации. Вы можете понять, какая сторона прикрепляется к рейке земля, ища знак минуса (-) на корпусе конденсатора
На этот раз мы задействуем Arduino, используя источник питания 5 В. Это позволит устройству работать автономно
Вы можете понять, какая сторона прикрепляется к рейке земля, ища знак минуса (-) на корпусе конденсатора. На этот раз мы задействуем Arduino, используя источник питания 5 В. Это позволит устройству работать автономно.
Во-первых, убедитесь, что ваша плата может работать с 5 В, прежде чем присоединить ее к источнику питания. Почти все платы работают на 5V через USB-порт, но штыри питания на некоторых могут иногда пропускать регуляторы напряжения и превращать их в поджаренные тосты.
Кроме того, рекомендуется убедиться, что несколько отдельных источников питания не подключены к Arduino – отсоединяйте USB-кабель всякий раз, когда используете внешний источник питания.
Светодиодная лента Ардуино – Бегущий огонь или световая волна
Чтобы безопасно запрограммировать нашу плату, отсоедините линию VIN от линии электропередач. Вы подключите ее позже обратно.
Присоедините свой Arduino к компьютеру и откройте Arduino IDE. Убедитесь, что у вас правильный номер платы и порта, выбранный в меню «Сервис»> «Сервис и инструменты»> «Порт».
Мы будем использовать библиотеку FastLED для тестирования нашей установки. Вы можете добавить библиотеку, нажав на Эскиз> Включить библиотеку> Управление библиотеками и поиск FastLED. Нажмите «Установить», и библиотека будет добавлена в среду IDE.
В разделе «Файл»> «Примеры»> «FastLED» выберите эскиз DemoReel100. В этом эскизе задействованы различные эффекты, которые можно сделать с помощью светодиодных полос WS2812, и невероятно легко настроить.
Все, что вам нужно изменить, — это переменная DATA_PIN, чтобы она соответствовала значку 13 и переменной NUM_LEDS для определения количества светодиодов, находящихся в полосе, которую вы используете. В этом случае я применяю только небольшую линию из 10 светодиодов, вырезанных из более длинной полосы.
Используйте большее количество для красивейшего светового шоу!