Урок по Arduino №1: подключаем, настраиваем, мигаем одноцветными и RGB-светодиодами

Управление RGB светодиодом на ардуино

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

Для того что бы лучше различать оттенки цветов нужно использовать какой-то рассеиватель. Это может быть полупрозрачный пластик или просто лист бумаги. Еще лучше использовать матовые светодиоды. Также вы можете аккуратно наждачной бумагой или напильником сделать прозрачный светодиод матовым. О рассеивании света можете (англ).

Надеюсь у вас все получилось и вы разобрались как работает RGB светодиод и как управлять им с помощью ардуино. В качестве самостоятельной работы можете попробовать написать функцию так что бы цвет менялся плано.

Пояснения к скетчу “Blink”

Ниже представлен код скетча “Blink”.

/*

Blink

Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.

*/

// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;

// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output.

pinMode(led, OUTPUT);

}

// the loop routine runs over and over again forever:

void loop() {

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

Первое, на что стоит обратить внимание: в данном скетче множество “комментариев”. Обратите внимание, что комментарии не являются инструкцией по работе программы

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

int led = 13;

// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin as an output.

pinMode(led, OUTPUT);

}

Каждый скетч Arduino обязан включать в себя функцию “setup” и часть, в которую вы можете добавлять собственные инструкции, заключенные между { }.
В нашем примере в функции присутствует только одна команда, в которой указано, что пин, который мы используем, настраивается на “вывод” (“Output”).
Также обязательным для любого скетча является функция цикла “Loop”. В отличие от функции “Setup ”, которая отрабатывает один раз после перезагрузки, функция “Loop” после окончания работы команд, вновь запустится.

// the loop routine runs over and over again forever:

void loop() {

digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)

delay(1000); // wait for a second

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW

delay(1000); // wait for a second

}

В теле функции “Loop” светодиод включается (HIGH), данное значение задерживается на 1000 миллисекунд (1 секунда), светодиод отключается (LOW) и остается выключенным на 1 секунду, после чего цикл повторится.

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

Что такое Ардуино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 для микроконтроллера Ардуино.

Как подключить светодиод к Arduino Uno / Nano

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • несколько светодиодов и резисторов 220 Ом;
  • провода «папа-папа».

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

Быстрая сборка схем на макетной плате


Одну и ту же схему можно собрать разными способами
Длинная ножка светодиодов — анод, она всегда подключается к плюсу

Для чего светодиод включают к Ардуино с резистором? Дело в том, что в светодиоде стоит кристалл который боится больших токов. Резистор призван ограничивать силу тока (Амперы), чтобы светодиод не перегорел. Большой ток губителен для светодиода, меньший ток (благодаря подключению резистора) обеспечивает длительную работу. Чтобы подключить светодиод к Ардуино без резистора, используйте 13 порт.


Кабель с разъемами USB-A и USB-B для подключения принтера

Если у вас не установлена программа Arduino IDE, то скачайте последнюю версию на официальном сайте www.arduino.cc. С помощью USB кабеля производится запись программ, также плата получает питание от компьютера. Если требуется автономная работа электронного устройства, то плату можно запитать от батарейки или блока питания на 7-12 В. При подаче питания на плате загорится светодиод индикации.


Убедитесь, что программа определила ваш тип платы Ардуино

Шаг 1. Зайдите в основном меню «Инструменты -> Плата». Если плата Arduino определилась неправильно, то выберите необходимый тип, например, Arduino Uno.

Шаг 2. Установите порт (кроме COM1) подключения в меню «Инструменты -> Порт», так как при подключении Ардуино к ПК создается виртуальный COM-порт.


Убедитесь, что программа определила порт подключения Ардуино

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

void setup() {
pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
digitalWrite(13, HIGH); // зажигаем светодиод

delay(1000); // ждем 1 секунду

digitalWrite(13, LOW); // выключаем светодиод

delay(1000); // ждем 1 секунду
}

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


Скопируйте код и вставьте скетч в программу Arduino IDE

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

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


Перед загрузкой программы, потребуется сохранить скетч

