Proyecto sencillo con LEDS 2812b

Hola a todos

Tengo un proyecto entre manos que implica tira de WS2812b de 49LEDS, controlada por un Arduino UNO, todo alimentado por una PSU de 5V/3A.

Es un montaje de prueba para una instalación más grande que tengo que hacer. Estoy trabajando con la librería FastLED.

Lo primero que intento conseguir es un grupo de LEDS, en posiciónes consecutivas, encendidos en un color determinado, y que a la velocidad que yo establezca ese grupo de leds se vaya moviendo, encendiendo el siguiente y apagando el último.

Después de investigar en algunos ejemplos que encontré en internet, acabé con este código, no soy programador, así que es un código sencillo, pero parece funcional.

#include <FastLED.h>

#define LED_PIN     7
//#define CLOCK_PIN 4 
#define NUM_LEDS    49
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
#define BRIGHTNESS  255

CRGB leds[NUM_LEDS];

void setup() {
    delay(5000);    
    LEDS.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
//  LEDS.addLeds<LED_TYPE, LED_PIN, CLOCK_PIN COLOR_ORDER>(leds, NUM_LEDS);
    FastLED.setBrightness(BRIGHTNESS);
}

void loop()
{
  FastLED.clear();

 for(int i=0;i<NUM_LEDS;i++){  
   leds[i-7].setRGB(0,0,0); 
   leds[i].setRGB(255,50,10);
   FastLED.show();
   delay(100);   
 }
  FastLED.clear();    
}

El problema viene cuando intento hacer más grande el grupo de LEDS encendidos, aumentando el número de la siguiente linea:

leds[i-7].setRGB(0,0,0);

Cualquier número mayor de 7 me deja de funcionar, con 8 todavía se mueve, a una velocidad mucho menos de lo que debería, y no puedo controlar esa velocidad desde ninguno de los números de delay.

Alguna idea de cual puede ser el problema?

Gracias!

No conozco esa librería, pero si definiste 49 LEDs imagino que están numerados de 0 a 48, pero resulta que i-7 en el for equivale a -7 a 41 asi que los LEDs 42 a 48 nunca los apagas .setRGB(0,0,0)

void loop(){
   FastLED.clear();
   for (byte i=0; i<NUM_LEDS; i++){
      if (i < 7){
         leds[NUM_LEDS-7+i].setRGB(0,0,0); 
      }else
         leds[i-7].setRGB(0,0,0); 
      }
      leds[i].setRGB(255,50,10);
      FastLED.show();
      delay(100);   
   }
   //FastLED.clear();    esta repetido
}