Programando ws2812B

Hola buenas a todos, estoy creando un codigo para un proyecto led con los neopixel y tengo un problema que igualemente me podeis ayudar.
Por ahora todo va bastante vez controlo 3 tiras a la vez y todo iba perfecto hasta ahora . El el codigo que tengo hecho los led se van encendiendo de un lado al otro y en diferentes colores, mi problema es que cuando llega al final osea el color verde este bucle se repite y yo no deseo esto, lo que ando buscando es que cuando llegue al final (para mi color verde)de pare y queden todos encendidos en verde muchas gracias a todos por adelantado .

#include <Adafruit_NeoPixel.h>  //Libreria que usamos
#ifdef Arduino
  #include "esp32_digital_led_lib.h"
#else
  #include "Arduino.h" 
#endif
//Pin donde esta conectada la tira de led 
#define L1 26
#define L2 24
#define L3 16
//Pines de entrada de señal de los botones
#define UP 6
#define DOWN 7
#define LEFT 9
#define RIGHT 8
#define START 12
#define HOME 11
#define SELECT 10
#define B_1K 6
#define B_2K 7
#define B_3K 8
#define B_4K 9
#define B_1P 2
#define B_2P 3
#define B_3P 4
#define B_4P 5
//Descripcion de las lineas a iluminar y sus caracteristicas
Adafruit_NeoPixel BA = Adafruit_NeoPixel(6, 26, NEO_GRB + NEO_KHZ800); //Configuracion para linea B.auxiliares
Adafruit_NeoPixel BP = Adafruit_NeoPixel(16, 21, NEO_GRB + NEO_KHZ800); //Configuracion para linea B.Principales
Adafruit_NeoPixel JH = Adafruit_NeoPixel(4, 16, NEO_GRB + NEO_KHZ800); //Configuracion para linea Joystick o Hitbox(Para hitbox añadir 4 pixel más)
//Número de Leds o pixel de la tira led que queremos controlar 
//Pin digital del Arduino al que esta conectado la cadena
//Es el tipo de cadena si es RGBW o RGB se escribe GRBW o GRB la libreria es así
 void setup() {
  BA.begin();        
  BA.show();  
  BP.begin();
  BP.show();  
  JH.begin();
  JH.show();
  Serial.begin(100); //Tiempo en milisegundos 
  // Modo salida de los pines LED  
  pinMode(24 , OUTPUT); //Salida botones principales  
  pinMode(21 , OUTPUT); //Salida botones principales  
  pinMode(16 , OUTPUT); //Salida botones principales  
  //Salida de los Pines
  pinMode(UP, INPUT);
  pinMode(DOWN, INPUT);
  pinMode(LEFT, INPUT);
  pinMode(RIGHT, INPUT);
  pinMode(START, INPUT);
  pinMode(HOME, INPUT);
  pinMode(SELECT, INPUT);
  pinMode(B_1K, INPUT);
  pinMode(B_2K, INPUT);
  pinMode(B_3K, INPUT);
  pinMode(B_4K, INPUT);
  pinMode(B_1P, INPUT);
  pinMode(B_2P, INPUT);
  pinMode(B_3P, INPUT);
  pinMode(B_4P, INPUT);
  //Primer Efecto Todos los LED encendidos en el color elegido en modo linea 
 //Tira BOTONES AUXILIAR
   BA.setBrightness(150); //Intensidad linea auxiliar ( 0/255 MAX)
   for(int i = 0; i < 6; i++){
   BA.setPixelColor(i, 0, 0, 255); //inicia en azul 
   BA.show();
   delay(500); //Velocidad de transicion
   BA.setPixelColor(i, 0, 0, 0); //apaga el led anterior
   BA.show();
   }   
   for(int i = 5; i >= 0; i--){
   BA.setPixelColor(i, 255, 0, 0, 0); //vuelta en rojo 
   BA.show();
   delay(500);}
   for(int i = 5; i >= 0; i--){
     BA.setPixelColor(i, 0, 255, 0); //Termina encendido en Verde
   BA.show();
   }
 //Tira BOTONES PRINCIPALES
 BP.setBrightness(220); //Intensidad linea auxiliar ( 0/255 MAX)
 for(int i = 0; i < 16; i++){
 BP.setPixelColor(i,255, 255, 255); //inicia en azul 
 BP.show();
 delay(250); //Velocidad de transicion
 BP.setPixelColor(i, 0, 0, 0); //apaga el led anterior
 BP.show();
 }
 for(int i = 15; i >= 0; i--){
 BP.setPixelColor(i, 0, 255, 251 ); //vuelta en rojo 
 BP.show();
 delay(150);}
 for(int i = 15; i >= 0; i--){
 BP.setPixelColor(i, 0, 23, 255 ); //Termina encendido en Verde
 BP.show();
 }
 // Tira JOYSTICK
 JH.setBrightness(150); //Intensidad linea auxiliar ( 0/255 MAX)
 for(int i = 0; i < 4; i++){
 JH.setPixelColor(i, 0, 0, 255); //inicia en azul 
 JH.show();
 delay(500); //Velocidad de transicion
 JH.setPixelColor(i, 0, 0, 0); //apaga el led anterior
 JH.show();
 }
 for(int i = 3; i >= 0; i--){
 JH.setPixelColor(i, 255, 0, 0, 0); //vuelta en rojo 
 JH.show();
 delay(500);
 JH.setPixelColor(i, 0, 255, 0); } //Termina encendido en Verde
 JH.show();
  }
 void loop()
 {
  //Definicion de los pin iniciados en apagado de los botones
  digitalWrite(UP, HIGH);
  digitalWrite(DOWN, HIGH);
  digitalWrite(LEFT, HIGH);
  digitalWrite(RIGHT, HIGH);
  digitalWrite(START, HIGH);
  digitalWrite(HOME, HIGH);
  digitalWrite(SELECT, HIGH);
  digitalWrite(B_1K, HIGH);
  digitalWrite(B_2K, HIGH);
  digitalWrite(B_3K, HIGH);
  digitalWrite(B_4K, HIGH);
  digitalWrite(B_1P, HIGH);
  digitalWrite(B_2P, HIGH);
  digitalWrite(B_3P, HIGH);
  digitalWrite(B_4P, HIGH);
  delay(100);
  //Segunda Tarea al pulsar el boton 
            //1K
    if(digitalRead(6)==1){ 
     BP.setPixelColor(6, 255, 0, 255) ; // Color K1 1ºPixel.
     BP.setPixelColor(7, 255, 0, 255) ; // Color K1 1ºPixel.
     delay(50);
      }
      //2K
    if(digitalRead(7)==1){ 
     BP.setPixelColor(4, 255, 0, 255) ; // Color K2 1ºPixel.
     BP.setPixelColor(5, 255, 0, 255) ; // Color K2 1ºPixel.
     delay(50);
      }
      //3K
    if(digitalRead(8)==1){ 
     BP.setPixelColor(2, 255, 0, 255) ; // Color K3 1ºPixel.
     BP.setPixelColor(3, 255, 0, 255) ; // Color K3 1ºPixel.
     delay(50);
      }
      //4K
    if(digitalRead(9)==1){ 
     BP.setPixelColor(0, 255, 0, 255) ; // Color K4 1ºPixel.
     BP.setPixelColor(1, 255, 0, 255) ; // Color K4 1ºPixel.
     delay(50);
      }
      //1P
    if(digitalRead(2)==1){ 
     BP.setPixelColor(14, 255, 0, 255) ; // Color P1 1ºPixel.
     BP.setPixelColor(15, 255, 0, 255) ; // Color P1 1ºPixel.
     delay(50);
      }
      //2P
    if(digitalRead(3)==1){ 
     BP.setPixelColor(12, 255, 0, 255) ; // Color P2 1ºPixel.
     BP.setPixelColor(13, 255, 0, 255) ; // Color P2 1ºPixel.
     delay(50);
      }
      //3P
    if(digitalRead(4)==1){ 
     BP.setPixelColor(10, 255, 0, 255) ; // Color P3 1ºPixel.
     BP.setPixelColor(11, 255, 0, 255) ; // Color P3 1ºPixel.
     delay(50);
      }
      //4P
    if(digitalRead(5)==1){ 
     BP.setPixelColor(8, 255, 0, 255) ; // Color P4 1ºPixel.
     BP.setPixelColor(9, 255, 0, 255) ; // Color P4 1ºPixel.
     delay(50);
      }  
  BP.show(); // Esto envía el color de  cada píxel al hardware.   
 }

