const int botonPin = 2; // El pin donde se conecta el pulsador
const int ledPin =  13; // El pin donde se conecta el LED

int estadoBoton = 0;         // Variable para leer el estado del pulsador
int estadoLed = LOW;         // Variable para establecer el estado del LED

void setup() {
  pinMode(ledPin, OUTPUT);      // Inicializa el pin del LED como salida
  pinMode(botonPin, INPUT);     // Inicializa el pin del pulsador como entrada
}

void loop() {
  estadoBoton = digitalRead(botonPin); // Lee el estado del pulsador

  // Comprueba si el pulsador está presionado.
  // Si es así, cambia el estado del LED
  if (estadoBoton == HIGH) {
    // Si el LED está apagado, enciéndelo y viceversa
    if (estadoLed == LOW) {
      estadoLed = HIGH;
    } else {
      estadoLed = LOW;
    }
    digitalWrite(ledPin, estadoLed);   // Establece el estado del LED
    delay(150); // Pequeña pausa para evitar rebotes
    while(digitalRead(botonPin) == HIGH); // Espera a que se suelte el botón
  }
}