Oi pessoal, estou quebrando a cabeça para tentar substituir o delay pelo millis() mas não estou conseguindo, a ideia é ligar 6 leds usando as saidas PWM para dimerizar eles fiz um for aumentado a intensidade do brilho passo a passo e deixando eles acessos depois de um delay eles começam a apagar suavemente, funciona perfeitamente com o delay mas com o millis() não tive muito sucesso, se alguem puder dar uma dica ficaria grato, já tentei usar varios exemplos aqui do fórum e da IDE do blink sem delay mas no meu caso o laço for dificulta um pouco. segue abaixo o código que uso com o delay.
// Ativar o fade nas luzes
Serial.println("ligando luzes");
for (int i = 0; i <= 110; i += 2) {
analogWrite(ledPin, i);
delay(20);
}
for (int j = 0; j <= 110; j += 2) {
analogWrite(ledPin2, j);
delay(20);
}
for (int k = 0; k <= 110; k += 2) {
analogWrite(ledPin3, k);
delay(20);
}
for (int i = 0; i <= 110; i += 2) {
analogWrite(ledPin4, i);
delay(20);
}
for (int j = 0; j <= 110; j += 2) {
analogWrite(ledPin5, j);
delay(20);
}
for (int k = 0; k <= 110; k += 2) {
analogWrite(ledPin6, k);
delay(20);
}
delay(2000);
Serial.println("Desligando luzes");
for (int l = brilho; l >= 0; l -= 2) {
analogWrite(ledPin, l);
delay(20);
}
for (int p = brilho; p >= 0; p -= 2) {
analogWrite(ledPin2, p);
delay(20);
}
for (int r = brilho; r >= 0; r -= 2) {
analogWrite(ledPin3, r);
delay(20);
}
for (int l = brilho; l >= 0; l -= 2) {
analogWrite(ledPin4, l);
delay(20);
}
for (int p = brilho; p >= 0; p -= 2) {
analogWrite(ledPin5, p);
delay(20);
}
for (int r = brilho; r >= 0; r -= 2) {
analogWrite(ledPin6, r);
delay(20);
}