controlling the speed/rate with a shift register outs(kinda Larson scanner)

Njay was kind enough to note a nice way of doing it !

/*este e um caso basico para que possa perceber facilmente qualquer implementacao.
*Pino conectado ao ST_CP do stop*/
int latchPin = 8;
//Pino conectado ao SH_CP of stop
int clockPin = 12;
//Pino conectado ao DS do stop
int dataPin = 11;
int delayInput = 0;//pin para entrada analogica, neste caso um potenciometro
int outDelay =0;//O valor que vamos usar para converter  a leitura do pin analogico 
                //do pot para usar como valor de delay entre accoes

// Saida para 74HC595 (Serial TO Parallel OUT)

void stopout(int numberToDisplay)
{
  // baixar o latchPin para low para que
  // os LEDs nao mudem enquanto os bits sao enviados:
  // digitalWrite(latchPin, LOW);
  // passar os bits:
  shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);

  //mudar o latch pin para HIGH para que os leds acendam:
  digitalWrite(latchPin, LOW);
  digitalWrite(latchPin, HIGH);
}

void setup() {
  //Configurar os pins para saida, para poder controlar o shift register 
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(delayInput, INPUT);//Atribuir o pin a entrada analogicado potenciometro
  //Apagar qualquer memoria que o 74HC595 possa ter da ultima configuracao dos pins 
  stopout(B00000000);
  delay(500);
}


void loop ()
{
    outDelay = analogRead (delayInput);
    for (unsigned char ctr = 0, mask = 0x80; ctr < 14; ctr++)
    {
        stopout(mask);
        delay(outDelay);
        mask = (ctr < 7? mask >> 1: mask << 1);
    }
}