Как очистить две полосы FastLED ws2812b по отдельности? Одна полоса подключается к контакту 7 UNO, а другая полоса — к контакту 6 UNO.

Источник питания внешний. Я хочу очистить одну полосу, скажем, контакт 7, и в то же время я не хочу, чтобы другая полоса, скажем, контакт 6, выключалась ... Я использую FastLED.очистить(); FastLED.show(); Но он очищает все светодиодные ленты, подключенные к контактам 6 и 7. Какой код отключает только одну полосу?

, 👍1


1 ответ


1

Вы можете использовать два экземпляра CLEDController, которыми вы можете управлять по отдельности, а с помощью clearLedData вы можете очищать либо одну, либо другую светодиодную ленту (в зависимости от CLEDController экземпляр).

Ниже приведен код, который я скопировал из https://forum.arduino.cc/t/xrads-fastled-fastled- ясно-вопрос/693569/8 который содержит больше информации:

#include <FastLED.h>

#define COLOR_ORDER GRB
#define LED_TYPE WS2812B

#define DATA_PIN 9
#define NUM_LEDS 26
CRGB leds[NUM_LEDS];

#define HEADLIGHTS 10   //светодиодный штифт для фар
#define NUM_HEADLIGHTS 2
CRGB leds2[NUM_HEADLIGHTS];

CLEDController &ledController = FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
CLEDController &headlightController =   FastLED.addLeds<LED_TYPE, HEADLIGHTS, COLOR_ORDER>(leds2, NUM_HEADLIGHTS);

void setup() {
  ledController.setCorrection(TypicalLEDStrip);
  headlightController.setCorrection(TypicalLEDStrip);

  ledController.clearLedData();
  headlightController.clearLedData();
  FastLED.show();
}

void loop() {
}
,

Большое спасибо, Мишель, это сработало замечательно!, @Dhruv Rastogi