Пояснения к коду:

  1. процедура выполняется при запуске микроконтроллера один раз. Используется для конфигурации портов микроконтроллера и других настроек;
  2. после выполнения запускается процедура , которая выполняется в бесконечном цикле. Это мы используем, чтобы светодиод мигал постоянно;
  3. процедуры и должны присутствовать в любой программе (скетче), даже если вам не нужно ничего выполнять в них — пусть они будут пустые, просто не пишите ничего между фигурными скобками.

Танцующие огни

Для безопасного программирования нашей платы отключите VIN линия от линии электропередач. Вы прикрепите его позже.

Подключите Arduino к компьютеру и откройте IDE Arduino. Проверьте, правильно ли выбрана плата и номер порта в Инструменты> Доска а также Инструменты> Порт меню.

Мы будем использовать FastLED библиотека для проверки нашей установки. Вы можете добавить библиотеку, нажав на Эскиз> Включить библиотеку> Управление библиотеками и поиск FastLED. Нажмите «Установить», и библиотека будет добавлена ​​в IDE.

Под Файл> Примеры> FastLED выберите DemoReel100 эскиз. Этот набросок циклически повторяет различные вещи, которые можно сделать с WS2812 Светодиодные полосы, и это невероятно легко установить.

Все, что вам нужно изменить, это DATA_PIN переменная, чтобы она соответствовала контакт 13, и NUM_LEDS переменная, чтобы определить, сколько светодиодов в полосе, которую вы используете. В этом случае я использую только небольшую линию из 10 светодиодов, вырезанных из более длинной полосы. Используйте больше для большего светового шоу!

Это оно! Загрузите эскиз на свою плату, отсоедините кабель USB и включите питание 5 В. Наконец, снова подключите VIN Arduino к линии электропередачи и посмотрите шоу!

Если ничего не происходит, проверьте проводку и убедитесь, что вы указали правильный вывод Arduino на демонстрационном эскизе.

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

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

Теперь, когда мы рассмотрели схему с обычной светодиодной лентой, перейдем к адресным светодиодным лентам  SPI RGB лента.

Светодиодная лента Ардуино – Яркие идеи.

Эти ленты требуют меньшего количества компонентов для запуска, и есть некоторая свобода в отношении именно того, какие значения компонентов вы можете использовать. Конденсатор в этой цепи гарантирует, что светодиоды 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 светодиодов, вырезанных из более длинной полосы.

Используйте большее количество для красивейшего светового шоу!

Загрузите эскиз на свою плату, отсоедините USB-кабель и включите источник питания 5 В.

Наконец, подключите VIN Arduino к линии электропередач и наслаждайтесь представлением.

Светодиодная лента Ардуино – Безграничные возможности

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

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

Исходный код программы (скетча)

Arduino

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include “SystemFont5x7.h”
#include “Arial_black_16.h”
#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16
DMD led_module(ROW, COLUMN);
void scan_module()
{
led_module.scanDisplayBySPI();
}
void setup()
{
Timer1.initialize(2000);
Timer1.attachInterrupt(scan_module);
led_module.clearScreen( true );
}
void loop()
{
led_module.selectFont(FONT);
led_module.drawMarquee(“Welcome to Circuit Digest”,25, (32 * ROW), 0);
long start = millis();
long timming = start;
boolean flag = false;
while (!flag)
{
if ((timming + 20) < millis())
{
flag = led_module.stepMarquee(-1, 0);
timming = millis();
}
}
}

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
35

#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include “SystemFont5x7.h”
#include “Arial_black_16.h”
#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16

DMDled_module(ROW,COLUMN);

voidscan_module()

{

led_module.scanDisplayBySPI();

}

voidsetup()

{

Timer1.initialize(2000);

Timer1.attachInterrupt(scan_module);

led_module.clearScreen(true);

}

voidloop()

{

led_module.selectFont(FONT);

led_module.drawMarquee(“Welcome to Circuit Digest”,25,(32*ROW),);

longstart=millis();

longtimming=start;

booleanflag=false;

while(!flag)

{

if((timming+20)<millis())

{

flag=led_module.stepMarquee(-1,);

timming=millis();

}

}

}

