// Define os pinos que serão usados
const int pin1 = 2; //cor marron
const int pin2 = 4; //cor vermelho
const int pin3 = 7; //cor orange
const int pin4 = 8; //cor amarelho
void setup() {
// Não precisamos definir os pinos como INPUT ou OUTPUT aqui
// pois vamos alternar os modos durante a execução
}
// Função para configurar os pinos para acender um LED específico
void setLED(int led) {
// Primeiro, configure todos os pinos como INPUT (alta impedância)
pinMode(pin1, INPUT);
pinMode(pin2, INPUT);
pinMode(pin3, INPUT);
pinMode(pin4, INPUT);
// Agora configure os pinos específicos para cada LED
switch(led) {
case 0: // LED1: pin1 -> pin2
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
break;
case 1: // LED2: pin2 -> pin1
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
digitalWrite(pin2, HIGH);
digitalWrite(pin1, LOW);
break;
case 2: // LED3: pin1 -> pin3
pinMode(pin1, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin1, HIGH);
digitalWrite(pin3, LOW);
break;
case 3: // LED4: pin3 -> pin1
pinMode(pin1, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin3, HIGH);
digitalWrite(pin1, LOW);
break;
case 4: // LED5: pin1 -> pin4
pinMode(pin1, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin1, HIGH);
digitalWrite(pin4, LOW);
break;
case 5: // LED6: pin4 -> pin1
pinMode(pin1, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin4, HIGH);
digitalWrite(pin1, LOW);
break;
case 6: // LED7: pin2 -> pin3
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin2, HIGH);
digitalWrite(pin3, LOW);
break;
case 7: // LED8: pin3 -> pin2
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
digitalWrite(pin3, HIGH);
digitalWrite(pin2, LOW);
break;
case 8: // LED9: pin2 -> pin4
pinMode(pin2, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin2, HIGH);
digitalWrite(pin4, LOW);
break;
case 9: // LED10: pin4 -> pin2
pinMode(pin2, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin4, HIGH);
digitalWrite(pin2, LOW);
break;
case 10: // LED11: pin3 -> pin4
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin3, HIGH);
digitalWrite(pin4, LOW);
break;
case 11: // LED12: pin4 -> pin3
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
digitalWrite(pin4, HIGH);
digitalWrite(pin3, LOW);
break;
}
}
void loop() {
// Acende cada LED em sequência
for(int i = 0; i < 12; i++) {
setLED(i);
delay(500); // Aguarda meio segundo antes de mudar para o próximo LED
}
}