Адресная лента WS2812

Один провод данных на всю ленту (D6). Главное правило: setPixelColor только готовит цвет, а зажигает его show() — забыли show, лента не изменится.

Программа

// Адресная лента WS2812: каждый светодиод со своим адресом.
//
// Провод данных один на всю ленту: цвета уезжают по цепочке, и каждый светодиод
// забирает свой, а остальное передаёт дальше. Отсюда главное правило:
// setPixelColor() только готовит цвет в памяти, а зажигает его show().
// Забыли show() — лента не изменится, и это не поломка.
//
// Число светодиодов на схеме задаётся в инспекторе ленты и главнее числа в
// конструкторе: numPixels() вернёт то, что реально «впаяно».
#include <Adafruit_NeoPixel.h>

Adafruit_NeoPixel strip(8, 6, NEO_GRB + NEO_KHZ800);   // сколько, вывод, тип

void setup() {
  strip.begin();
  strip.show();                        // гасим всё на старте
}

void loop() {
  // Бегущий огонёк: гасим ленту, зажигаем один светодиод, показываем.
  for (int i = 0; i < strip.numPixels(); i++) {
    strip.clear();
    strip.setPixelColor(i, strip.Color(0, 40, 120));
    strip.show();
    delay(120);
  }
}

Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.

← Ко всем примерам