#define NUM_OUTPUTS 5
int outputs[NUM_OUTPUTS] = { 2, 3, 4, 5, 6 };
bool used[NUM_OUTPUTS] = { false };
int main(void) {
// Configura todas as saídas como saídas
for (int i = 0; i < NUM_OUTPUTS; i++) {
pinMode(outputs[i], OUTPUT);
}
randomSeed(analogRead(A0));
while (true) {
// Sorteia uma saída
int index = random(NUM_OUTPUTS);
// Verifica se a saída já foi usada
if (used[index]) {
// Se sim, sorteia novamente
continue;
}
// Marca a saída como usada
used[index] = true;
// Acende o LED na saída sorteada
digitalWrite(outputs[index], HIGH);
// Espera 1 segundo
delay(1000);
// Apaga o LED na saída sorteada
// digitalWrite(outputs[index], LOW);
// Verifica se todas as saídas foram usadas
bool all_used = true;
for (int i = 0; i < NUM_OUTPUTS; i++) {
if (!used[i]) {
all_used = false;
break;
}
}
}
}