Перейти к содержанию

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

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

Адресная светодиодная лента ws2812b Arduino привлекает многих радиолюбителей возможностью создавать интересные и яркие проекты. Но прежде чем приступить к созданию нового проекта, необходимо понять, как правильно подключить адресные светодиоды ws2812 или ws2811 к Arduino Nano и управлять ими. Рассмотрим примеры подключения и программирования адресной светодиодной ленты от Ардуино.

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

  • Arduino Uno / Arduino Nano / Arduino Mega
  • адресная лента ws2812 / ws2811
  • источник питания 5 / 12 Вольт
  • резистор
  • коннекторы
  • библиотека Adafruit_NeoPixel.h

Дополнительные материалы на эту тему:

  1. Библиотека FastLED Arduino примеры, описание
  2. Библиотека Adafruit NeoPixel Arduino описание
  3. LED лента Ардуино подключение, управление

Адресные ленты ws2812 и ws2811 имеют плотность от 30 до 144 светодиодов на метр и производятся в различных вариантах защиты: IP30, IP65, IP67, IP68. Все версии, кроме IP30, могут использоваться на открытом воздухе при температуре от -25°C до +80°C. Другой, более надежный, но дорогой вариант светодиодов ws2813 с питанием от 5 Вольт, характеризуются способностью передавать сигналы даже через сгоревший чип.

Светодиоды WS2812B Arduino характеристики

Светодиоды WS2812B Arduino характеристики

Характеристики WS2812B (datasheet)

  • Плотность: 30 — 144 светодиода на метр
  • Размер светодиода: 5 x 5 мм
  • Напряжение питания: максимум 5 В
  • Номинальный ток: 60 мА (все пиксели горят светят в полную силу)
  • Скорость передачи данных: 800 кГц
  • Разъем: 3-контактный JST SM

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

Подключение адресной ленты ws2812b к Arduino

Подключение адресной ленты ws2812 Arduino

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

Скетч для адресной светодиодной ленты ws2812b


// подключение библиотеки для управления лентой
#include "Adafruit_NeoPixel.h"
// пин для подключения управляющего сигнала
#define PIN  4
// количество пикселей в ленте
#define NUMPIXELS 100
// создание объекта strip
Adafruit_NeoPixel strip (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  // инициализация ленты
  strip.begin();
  // яркость ленты (максимум 255)
  strip.setBrightness(50);
}

void loop() {
  strip.setPixelColor(0, strip.Color(255, 0, 0))
  strip.show(); // отправка информации на ленту
  delay(500); // задержка 500 мс
  strip.clear(); // очистка ленты

  strip.setPixelColor(1, strip.Color(0, 0, 255));
  strip.show();
  delay(500);
  strip.clear();

  strip.setPixelColor(2, strip.Color(255, 255, 255));
  strip.show();
  delay(500);
  strip.clear();

}

Подключение адресной ленты ws2811 к Arduino

Подключение адресной ленты ws2811 Arduino

Если вы используете ws2811 — адресную светодиодную ленту с питанием 12 Вольт, ее следует подключить по этой схеме. Резистор на цифровом пине Ардуино защищает порт от выгорания (если led лента будет случайно обесточена, то на нее пойдет напряжение с цифрового вывода, который может при этом перегореть). Нумерация светодиодов начинается с нуля, если вы хотите включить первый светодиод, то нужно указать «0».

Скетч для адресной светодиодной ленты ws2811

// подключение библиотеки для управления лентой
#include "Adafruit_NeoPixel.h"
// пин для подключения управляющего сигнала
#define PIN  4
// количество пикселей в ленте
#define NUMPIXELS 100
// создание объекта strip
Adafruit_NeoPixel strip (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  // инициализация ленты
  strip.begin();
  // яркость ленты (максимум 255)
  strip.setBrightness(50);
}

void loop() {
  // включение красного цвета
  for (int i = -1; i < NUMPIXELS; i++) {
     strip.setPixelColor(i, strip.Color(255, 0, 0));
     strip.show();
     delay(100);
  }
  // включение зеленого цвета
  for (int i = -1; i < NUMPIXELS; i++) {
     strip.setPixelColor(i, strip.Color(0, 255, 0));
     strip.show();
     delay(100);
  }
  // включение синего цвета
  for (int i = -1; i < NUMPIXELS; i++) {
     strip.setPixelColor(i, strip.Color(0, 0, 255));
     strip.show();
     delay(100);
  }
}

Заключение. Светодиоды WS2812B довольно энергоемки, один светодиод потребляет до 60 мА при максимальной яркости. Для rgb ленты со 100 светодиодами потребуется источник питания силой 6 ампер и более. Arduino и светодиодная лента могут быть подключены к разным источникам питания, но земля должна быть общей. Дело в том, что контакт GND также участвует в управлении адресной лентой от платы Arduino Uno.

Комментарии 1

  • Блин 🙂 фигня у меня какая то происходит — ESP32 уходит в бесконечную перезагрузку со скетчем для ws2812b

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

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

newzaym
➜