const int botao1 = 2;
const int botao2 = 3;
int Padrao = B00000001; //Padrão de aceso(1) ou apagado(0)
byte pinos[5] = {4, 5, 6, 7, 8}; //Matriz com os pinos dos LEDs
void setup() {
pinMode(botao1, INPUT_PULLUP);
pinMode(botao2, INPUT_PULLUP);
for (byte i=0;i<=4;i++) { //Configura os pinos dos LEDS como OUTPUT
pinMode(pinos[i], OUTPUT);
}
atualiza(); //rotina que acende e apaga os LEDs
}
void loop() {
if ((digitalRead (botao2) == LOW) && (Padrao <= 8)){
Padrao = Padrao << 1; //move o 1 do número binário uma casa para a esquerda
atualiza(); // o que muda o LED a ser aceso
}
if ((digitalRead (botao1) == LOW) && (Padrao >= 2)){
Padrao = Padrao >> 1; //move o LED aceso para a direita
atualiza();
}
delay(100);
}
//Rotina que liga ou desliga os LEDs conforme o padrão binário
void atualiza(){
for (byte i=0;i<=4;i++) digitalWrite(pinos[i], Padrao & (1 << i));
}