Адресная лента 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);
}
}
Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.