Ajuda com exercicio livro Arduino Basico

bubulindo:

Mortis:
Segundo o que percebi, alteraste as condicões para nunca testar abaixo de zero e alteraste os decrementos e incrementos para fora da digitalWrite()... algum motivo para isso?

Eu colei o teu código no compilador do arduino e fui alterando o que parecia causar os problemas, com as alterações funcionou. Não testei teu código no VS, mas se tentares rodar usando o software do arduino não irá funcionar. As limitações estariam no compilador do arduino?

O que eu mudei e porque:
Com os encrementos e decrementos dentro da digitalWrite o arduino ligava todos os 6 leds em sequencia (a cada loop) e não os desligava (como citou o giovannimundim). Colocando-os para fora, os leds ligaram e desligaram, mas ainda não corretamente (se rodar neste estágio verás que a cada virada de up para down o led maxH não é desligado).

Para resolver o acima foi usado == no lugar de ><. Porem, quando o MaxH == 0 o led 0 não aparava, então forcei LED = 6 quando MaxH == 0 e tratei isso no inicio do sentido down:

if (LED == 6)
digitalWrite(ledPin[0], LOW); //depois de MaxH == 0 o LED é 5, então o zero não é apagado

apesar de que faltou ai um else ^^ deveria ficar assim:

if (LED == 6)
digitalWrite(ledPin[0], LOW); //depois de MaxH == 0 o LED é 5, então o zero não é apagado
else
digitalWrite(ledPin[LED], LOW); //desliga o anterior

Afinal não existe led na posição 6 do array :wink:

Abraço,