Encender y apagar LED parpadeante

Hola. Tengo que encender y apagar con un pulsador y de la manera más simple posible, un led que parpadea. Tengo un código que puede estar encaminado, pero cuando lo pruebo no se apaga el LED.

Este es mi código:

#define PULSADOR 10
#define LED 13

bool estado = 0; 

void setup(){
 pinMode(LED, OUTPUT);
 pinMode(PULSADOR, INPUT);
}

void loop(){
   bool entrada; 
   entrada = digitalRead(PULSADOR); 
 
 if(entrada == LOW){ 
  while(estado == estado){
   digitalWrite(LED, HIGH);
   delay(500); 
   digitalWrite(LED, LOW); 
   delay(500); 
   estado = !estado; 
  }
  while(estado == !estado){
    digitalWrite(LED, LOW);
    estado = estado; 
 }
}

Desde ya, gracias. ``

Edita tu mensaje y debes poner tu codigo entre las etiquetas code.

Con delay() nunca lo lograras. Usa millis().

Moderador
Por favor edita tu post usando etiquetas de código.

Normas del foro

Mati_Lewkow:
Hola. Tengo que encender y apagar con un pulsador y de la manera más simple posible, un led que parpadea. Tengo un código que puede estar encaminado, pero cuando lo pruebo no se apaga el LED.

Te falto definir varias cosas:

  1. Tienes una resistencia de 10K entre pin 10 y GND ? pulldown
  2. Estas usando un pulsador o un interruptor ?
  3. Si se trata de un pulsador cuanto tiempo luego de dejar de pulsar deberá seguir parpadeando el LED ?
#define PULSADOR 10
#define LED 13

void setup(){
   pinMode(LED, OUTPUT);
   pinMode(PULSADOR, INPUT);
}

void loop(){
   if (digitalRead(PULSADOR) == true){
      digitalWrite(LED, HIGH);
      delay(500);
      digitalWrite(LED, LOW);
      delay(500);      
   }   
}

PD: Notaras que mientras mantengas pulsado el LED parpadea.