// Definir el pin del LED rojo
const int pinLedRojo = 11;

// Definir el pin del LED verde
const int pinLedVerde = 12;

// Definir el pin del botón
const int pinBoton = 2;

// Variable para almacenar el estado del botón
int estadoBoton;

// Variable para almacenar el número de pulsaciones del botón
int contadorPulsaciones = 0;

// Variable para almacenar el tiempo de la última pulsación
unsigned long tiempoUltimaPulsacion = 0;

// Definir el tiempo de espera para considerar una pulsación doble (en milisegundos)
const unsigned long intervaloDoblePulsacion = 500;

void setup() {
  // Configurar el pin del LED rojo como salida
  pinMode(pinLedRojo, OUTPUT);

  // Configurar el pin del LED verde como salida
  pinMode(pinLedVerde, OUTPUT);

  // Configurar el pin del botón como entrada con pull-up
  pinMode(pinBoton, INPUT_PULLUP);

  // Inicializar los LEDs apagados
  digitalWrite(pinLedRojo, LOW);
  digitalWrite(pinLedVerde, LOW);
}

void loop() {
  // Leer el estado del botón
  estadoBoton = digitalRead(pinBoton);

  // Si el botón está presionado (LOW)
  if (estadoBoton == LOW) {
    // Esperar un poco para el rebote del botón
    delay(50);
    // Verificar si el botón sigue presionado
    if (digitalRead(pinBoton) == LOW) {
      // Encender el LED rojo
      digitalWrite(pinLedRojo, HIGH);

      // Incrementar el contador de pulsaciones
      contadorPulsaciones++;

      // Almacenar el tiempo de la pulsación
      tiempoUltimaPulsacion = millis();

      // Esperar a que el botón sea liberado
      while (digitalRead(pinBoton) == LOW) {
        // Esperar
      }
      // Esperar un poco para el rebote del botón
      delay(50);
    }
  }

  // Apagar el LED rojo cuando el botón no está presionado
  digitalWrite(pinLedRojo, LOW);

  // Si han pasado menos de intervaloDoblePulsacion milisegundos desde la última pulsación
  if (millis() - tiempoUltimaPulsacion < intervaloDoblePulsacion) {
    // Verificar si se ha presionado el botón dos veces
    if (contadorPulsaciones >= 2) {
      // Encender el LED verde
      digitalWrite(pinLedVerde, HIGH);
    }
  } else {
    // Si ha pasado más tiempo, reiniciar el contador de pulsaciones
    contadorPulsaciones = 0;
    // Apagar el LED verde
    digitalWrite(pinLedVerde, LOW);
  }
}
$abcdeabcde151015202530354045505560fghijfghij