Se ve un código parcial. Cuando coloques todo el código será mas fácil para nosotros aconsejarte.

hola ya he subido todo el codigo.He solucionado el tema del efecto sacando el codigo del loop y moviendolo al setup, además saque dela constante el ultimo ciclo así se mantiene encendido. Ahora como podras ver tengo otro fallo. Está pensado que cuando pulse un boton el led del boton cambie de color y se apague y asi si lo pulso 20 veces seguidas el problema que tengo ahora es que si lo pulso se mantien fijo ¿que debo arreglar para que no pase ?gracias a todos de nuevo por la ayuda

En tu código pones esto

Serial.begin(100); //Tiempo en milisegundos

No es tiempo 100 milisegundos sino 100 baudios y esta MAL

Velocidades posibles 2400, 4800, 9600, 19200, etc, etc.

Luego yo haría algunos cambios para facilitar la lectura del código que no modifican en nada lo que esta haciendo como programa salvo esa serie de digitalWrite(pin, HIGH/LOW) que tienes al comenzar el loop que en lo personal creo que están mal ubicados.

Acá esta algo mas ordenado

//Descripcion de las lineas a iluminar y sus caracteristicas
Adafruit_NeoPixel BA = Adafruit_NeoPixel( 6, 26, NEO_GRB + NEO_KHZ800); //Configuracion para linea B.auxiliares
Adafruit_NeoPixel BP = Adafruit_NeoPixel(16, 21, NEO_GRB + NEO_KHZ800); //Configuracion para linea B.Principales
Adafruit_NeoPixel JH = Adafruit_NeoPixel( 4, 16, NEO_GRB + NEO_KHZ800); //Configuracion para linea Joystick o Hitbox(Para hitbox añadir 4 pixel más)
//Número de Leds o pixel de la tira led que queremos controlar
//Pin digital del Arduino al que esta conectado la cadena
//Es el tipo de cadena si es RGBW o RGB se escribe GRBW o GRB la libreria es así

