Variar velocidad

ahi esta el codigo completo

como ya mencione en el post intente hacerlo con delay pero solo lee el 1er valor y recien cambiar cuando se resetea
:confused: :sob:

const int ShiftPWM_latchPin=8;

// ** elimine el comentario de esta parte para NO usar el puerto SPI y cambie los números de pin. Esto es 2.5 veces más lento **
// #define SHIFTPWM_NOSPI
 const int ShiftPWM_dataPin = 11;
 const int ShiftPWM_clockPin = 13;


// Si los LED se encienden si el pin es bajo, configúrelo en verdadero; de lo contrario, configúrelo en falso.
const bool ShiftPWM_invertOutputs = true;


const bool ShiftPWM_balanceLoad = false;
#define SHIFTPWM_USE_TIMER2
#include <ShiftPWM.h>  
//pulsadores
const int puls1 = 2;
const int puls2 = 3;


// Prototipos de funciones (diciéndole al compilador que estas funciones existen).
void oneByOne(void);
void inOutTwoLeds(void);
void inOutAll(void);


// Aquí establece el número de niveles de brillo, la frecuencia de actualización y el número de registros de desplazamiento.

unsigned char maxBrightness = 255;
unsigned char pwmFrequency = 75;
unsigned int numRegisters = 3;
unsigned int numOutputs = numRegisters*8;
unsigned int numRGBLeds = numRegisters*8/3;
unsigned int fadingMode = 1; //start with all LED's off.

unsigned long startTime = 0; // start time for the chosen fading mode

void setup(){
  while(!Serial){
    delay(100); 
  }
  Serial.begin(9600);

pinMode(puls1, INPUT);
pinMode(puls2, INPUT);
  
// Establece el número de registros de 8 bits que se utilizan.
  ShiftPWM.SetAmountOfRegisters(numRegisters);
  
// SetPinGrouping permite flexibilidad en la configuración del LED.
  // Si sus LED están conectados así: RRRRGGGGBBBBRRRRGGGGBBBB, use SetPinGrouping (4).
  ShiftPWM.SetPinGrouping(1); //This is the default, but I added here to demonstrate how to use the funtion
  
  ShiftPWM.Start(pwmFrequency,maxBrightness);
  printInstructions();
}

void loop()
{    
  
valor = analogRead(A0);
 if (digitalRead(puls1) == HIGH) {
  delay(500);
      fadingMode=fadingMode+1;
      
  }
 if (digitalRead(puls2) == HIGH) {
   delay(500);
      fadingMode=fadingMode-1;
     
  }
  if(fadingMode>4){
    fadingMode=1;
  }
  if(fadingMode<1){
    fadingMode=3;
  }
  Serial.println(fadingMode);
  switch(fadingMode){
  case 0:
    // Turn all LED's off.
    ShiftPWM.SetAll(0);
    break;
  case 1:
    oneByOne();
    break;
  case 2:
    inOutAll();
    break;
  case 3:
    inOutTwoLeds();
    break;
  case 4:
    
    break;
  case 5:
   
    break;
  case 6:
    
    break;
  case 7:
    
    break;
  case 8:
    
    break;
  case 9:
       
    break;   
  default:
    Serial.println("Unknown Mode!");
    delay(1000);
    break;
  }
}

void oneByOne(void){ // Funde y desvaneze todas las salidas de a una por vez
  unsigned char brightness;
  unsigned long fadeTime = 500;
  unsigned long loopTime = numOutputs*fadeTime*2;
  unsigned long time = millis()-startTime;
  unsigned long timer = time%loopTime;
  unsigned long currentStep = timer%(fadeTime*2);

  int activeLED = timer/(fadeTime*2);

  if(currentStep <= fadeTime ){
    brightness = currentStep*maxBrightness/fadeTime; ///fading in
  }
  else{
    brightness = maxBrightness-(currentStep-fadeTime)*maxBrightness/fadeTime; ///fading out;
  }
  ShiftPWM.SetAll(0);
  ShiftPWM.SetOne(activeLED, brightness);
}

void inOutTwoLeds(void){ // Fundido de entrada y salida de 2 salidas a la vez
  unsigned long fadeTime = 500;
  unsigned long loopTime = numOutputs*fadeTime;
  unsigned long time = millis()-startTime;
  unsigned long timer = time%loopTime;
  unsigned long currentStep = timer%fadeTime;

  int activeLED = timer/fadeTime;
  unsigned char brightness = currentStep*maxBrightness/fadeTime;

  ShiftPWM.SetAll(0);
  ShiftPWM.SetOne((activeLED+1)%numOutputs,brightness);
  ShiftPWM.SetOne(activeLED,maxBrightness-brightness);
}

void inOutAll(void){  // Fundido en todas las salidas a la vez
  unsigned char brightness;
  unsigned long fadeTime = 2000;
  unsigned long time = millis()-startTime;
  unsigned long currentStep = time%(fadeTime*2);

  if(currentStep <= fadeTime ){
    brightness = currentStep*maxBrightness/fadeTime; ///fading in
  }
  else{
    brightness = maxBrightness-(currentStep-fadeTime)*maxBrightness/fadeTime; ///fading out;
  }
  ShiftPWM.SetAll(brightness);
}