WS2811+FastLed.lib
- Войдите на сайт для отправки комментариев
Добрый день. Экспериментирую с сабжем с целью создания многоканального контроллера для 20 метровых отрезков простых rgb лент.
Макет пока с одним чипом и 3 светодиодами + ардуино нано. Подключил почти как в даташите, только без резисторов, посчитав, что просадки питания и "отражения" сигналов при подключении одного чипа не страшны.
Вот код: читает из порта три значения (0-255) и запускает шим на ws2811 посредством библиотеки FastLed.
#include "FastLED.h"
// Number of RGB LEDs in the strand
#define NUM_LEDS 1
// Define the array of leds
CRGB leds[NUM_LEDS];
// Arduino pin used for Data
#define PIN 6
void setup()
{
Serial.begin(9600);
FastLED.addLeds<NEOPIXEL, PIN>(leds, NUM_LEDS);
}
void loop() {
while (Serial.available() > 0) {
int red = Serial.parseInt();
int green = Serial.parseInt();
int blue = Serial.parseInt();
if (Serial.read() == '\n') {
Serial.print(red, DEC);Serial.print("/");
Serial.print(green, DEC);Serial.print("/");
Serial.println(blue, DEC);Serial.println ("---");
leds[0].r = red;
leds[0].g = green;
leds[0].b = blue;
FastLED.show();}
}
}
Вроде работает, но если двум или трем каналам задать одинаковые (любые) значения, все светодиоды коротко мигают и гаснут. Запитано все от юсб, чип и диоды - через 5v ардуины. Мог бы грешить на питание, но, например, команда 223,224,225 отрабатывает нормально, а 50,50,50 вызывает сбой...
Что это? Глюк библиотеки при работе с одним чипом или я где-то что-то упустил? Спасибо.
