Principiante al que no le va un boton

Hola a todos, estoy haciendo un proyecto de arduino sencillo, ya que soy nuevo en esto. He hecho un par de proyectillos sencillos y me he embarcado en uno más complicado. Consiste en que estoy haciendo una “ruleta de la suerte” mediante cinco leds, un boton y un zumbador. Cuatro de esos leds son rojos y uno verde, bien va encendiendose uno, se apaga, se enciende otro, se apaga y asi de forma sucesiva. Bien si pulsamos el boton cuando esta el led verde encendido debe de pitar el zumbador y además el tiempo entre encendido y apagado de los leds se hace más corto. Espero haberme explicado bien :~ dejo el codigo que tengo

int leds ={5,6,7,8,9};
int n=0;
int tiempo=400;
int zumbador=13;
int pulsador=11;
int boton=0;

void setup()
{ for (n=0; n<5; n++) {
pinMode(leds[n], OUTPUT);
};
pinMode(zumbador, OUTPUT);
pinMode(pulsador, INPUT);

}

void compruebaacierto()
{ boton = digitalRead(pulsador);
if(boton==HIGH && n==2) {
digitalWrite (zumbador, HIGH);
delay (500);
digitalWrite (zumbador, LOW);
tiempo=tiempo-50;
if (tiempo<1){ tiempo=400;}
}
}

void loop(){

for(n=0; n<5; n++) {
digitalWrite (leds[n], HIGH);
delay(tiempo);
compruebaacierto();
digitalWrite(leds [n], LOW);
delay(tiempo);
}
}

Bien el problema que tengo es que cuando pulso el boton (da igual el led que este encendido) el ordenador pita y se reinicia la programacion de nuevo. No se si es que lo tengo mal conectado u otra cosa. El boton solo tienes dos clavijas, una la he conectado (obviamente mediante placa board) a la salida de 5V y la otra a un pin y seguidamente a tierra.
¿Alguien sabe el fallo? =(

En mi humilde opinión, es mas problema de conexiones que de programación, puedes poner el esquema de las conexiones que has realizado?

por otro lado, en el void loop(), utilizas delay para controlar el tiempo que los led permanecen encendidos, eso te para la ejecución de todo el programa, te iría mejor controlando el tiempo que transcurre en vez de pararlo (eso no tiene nada que ver con lo que comentas que te sucede)

Hola amigo gracias por contestar, te dejo el esquema de conexiones que tengo hecho


el pulsador va al once mientras que el zumbador al 10

Yo ni en las conexiones ni en el código te encuentro explicación para lo que comentas, (pero mis conocimientos mas que escasos son negativos :P) solo por probar, cambia el zumbador por un led por si consumiera mas de lo que el arduino puede entregar y haber que pasa.

Las conexiones parecen correctas, yo mas bien creo que es un fallo de programacion. El problema de hacer la lectura de un boton con un simple digitalRead() es que la placa puede leerlo miles de veces por segundo disparando su accion y si encima usas delay() la cosa se puede desmadrar mucho.

Mirate este codigo de un detector de cambio de estado para un pulsador:

Y si es posible en lugar de delay() utiliza controles por tiempo como el del ejemplo BlinkWhioutDelay