Problema con la lectura de datos

Estoy haciendo un (simple) circuito en el que si un cable está conectado se enciendan un led verde, pero que cuando se desconecte se encienda un led rojo y un buzzer, entonces conecté la salida de 5v de mi arduino a un pin que identifiqué como entrada. Pero el pin lee High siempre incluso sin cable conectado.
Les adjunto el programa:

int buzzer = 3 ;
int rojo = 2;
int verde = 4;
int entrada = 9 ;
int valor;

void setup() {

pinMode (buzzer, OUTPUT);
pinMode (rojo, OUTPUT);
pinMode (verde, OUTPUT);
pinMode (entrada, INPUT);

Serial.begin(9600);

}

void loop() {

if (digitalRead(entrada) == HIGH)
{
digitalWrite(verde, HIGH);
digitalWrite(rojo, LOW);
digitalWrite(buzzer, LOW);

}
else {
digitalWrite(rojo, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(verde, LOW);

}
delay (100);

}

Estoy seguro que estoy cometiendo algún error muy simple ( soy nuevo);
He revisado con un Serialprint que el valor en el digitalRead(entrada) no varía cuando conecto y desconecto el cable.
Muchas Gracias de antemano

Hi,
La lectura que estas leyendo es correcta. Tienes el pin 9 conectado a los mas 5 voltios. Necesitas tener un switche pero tienes que alambrarlo diferente. Programa el pin 9 como pinMode(9,INPUT_PULLUP).Conectas un switche con uno de los contactos al pin 9 y el otro a ground. Cuando cierras el switche pone el pin 9 a ground y te va leer zero voltios y cuando lo abras te leera 5 voltios.
adjunto esquematico como conectarlo.