void inicializo() {
      //Primer Efecto Todos los LED encendidos en el color elegido en modo linea
    //Tira BOTONES AUXILIAR
    BA.setBrightness(150); //Intensidad linea auxiliar ( 0/255 MAX)
    for (int i = 0; i < 6; i++){
        BA.setPixelColor(i, 0, 0, 255); //inicia en azul
        BA.show();
        delay(500); //Velocidad de transicion
        BA.setPixelColor(i, 0, 0, 0); //apaga el led anterior
        BA.show();
    }   
    for (int i = 5; i >= 0; i--){
        BA.setPixelColor(i, 255, 0, 0, 0); //vuelta en rojo
        BA.show();
        delay(500);
    }
    for (int i = 5; i >= 0; i--){
        BA.setPixelColor(i, 0, 255, 0); //Termina encendido en Verde
        BA.show();
    }
    //Tira BOTONES PRINCIPALES
    BP.setBrightness(220); //Intensidad linea auxiliar ( 0/255 MAX)
    for (int i = 0; i < 16; i++){
        BP.setPixelColor(i,255, 255, 255); //inicia en azul
        BP.show();
        delay(250); //Velocidad de transicion
        BP.setPixelColor(i, 0, 0, 0); //apaga el led anterior
        BP.show();
    }
    for (int i = 15; i >= 0; i--){
        BP.setPixelColor(i, 0, 255, 251 ); //vuelta en rojo
        BP.show();
        delay(150);
    }
    for (int i = 15; i >= 0; i--){
        BP.setPixelColor(i, 0, 23, 255 ); //Termina encendido en Verde
        BP.show();
    }
    // Tira JOYSTICK
    JH.setBrightness(150); //Intensidad linea auxiliar ( 0/255 MAX)
    for (int i = 0; i < 4; i++){
        JH.setPixelColor(i, 0, 0, 255); //inicia en azul
        JH.show();
        delay(500); //Velocidad de transicion
        JH.setPixelColor(i, 0, 0, 0); //apaga el led anterior
        JH.show();
    }
    for (int i = 3; i >= 0; i--){
        JH.setPixelColor(i, 255, 0, 0, 0); //vuelta en rojo
        JH.show();
        delay(500);
        JH.setPixelColor(i, 0, 255, 0); 
    } //Termina encendido en Verde
    JH.show();
}

void setup() {
    BA.begin();       
    BA.show(); 
    BP.begin();
    BP.show(); 
    JH.begin();
    JH.show();
  
    Serial.begin(100); //Tiempo en milisegundos
    // Modo salida de los pines LED 
    pinMode(24 , OUTPUT); //Salida botones principales 
    pinMode(21 , OUTPUT); //Salida botones principales 
    pinMode(16 , OUTPUT); //Salida botones principales 
    //Salida de los Pines
    pinMode(UP, INPUT);
    pinMode(DOWN, INPUT);
    pinMode(LEFT, INPUT);
    pinMode(RIGHT, INPUT);
    pinMode(START, INPUT);
    pinMode(HOME, INPUT);
    pinMode(SELECT, INPUT);
    pinMode(B_1K, INPUT);
    pinMode(B_2K, INPUT);
    pinMode(B_3K, INPUT);
    pinMode(B_4K, INPUT);
    pinMode(B_1P, INPUT);
    pinMode(B_2P, INPUT);
    pinMode(B_3P, INPUT);
    pinMode(B_4P, INPUT);

    //Definicion de los pin iniciados en apagado de los botones
    digitalWrite(UP, HIGH);
    digitalWrite(DOWN, HIGH);
    digitalWrite(LEFT, HIGH);
    digitalWrite(RIGHT, HIGH);
    digitalWrite(START, HIGH);
    digitalWrite(HOME, HIGH);
    digitalWrite(SELECT, HIGH);
    digitalWrite(B_1K, HIGH);
    digitalWrite(B_2K, HIGH);
    digitalWrite(B_3K, HIGH);
    digitalWrite(B_4K, HIGH);
    digitalWrite(B_1P, HIGH);
    digitalWrite(B_2P, HIGH);
    digitalWrite(B_3P, HIGH);
    digitalWrite(B_4P, HIGH);

    inicializo();
}
 
