Пытаюсь зажечь адресную светодиодную ленту с диодами WS2812B. Вроди как собрал, написал скетч, всё светится без проблем. Проблема началась на этапе, когда решил поменять цвета. Оказалось, что большая часть из них - просто не отображается. Т.е. те светодиоды, которые должны гореть нужным цветом - могут гореть другим или просто не загораются, как будто им задан чёрный цвет. К примеру:
uint32_t FonColor = Display.Color(20, 20, 200); // работает
uint32_t IntColor = Display.Color(200, 200, 22); // работает
uint32_t ErrColor = Display.Color(255, 0, 0); // работает
uint32_t Col1Color = Display.Color(255, 255, 255); // работает
uint32_t Col2Color = Display.Color(0, 0, 0); // работает
uint32_t FonColor = Display.Color(0, 64, 0); // не загораются, чёрный цвет
uint32_t FonColor = Display.Color(10,100, 100); // не загораются, чёрный цвет
Так же некоторые цвета могут отображаться не корректно. К примеру эти два варианта отображаются одним красным цветом:
Display.Color(150, 50, 30);
Display.Color(255, 0, 0);
Изначально думал, что при создании объекта установлен неправильный флаг, сейчас он установлен так:
Adafruit_NeoPixel Display = Adafruit_NeoPixel(Config.AllLed, Config.Pin, NEO_GRB + NEO_KHZ800);
Но я уже просто методом тыка перепробовал все флаги подряд. Другие варианты или вообще не работают, лента совсем не загорается, или загорается всё в произвольном порядке.