const int ledPin = 2; // Pino do LED (usando o LED embutido)
unsigned long startTime;
bool initialDelayPassed = false;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH); // Inicia com LED aceso
Serial.begin(9600);
startTime = millis();
Serial.println("LED iniciado - Estado normal (aceso por 10 segundos)");
}
void loop() {
// Aguarda 10 segundos antes de começar a piscar
if (!initialDelayPassed) {
if (millis() - startTime >= 10000) {
initialDelayPassed = true;
startTime = millis(); // Reinicia o timer para os padrões
}
return;
}
// Padrões originais
runPattern(1, 500, 5); // 1 piscada/seg (500ms)
runPattern(2, 250, 10); // 2 piscadas/seg (250ms)
runPattern(3, 167, 15); // 3 piscadas/seg (~167ms)
// Novo padrão 4: 1 piscada em 1s + 2 piscadas em 1s
Serial.println("Padrão 4: 1 piscada + 2 piscadas em sequência");
for(int i = 0; i < 8; i++) { // Repete 8 vezes o padrão completo
// 1 piscada em 1 segundo
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
// 2 piscadas em 1 segundo
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
}
// Novo padrão 5: 2 piscadas em 1s + 2s aceso
Serial.println("Padrão 5: 2 piscadas + 2s aceso");
for(int i = 0; i < 5; i++) { // Repete 5 vezes o padrão completo
// 2 piscadas em 1 segundo
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
// 2 segundos aceso
digitalWrite(ledPin, HIGH);
delay(2000);
}
// Reinicia o ciclo
initialDelayPassed = false;
digitalWrite(ledPin, HIGH);
startTime = millis();
Serial.println("Voltando ao estado normal (aceso) por 10 segundos");
}
// Função para executar os padrões básicos
void runPattern(int patternNumber, int interval, int cycles) {
Serial.print("Padrão ");
Serial.print(patternNumber);
Serial.print(": ");
Serial.print(1000/interval);
Serial.println(" piscadas/segundo");
for(int i = 0; i < cycles; i++) {
digitalWrite(ledPin, HIGH);
delay(interval);
digitalWrite(ledPin, LOW);
delay(interval);
}
}