void loop()  {
  
    // Segunda Tarea al pulsar el boton
    // 1K
    if (digitalRead(6)==1){
        BP.setPixelColor(6, 255, 0, 255) ; // Color K1 1ºPixel.
        BP.setPixelColor(7, 255, 0, 255) ; // Color K1 1ºPixel.
        delay(50);
    }
    // 2K
    if (digitalRead(7)==1){
        BP.setPixelColor(4, 255, 0, 255) ; // Color K2 1ºPixel.
        BP.setPixelColor(5, 255, 0, 255) ; // Color K2 1ºPixel.
        delay(50);
    }
    // 3K
    if (digitalRead(8)==1){
        BP.setPixelColor(2, 255, 0, 255) ; // Color K3 1ºPixel.
        BP.setPixelColor(3, 255, 0, 255) ; // Color K3 1ºPixel.
        delay(50);
    }
    // 4K
    if (digitalRead(9)==1){
        BP.setPixelColor(0, 255, 0, 255) ; // Color K4 1ºPixel.
        BP.setPixelColor(1, 255, 0, 255) ; // Color K4 1ºPixel.
        delay(50);
    }
    //1P
    if (digitalRead(2)==1){
        BP.setPixelColor(14, 255, 0, 255) ; // Color P1 1ºPixel.
        BP.setPixelColor(15, 255, 0, 255) ; // Color P1 1ºPixel.
        delay(50);
    }
    //2P
    if (digitalRead(3)==1){
        BP.setPixelColor(12, 255, 0, 255) ; // Color P2 1ºPixel.
        BP.setPixelColor(13, 255, 0, 255) ; // Color P2 1ºPixel.
        delay(50);
    }
    //3P
    if (digitalRead(4)==1){
        BP.setPixelColor(10, 255, 0, 255) ; // Color P3 1ºPixel.
        BP.setPixelColor(11, 255, 0, 255) ; // Color P3 1ºPixel.
        delay(50);
    }
    //4P
    if (digitalRead(5)==1){
        BP.setPixelColor(8, 255, 0, 255) ; // Color P4 1ºPixel.
        BP.setPixelColor(9, 255, 0, 255) ; // Color P4 1ºPixel.
        delay(50);
    } 
    BP.show(); // Esto envía el color de  cada píxel al hardware.   
 }

Ahora como podras ver tengo otro fallo. Está pensado que cuando pulse un boton el led del boton cambie de color y se apague y asi si lo pulso 20 veces seguidas el problema que tengo ahora es que si lo pulso se mantien fijo ¿que debo arreglar para que no pase ?

No te comperndo.
Si presionas un botón, hará la secuencia que está dentro de cada caso, por ejemplo con boton pin 5 hará

BP.setPixelColor(8, 255, 0, 255) ; // Color P4 1ºPixel.
BP.setPixelColor(9, 255, 0, 255) ; // Color P4 1ºPixel.

que esta mal, o mejor dicho que se supone que debe hacer cuando no presionas ese botón?

bueno siento mi mala comunicacion pero no soy un experto y eso se nota jejeje.Pero ya lo he solucionado con este comando.Asi lee el estado del botón cada vez que lo pulso y vuelva a el color principal que era lo que andaba buscando muchas gracias.

 valuepuls = digitalRead (B_1K);
  if (valuepuls == HIGH)
  {
     BP.setPixelColor(8, 0, 23, 255) ; // Color K1 1ºPixel.
     BP.setPixelColor(9, 0, 23, 255) ; // Color K1 1ºPixel.
  }
   else  
  {
     BP.setPixelColor(8, 16, 255, 172) ; // Color K1 1ºPixel.
     BP.setPixelColor(9, 16, 255, 172) ; // Color K1 1ºPixel.
  }

Si esta resuelto acostúmbrate a indicarlo, editando tu título y agregando [SOLUCIONADO]