Преобразование идентификаторов WS2812-LED-Strip-ID при разрезании полосы на несколько параллельных
Допустим, у меня есть 1 метр ленты WS2812 с 60 светодиодами на метр. Теперь я разрезал полосу на 6 отдельных полос, но сохранил проводку такой же и расположил их параллельно. Это будет выглядеть примерно так
1 | 11 | 21 ...
2 | 12 | 22 ...
3 | 13 | 23 ...
...
10 | 20 | 30 ...
Есть ли какая-нибудь библиотека, которая позволила бы мне легко перевести это? Если я, например, хочу работать со строками, покрасить определенную строку в определенный цвет, обработать определенные подполосы, как если бы они были отдельными, и т. д. и т. д. Я уверен, что не могу быть первым, у кого возникла эта проблема?
@Julian Finn, 👍0
1 ответ
Нет, библиотеки нет.
Это простая математика.
Если все ваши полосы одинаковые, то вы просто умножаете номер полосы на количество светодиодов в каждой ленте и добавляете количество светодиодов, которые вы хотите в этой ленте.
Итак, предположим, что на полосе 10 светодиодов:
lednumber = 10 * strip + led;
Вы можете сделать небольшой макрос, который сделает это за вас, если хотите:
#define STRIP2LED(S, L) (((S) * 10) + (L))
Тогда вы можете использовать такие вещи, как:
// Установить все светодиоды на полосе 3 в красный цвет
for (uint8_t i = 0; i< 10; i++) {
leds[STRIP2LED(3, i)] = CRGB::Red;
}
- Управлять несколькими полосками WS2812B с разным количеством светодиодов.
- Функция NeoPixel Gradient Sweep
- WS2812b - Интерполировать пиксели на неопиксельной матрице с маской
- Как определить, какой номинал резистора использовать для светодиодной ленты
- WS2812B работает только пока измеряю напряжение
- NodeMCU сгорел, я что-то сделал не так?
- Светодиодная лента WS2812B + First Pixel продолжает ломаться
- Использование кольца NeoPixel без Arduino