Управление светодиодом программным способом

Простое подключение светодиода к выходу микроконтроллера мало что дает. Надо освоить управление светодиодом от Arduino программным способом. Сделать это можно на языке Ардуино, который выполнен на основе С (Си). Этот язык программирования представляет собой адаптацию Си для первоначального обучения. После его освоения переход на С++ будет несложным. Чтобы писать скетчи (так называются программы для Ардуино) и отлаживать их вживую, надо выполнить следующее:

  • установить среду Arduino IDE на персональный компьютер;
  • возможно, придется установить драйвер для микросхемы связи по USB;
  • подключить плату к ПК с помощью шнура USB-microUSB.


Интерфейс среды разработки Arduino IDE – приглашение к написанию программы.


Симуляция работы Ардуино с подключенным светодиодом в Proteus 8.23.

Скетчи состоят из двух модулей:

  • setup – выполняется один раз при запуске программы, инициализирует переменные и режимы работы железа;
  • loop – выполняется циклически после блока setup до бесконечности.

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

Пример управления рассмотрен для вывода 13 – к нему уже на плате подключен светодиод (через усилитель-повторитель на плате Uno, через резистор у Nano). Для работы с выводом порта его надо настроить в режимах входа или выхода. Это удобно делать в теле setup, но не обязательно – назначение вывода можно менять динамически. То есть, в процессе выполнения программы порт может работать то на ввод, то на вывод данных.

Инициализация пина 13 Ардуино (вывод PB5 порта B микроконтроллера ATmega 328) выглядит следующим образом:

void setup ()

{

pinMode (13, Output);

}

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

void loop ()

{

digitalWrite (13, HIGH);

}

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

Чтобы погасить светодиод, надо установить выход в ноль:

digitalWrite (13, LOW);

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

Теперь можно усложнить программу на Ардуино для управления светодиодом и научиться мигать светоизлучающим элементом:

void setup ()

{

pinMode (13, Output);

}

void loop ()

{

digitalWrite (13, HIGH);

delay(1000);

digitalWrite (13, LOW);

delay(1000);

}

Команда delay(1000) создает задержку в 1000 миллисекунд или в одну секунду

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

Для наглядности рекомендуем серию видеороликов.

Освоив подключения LED к Ардуино и научившись им управлять, можно переходить на новый уровень и писать другие, более сложные программы. Например, можно научиться переключать кнопкой два или более светодиода, изменять частоту мигания посредством внешнего потенциометра, регулировать яркость свечения с помощью ШИМ, изменять цветность RGB-излучателя. Уровень задач ограничивается только фантазией.

Принцип управления нагрузкой через Ардуино

Плата Ардуино имеет два типа портов вывода: цифровой и аналоговый (ШИМ-контроллер). У цифрового порта возможно два состояния – логический ноль и логическая единица. Если подключить к нему светодиод он либо будет светиться, либо не будет.

Аналоговый выход представляет собой ШИМ-контроллер, на который подаётся сигнал частотой около 500Гц с регулируемой скважностью. Что такое ШИМ-контроллер и принцип его работы можно найти в интернете

Через аналоговый порт  возможно не только включать и выключать нагрузку, а и изменять напряжение (ток) на ней.

Синтаксис команд

Цифровой вывод:

pinMode(12, OUTPUT); — задаём порт 12 портом вывода данных;digitalWrite(12, HIGH); — подаём на дискретный выход  12 логическую единицу, зажигая светодиод.

Аналоговый вывод:

analogOutPin = 3; – задаём порт 3 для вывода аналогового значения;analogWrite(3, значение); – формируем на выходе сигнал с напряжением от 0 до 5В

Значение – скважность сигнала от 0 до 255. При значении 255 максимальное напряжение

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

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

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

Схема подключения

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

Общий анод на RGB светодиоде – это второй по счету, самый длинный контакт. Этот контакт мы подключим к земле (gnd).

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

