#include <Servo.h>
const int buzzer = 8; // PIN DEL BUZZER
const int botonPin = 2; // PIN DEL BOTON
const int led1Pin = 3; // PIN DEL PRIMER LED
const int led2Pin = 4; // Pin DEL SEGUNDO LED
const int tiempoParpadeo = 5000; // 30 segundos en milisegundos
const int tiempoParpadeoIndividual = 500; // Tiempo de parpadeo individual (500 ms)
Servo myservo;
bool parpadeando = false;
unsigned long tiempoInicioParpadeo = 0;
void setup() {
myservo.attach(9);
pinMode(botonPin, INPUT_PULLUP); // CONFIGURANDO BOTON COMO UNA ENTRADA
pinMode(led1Pin, OUTPUT); // // CONFIGURANDO LEDS COMO SALIDA
pinMode(led2Pin, OUTPUT); // // CONFIGURANDO LEDS COMO SALIDA
pinMode(buzzer, OUTPUT); // // CONFIGURANDO BUZZER COMO SALIDA
myservo.write(0);
}
void loop() {
if (digitalRead(botonPin) == LOW) { // Si el botón está presionado
if (!parpadeando) {
parpadeando = true;
tiempoInicioParpadeo = millis();
myservo.write(90);
}
}
if (parpadeando) {
if (millis() - tiempoInicioParpadeo < tiempoParpadeo) { // Si ha pasado menos de 30 segundos
if (millis() % tiempoParpadeoIndividual < tiempoParpadeoIndividual / 2) { // Parpadeo individual (500 ms)
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(buzzer, LOW);
}
} else {
parpadeando = false;
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(buzzer, LOW);
myservo.write(0);
}
} else {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(buzzer, LOW);
}
}