/*
Aulas 10 e 11 - Projeto Moteto com LEDs.
Blinks diferentes para controle independente
de cada LED. Assim, cada blink representaria
visualmente os diferentes grupos da obra
"Forty Part Motet", de Janetr Cardiff.
*/
// Define os pinos dos LEDs.
const int pinoLEDs[] = {2, 3, 4, 5, 6, 7, 8, 9};
// Define os intervalos de piscar para cada LED (em milissegundos).
const long intervaloBlink[] = {900, 800, 700, 600, 500, 400, 300, 200};
// Armazena a última vez que cada LED piscou.
unsigned long tempoAnterior[] = {0, 0, 0, 0, 0, 0, 0, 0};
void setup() {
// Configura todos os pinos como saída.
for (int i = 0; i < 8; i++) {
pinMode(pinoLEDs[i], OUTPUT);
}
}
void loop() {
// Obtém o tempo atual.
unsigned long tempoAtual = millis();
// Verifica cada LED.
for (int i = 0; i < 8; i++) {
// Se o tempo atual for maior que o último piscar mais o intervalo.
if (tempoAtual - tempoAnterior[i] >= intervaloBlink[i]) {
// Atualiza o último tempo de piscar.
tempoAnterior[i] = tempoAtual;
// Muda o estado do LED.
digitalWrite(pinoLEDs[i], !digitalRead(pinoLEDs[i]));
}
}
}