Torniquete con solenoide

Hi,
Las variable de entrada si no les instala una resistencia de 10k al boton a los +5 te va a trabajar erratica. Si no quieres intalar la resistencia entonces declara el input con le pullup. Esto le instala la resistencia internamente

//***************************************************

int timer = 5000;
int boton = 6;
byte  pulsador ;
//****************************************************
void setup()
{
  pinMode(6, INPUT_PULLUP);
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}
//****************************************************
void loop()
{
  pulsador = digitalRead(boton);

  while (pulsador = HIGH)
  {
    encender(timer);
  }
}
//*****************************************************
void encender(int x)
{
  digitalWrite(13, HIGH);       // Enciende el Mosfet
  delay(x);                      // Espera el tiempo según la variable timer
  digitalWrite(13, LOW);        // Apaga el mosfet
  delay(1000);                  // Espera 1 segundo
}

//*****************************************************

de 10K. Trata haber si te trabaja con el pullup.