Содержание

Светодиодные кластеры WS2811 / 20×3 LED с винтовым креплением

Используйте светодиодные кластеры для создания динамичной подсветки.

Пример для Arduino

В качестве мозга для управления светодиодным модулем WS2811 рассмотрим платформу Arduino Uno.

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

Исходный код

Прошейте платформу Arduino скетчем приведённым ниже.

ws2811SimpleTest.ino
// библиотека для работы со светодиодными модулями WS2811/WS2812
#include <Adafruit_NeoPixel.h>
 
// номер пина, к которому подключен светодиодный модуль
#define LED_MODULE_PIN    6
// количество кластеров
#define CLASTER_COUNT     20
 
// создаём объект класса Adafruit_NeoPixel
Adafruit_NeoPixel matrix = Adafruit_NeoPixel(CLASTER_COUNT, LED_MODULE_PIN, NEO_GRB + NEO_KHZ800);
 
void setup() 
{
  // инициализация светодиодного модуля
  matrix.begin();
}
 
void loop()
{
  // заполняем светодиодный модуль по кластерам «бегущий огонь» красного цвета
  colorWipe(matrix.Color(255, 0, 0), 50);
  // заполняем светодиодный модуль по кластерам «бегущий огонь» зелёного цвета
  colorWipe(matrix.Color(0, 255, 0), 50);
  // заполняем светодиодный модуль по кластерам «бегущий огонь» синего цвета
  colorWipe(matrix.Color(0, 0, 255), 50);
  // тушим светодиодный модуль по кластерам «бегущая тень»
  colorWipe(matrix.Color(0, 0, 0), 50);
}
 
// функция заполнения каждого сегмента (кластера)
void colorWipe(uint32_t c, uint8_t wait)
{
  for (uint16_t i = 0; i < matrix.numPixels(); i++) {
    // заполняем текущий сегмент выбранным цветом
    matrix.setPixelColor(i, c);
    matrix.show();
    // ждём
    delay(wait);
  }
}

Пример для Espruino

В качестве мозга для управления светодиодным модулем WS2811 рассмотрим платформу Iskra JS.

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

Исходный код

Прошейте платформу Iskra JS скриптом приведённым ниже.

ws2811SimpleTest.js
// инициализируем шину SPI
SPI1.setup({baud:3200000, mosi:P6, sck:A5, miso:P2});
// количество светодиодов
var ledCount = 20;
// создаём объект для работы со светодиодным модулем WS2811/WS2812 
var ledModule = require('@amperka/led-strip').connect(SPI1, ledCount, 'GRB');
// гасим все светодиоды
ledModule.clear();
// устанавливаем максимальную яркость светодиодного модуля
ledModule.brightness(1);
 
setInterval(function() {
  // заполняем светодиодный модуль по кластерам «бегущий огонь» красного цвета
  for (var i = 0; i < ledCount; i++) {
    ledModule.putColor(i, [1, 0, 0]);
    ledModule.apply();
  }
}, 100);

Элементы платы

Габаритный чертёж

Характеристики

Ресурсы