Управление цветом и яркостью 4 светодиода Grove - RGB (WS2813 Mini)

Я подключил 4 светодиода Grove - RGB (WS2813 Mini) к D2,D3,D4,D5 на Grove Base Shield V2.0 для Arduino. Как я могу контролировать яркость и цвет каждого светодиода? На данный момент я знаю только об одном.

Код:

#include "Adafruit_NeoPixel.h"
#define PIN            2
#define NUMPIXELS      1 
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  
void setup() {
  pixels.setBrightness(125);
  pixels.begin();  
}
 
void loop() {
    pixels.setPixelColor(1, pixels.Color(255,255,255));  
    pixels.show();  
}

Спасибо

, 👍1


1 ответ


1

Вот один из множества возможных способов решения проблемы, в основном, используйте цикл for и повторите функцию первого параметра setPixelColor для решения всех светодиодов. Попробуйте поэкспериментировать здесь:

#include "Adafruit_NeoPixel.h"
#define PIN            2
#define NUMPIXELS      4
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pixels.setBrightness(125);
  pixels.begin();
}

void loop()
{
  pixels.clear(); // Установите для всех цветов пикселей значение " выкл."

  // Первый неопиксель в пряди равен #0, второй равен 1, вплоть до
  // на количество пикселей минус один.
  for (int i = 0; i < NUMPIXELS; i++) { // Для каждого пикселя...

    // pixels.Color() принимает значения RGB, от 0,0,0 до 255,255,255
    // Здесь мы используем умеренно яркий зеленый цвет:
    pixels.setPixelColor(i, pixels.Color(0, random(0,255), 0));

    pixels.show();   // Отправьте обновленные цвета пикселей на аппаратное обеспечение.

    delay(100); // Пауза перед следующим проходом через цикл
  }
}

вот краткий обзор:

Поскольку вы используете неопиксели, вот список смоделированных примеров. вы можете играть с кодом и создавать свои собственные проекты онлайн.

,

Спасибо, но моделирование неверно, так как у меня есть 4 светодиода Grove - RGB (WS2813 Mini) (https://www.seeedstudio.com/Grove-RGB-LED-WS2813-Mini-p-4269.html ) подключен к D2,D3,D4,D5, и я хочу управлять каждым из них отдельно., @alirazi

@alirazi, А зачем вам для этого понадобились 4 пина? На мой взгляд, WS2813 точно такой же, как стандартные неопиксели (я думаю, WS2811 или 12). Вы можете связать их цепочкой. Таким образом, вам нужен только один вывод, но вы все равно можете управлять каждым светодиодом по отдельности., @chrisl

@chrisl Вы правы, но я хочу избежать пайки и дополнительных проводов., @alirazi

https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples у вас есть несколько примеров управления несколькими адресуемыми светодиодами, @ArduinoFan