Помогите разобраться с цветами в FastLed.

Xomyc
Offline
Зарегистрирован: 10.04.2020
#include <FastLED.h>
#define DATA_PIN 3  //пин данных
#define NUM_LEDS 256  //количество светодиодов
#define MATRIX_WIDTH 16 //ширина матрицы            
#define MATRIX_HEIGHT 16 //высота матрицы
#define BRIGHTNESS 1  //яркость
//CRGB leds[NUM_LEDS];
CRGBArray<NUM_LEDS> leds;

void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
  FastLED.setBrightness(BRIGHTNESS);//0-255
  Serial.begin (9600);
}

void loop() {
  RadugaV(10);
}

void RadugaV(int CurSpeed){
  for (int cc=NUM_LEDS-(MATRIX_WIDTH-1);cc>=0;cc--){
    FastLED.clear();
    leds.fadeToBlackBy(40);
    for (int i=0;i<MATRIX_WIDTH;i++){
      for (int j=0;j<MATRIX_HEIGHT;j++){
        //Serial.print(cc+i);Serial.print(";");Serial.print(i);Serial.print(";");Serial.println(j);
        CHSV color = CHSV((uint8_t)(cc+i),255,255);
        setPixel(i,j,color);
      }
    }
    FastLED.show();
    delay(CurSpeed);
  }
}

void setPixel(int X, int Y, CHSV color){
   int curLed;
   if (X%2 == 0){
      curLed = MATRIX_HEIGHT*X+Y;
   }
   else {
      curLed = (MATRIX_HEIGHT*(X+1)-1)-Y; 
   }
   leds[curLed] = color;
}

Вот такой код. Задумка:

Должны по матрице бежать цветные волны по одному цвету на столбик.

И они бегут, но всего 4 цвета: красный, синий зеленый желтый. Подскажите почему промежуточные цвета не показываются?

Xomyc
Offline
Зарегистрирован: 10.04.2020

Сам разобрался. Яркость у меня всего 1 стояла.

sadman41
Offline
Зарегистрирован: 19.10.2016

Видимо HUE неверно генерируется? Упрощайте скетч, локализуйте проблему.