Рубрики
Схемы на Arduino

Подключение адресной светодиодной ленты WS2812 (NeoPixel LEDs) к Arduino

В настоящее время адресные светодиодной ленты (NeoPixel LEDs) на базе светодиодов WS2812 находят широкое применение в различных областях. В данной статье мы рассмотрим подключение подобной ленты к плате Arduino и научимся управлять ею в различных режимах.

Ранее на нашем сайте применение адресной светодиодной ленты (NeoPixel LEDs) рассматривалось в следующих проектах:

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Адресная светодиодная лента (WS2812 RGB LED Ring Module) (купить на AliExpress).
  3. Макетная плата.
  4. Соединительные провода.

Что такое NeoPixel?

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

RGB светодиод способен излучать любой цвет, комбинируя в нужной пропорции 3 основных базовых цвета – красный, зеленый и синий. Например, красного и синего цвета формирует фиолетовый цвет. То есть если каждым из базовых цветов управлять с помощью соответствующих им значений от 0 до 255, то можно сформировать любой цвет. Например, фиолетовый (magenta) цвет в этом случае будет формироваться совокупностью значений 255 0 255 (в шестнадцатеричном коде — 2550255 = # FF00FF). RGB светодиоды формируют множество цветов, основываясь на этой модели.

Для управления RGB светодиодом необходимо 3 цифровых контакта микроконтроллера (платы Arduino). То есть, к примеру, если мы хотим управлять 60 RGB светодиодами (причем цвет каждого из них настраивать независимо от других), то нам для этой цели понадобится 180 цифровых контактов. Естественно, подобный подход очень неудобен, поэтому для управления большой совокупностью RGB светодиодов, объединенных, к примеру, в ленту, стали использовать адресацию.

Адресуемые (адресные) светодиоды (addressable LEDs) – это новое поколение светодиодов, включающих помимо RGB светодиоды также микросхему (контроллер) управления им. В настоящее время для управления подобными светодиодами наиболее часто используется контроллер WS2812, который позволяет получить доступ к множеству светодиодов с помощью одного цифрового контакта по интерфейсу one wire (1-wire), используя адреса светодиодов.

Но в отличие от обычных светодиодов данные светодиоды не включаются просто при подаче на них напряжения, для управления ими необходим микроконтроллер. NeoPixel – это марка (наименование) компании Adafruit для адресуемых светодиодов.

Почему NeoPixel?

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

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

Схема проекта

Схема подключения адресной светодиодной ленты WS2812 к плате Arduino представлена на следующем рисунке.

Резистор в схеме необходим для защиты от повреждений светодиодов NeoPixel и для корректной передачи данных. Наилучшее расстояние для связи между модулем светодиодов NeoPixel и микроконтроллерной платой составляет от 1 до 2 метров.

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

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

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

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

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

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

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

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

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

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

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

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

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

Постепенное затухание свечения светодиодов в ленте

Постепенное затухание свечения светодиодов (fading) – это еще один из замечательных эффектов светодиодов NeoPixel. Чем медленнее происходит затухание, тем более впечатляющим является этот эффект.

Случайный режим свечения светодиодов

В этом примере мы будем использовать функцию random(num1, num2) чтобы сгенерировать случайное число в интервале от num1 и num2 и на основе этого выбрать цвет и светодиод.

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *