Ajuda com exercicio livro Arduino Basico

Olá!

Agora a pouco precisei sair ^^

tentei explicar cada passo das alterações, mas estava meio confuso.

Bom, com as alterações abaixo funcionou, mas creio que esteja meio parretado rs

#define UP       0
#define DOWN  1

byte ledPin[] = {8, 9, 10, 11, 12, 13}; 

void setup() {

//fazer setup dos pinos. 
for (int i = 0; i<6; i++) {
  pinMode(ledPin[i], OUTPUT);
}
};

void loop() {
  LEDChange(); 
  delay(300); //Nao e bonito... mas e para demonstrar. 
}

void LEDChange() {
  static unsigned char sentido = DOWN;
  static unsigned char LED = 5; 
  static unsigned char MaxH = 5; 
  
  if (sentido == UP) {   
    digitalWrite(ledPin[LED], LOW); //desliga o que estava.
    LED++;
    digitalWrite(ledPin[LED], HIGH); //liga o próximo.
    if (LED == MaxH) { //se atingimos a altura máxima... 
      sentido = DOWN; //vamos para baixo. 
      //LED = MaxH;  //mas começamos de MaxH
    } 
  } else { //sentido = DOWN
    if (LED == 6)
      digitalWrite(ledPin[0], LOW); //depois de MaxH == 0 o LED é 5, então o zero não é apagado
    
    digitalWrite(ledPin[LED], LOW);   //desliga o anterior
    LED--;
    digitalWrite(ledPin[LED], HIGH);  //liga o próximo
    
    if (LED == 0) {  //se chegamos ao chão
      //LED = 0;   // não vamos abaixo
      sentido = UP;  //vamos para cima
      MaxH--;   // mas não chegamos tão alto quanto antes. 
      
      if (MaxH == 0) { // Se atingimos repouso
        MaxH = 5;  // VOLTAMOS AO InÍCIO.
        LED = 6; 
        sentido = DOWN;      
      }
    }
  }
}

bubulindo, o que tens a dizer? Marretei demais? rs