Почему NeoPixel некорретно отображает цвета?

Пытаюсь зажечь адресную светодиодную ленту с диодами 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);


Но я уже просто методом тыка перепробовал все флаги подряд. Другие варианты или вообще не работают, лента совсем не загорается, или загорается всё в произвольном порядке.
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
@jenya92 Автор вопроса
Как оказалось, причина в том, что у меня лента лежала перед носом и чтоб не слепила - я установил в настройках яркость на единичку. Сбоственно по этому тёмные цвета и не горели. Т.к. они сами по себе тёмные, а ещё и яркость на минимуме. Стоило установить яркость на половину - и всё заработало как надо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
uint32_t FonColor = Display.Color(0, 64, 0); // не загораются, чёрный цвет
а как по твоему темно-зеленый свет выглядит?))
Display.Color(10,100, 100); // не загораются, чёрный цвет
тоже темный

Так же некоторые цвета могут отображаться не корректно. К примеру эти два варианта отображаются одним красным цветом
все ок, оба значения красный свет, 150, 50, 30 - кирпичный, 255, 0, 0 - ярко красный.

открой paint и вбей значения в RGB поля палитры цветов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы