const int buttonPin = 2; // Pin donde está conectado el botón
const int ledPin = 13; // Pin donde está conectado el LED
int buttonState = 0; // Variable para almacenar el estado del botón
int ledState = LOW; // Estado actual del LED
unsigned long previousMillis = 0; // Variable para almacenar el tiempo anterior
unsigned long interval = 100; // Intervalo de parpadeo inicial
int A = 0; // Variable para almacenar las veces que se presiona el botón
void setup() {
pinMode(ledPin, OUTPUT); // Configura el pin del LED como salida
pinMode(buttonPin, INPUT); // Configura el pin del botón como entrada
}
void loop() {
// Lee el estado del botón
buttonState = digitalRead(buttonPin);
// Si el botón está presionado
if (buttonState == HIGH) {
// Incrementa la variable A
A++;
// Reinicia A si es mayor a 5
if (A > 5) {
A = 0;
digitalWrite(ledPin, HIGH); // Enciende el LED
}
// Establece el intervalo de parpadeo según el valor de A
switch (A) {
case 1:
interval = 100;
break;
case 2:
interval = 400;
break;
case 3:
interval = 800;
break;
case 4:
interval = 1600;
break;
}
}
// Si A es 0, el LED permanece encendido
if (A == 0) {
digitalWrite(ledPin, HIGH); // Enciende el LED
} else {
// Parpadeo del LED con el intervalo establecido
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis; // Actualiza el tiempo anterior
// Invierte el estado del LED
ledState = !ledState;
digitalWrite(ledPin, ledState); // Actualiza el estado del LED
}
}
}