Если вы используете RGB светодиодиод с общим анодом, вместо общего катода, самый длинный контакт на светодиоде подключается к пину +5 V вместо пина gnd.

Подключение к Arduino

Прямое подключение светодиодной ленты к Arduino уместно только в случае применения слабых LED-диодов. Для светодиодной ленты между ней и платой необходимо установить дополнительные электротехнические элементы.

Через реле

Подключите реле к плате Arduino через цифровой выход. Управляемая полоса может иметь одно из двух состояний — включения или выключения. Если нужно организовать управление RGB-лентой, понадобятся три реле.

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

С помощью биполярного транзистора

Если нужно повысить ток или напряжение на выходе, подключите биполярный транзистор. При его выборе ориентируйтесь на ток нагрузки. Ток управления не превышает 20 мА, поэтому добавьте резистор на 1 – 10 кОм для ограничения тока за счет сопротивления.

С помощью полевого транзистора

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

С помощью плат расширения

Если нет желания использовать реле и транзисторы, можно купить целые блоки — платы расширения. К ним относятся Wi-Fi, Bluetooth, эквалайзер, драйвер и т. д., которые необходимы для управления нагрузкой разных мощностей и напряжений. Это могут быть как одноканальные элементы, которые подойдут монохромным лентам, так и многоканальные (для управления цветными RGB-лентами).

Принцип работы транзистора для плавного управления светодиодной лентой

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

Подключив транзистор к аналоговому порту Ардуино, присваиваем ему значение от 0 до 255, изменяем напряжение, подаваемое на коллектор либо сток от 0 до 5В. Через цепочку коллектор-эмиттер будет проходить от 0 до 100% опорного напряжения нагрузки.

Для управления светодиодной лентой arduino необходимо подобрать транзистор подходящей мощности. Рабочий ток для питания метра светодиодов 300-500мА, для этих целей подойдет силовой биполярный транзистор. Для большей длины потребуется полевой транзистор.

Схема подключения LED ленты к ардуино:

Протокол

Теперь, когда мы разобрались, как подключить нашу ленту к Arduino, нам надо понять, как ею управлять, для этого в даташите есть описание протокола, который мы сейчас и рассмотрим. Каждый светодиод WS2812B имеет один вход (DIN) и один выход (DO). Выход каждого светодиода подключается ко входу следующего. Подавать сигналы же надо на вход самого первого светодиода, таким образом, он запустит цепь, и данные будут поступать от первого ко второму, от второго к третьему и т. д. Команды светодиодам передаются пачками по 24 бита (3 байта, один байт на каждый цвет, первым передается байт для зеленого, потом для красного, и заканчивает байт для синего светодиода.

Вывеска из светодиодной ленты.

Порядок бит – от старшего к младшему). Перед каждой пачкой идет пауза в 50 мкс. Пауза больше 100 мкс воспринимается как окончание передачи. Все биты, будь то 0 или 1, имеют фиксированное время 1.25 мкс. Бит 1 кодируется импульсом в 0.8 мкс, после чего идет пауза в 0.45 мкс. Бит 0 кодируется импульсом в 0.4 мкс, после чего идет пауза в 0.85 мкс. Собственно, наглядная диаграмма на фото ниже. Так же допускаются небольшие погрешности в 0-150 нс на каждый фронт. Ну и следует учесть, что подобное необходимо повторить для каждого светодиода на ленте, после чего сделать паузу минимум в 100 мкс. Потом можно повторить передачу.

Глядя на все эти цифры, становится ясно, что сделать все это, используя стандартные функции digitalWrite, delay и тому подобные – попросту невозможно, ввиду их долгой работы и неточности. Реализовать подобный протокол можно только использовав специальные библиотеки вроде CyberLib или написав собственную на чистом Си или, того хуже для нынешнего программиста, на Ассемблере. Но не все так плохо, как кажется. Светодиоды WS2812B довольно таки популярны в Arduino сообществе, а это значит, что нам не придётся вдаваться в такие сложности, и достаточно выбрать одно из понравившихся решений.

Поделитесь в социальных сетях:FacebookTwitterВКонтакте
Напишите комментарий