Problema con pulsador (SEMÁFORO)

Buenas tengo un inconveniente con un proyecto muy simple, se trata de hacer una simulación de un semáforo con arduino, funciona asi... todo el tiempo esta en verde pero cuando se aprieta un pulsador el verde se apaga prende el amarillo y después a rojo, terminado ese proceso vuelve a prenderse el verde hasta que se vuelva a apretar....

el problema resulta que sin estar apretado el pulsador funciona como si se le estuviera pulsando...
pero si lo pulso funciona como si no lo estuviera apretando. me entienden? funciona de forma inversa totalmente al revés

cambie de pulsador seguía igual, use 2 cables simulando un pulsador (uniéndolos entre si) pero nada...
pero si en el pin correspondiente al pulsador no hay cables funciona normal pero le pongo un cable sin que este conectado a nada solo un cable y ya empieza de nuevo. cambie de arduino cambie de código pero en todos lo mismo... ayuda!

int ledR = 13;
int ledA = 9;
int ledV = 6;
int pulsador = 2;

void setup(){
  pinMode(ledR, OUTPUT);
  pinMode(ledV, OUTPUT);
  pinMode(ledA, OUTPUT);
  pinMode(pulsador, INPUT);
}

void loop(){
  digitalWrite(ledV, HIGH);    //semaforo verde
  if(digitalRead(pulsador)==HIGH) {   //lee pulsador
    digitalWrite(ledV, LOW);    //apaga luz verde
    digitalWrite(ledA, HIGH);   //enciende luz amarilla
    delay(1000);                 //espera 1 segundo
    digitalWrite(ledA, LOW);    //apaga luz amarilla
    digitalWrite(ledR, HIGH);   //enciende luz roja
    delay(4000);                //espera 4 segundos
    digitalWrite(ledR, LOW);     //apaga luz roja
}
}

Entonces en lugar de preguntar por HIGH pregunta por LOW.
El pulsador esta conectado al pin 2 y tiene alguna Resistencia a masa o a Vcc? No dices como esta ese pulsador o simplemente lo conectaste al pin 2
Si es asi cambia la definición en el setup a

pinMode(pulsador, INPUT_PULLUP);

surbyte:
Entonces en lugar de preguntar por HIGH pregunta por LOW.
El pulsador esta conectado al pin 2 y tiene alguna Resistencia a masa o a Vcc? No dices como esta ese pulsador o simplemente lo conectaste al pin 2
Si es asi cambia la definición en el setup a

pinMode(pulsador, INPUT_PULLUP);

SOLUCIONADO
Gracias, y como dices lo tenia directo al pin 7 :cold_sweat:

int pulsador = 2;

Tu código dice pin 2 no 7.

surbyte:

int pulsador = 2;

Tu código dice pin 2 no 7.

es que lo estaba cambiando para ver si no era el pin :grinning: