La función digitalWrite anda al revés (Solucionado)

Hola, tengo el problema de que quiero utilizar botones pero hay algo que hace que funcionen al revés y sospecho del arduino, ya que son botones normalmente abiertos, osea que hay que presionarlos para que cierren el circuito (enviando una señal HIGH a su pin digital) y soltarlos para que abran el circuito (enviando una señal LOW a su pin digital).
Mientras no lo pulso, el LED se encuentra encendido y cuando lo pulso, el LED se apaga. Debería ser al revés con el siguiente código:

const int BOTON = 2;
const int LED = 3;

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

void loop() {
  if(digitalRead(BOTON) == HIGH){
    digitalWrite(LED, HIGH);
  }
  else {
    digitalWrite(LED, LOW);
  }
}

Los probé con el tester (multimetro) y efectivamente son botones normalmente abiertos.
Este es el plano de como hice las conexiones:

No está el plano de conexiones. Podrías definir a Boton en pullup y conectarlo entre el pin de Arduino y gnd, para lo cual deberías invertir tu función, o sea, if (boton==HIGH){digitalWrite Led=LOW}

@Pablo_Lucini me acabo de dar cuenta de una cosa, la escritura del LED es lo que está fallando y la lectura del botón es correcta. Lo hice así:

const int BOTON = 2;
const int LED = 3;

void setup() {
  pinMode(BOTON, INPUT);
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if(digitalRead(BOTON) == HIGH){
    digitalWrite(LED, HIGH);
    Serial.println("ON");
  } else {
    digitalWrite(LED, LOW);
    Serial.println("OFF");
  }
}

El mensaje serial es correcto, se imprime "OFF" cuando no se presiona el botón pero el LED se encuentra en HIGH. Y viceversa, cuando se presiona el botón, el mensaje serial que se imprime en el monitor serial es "ON" pero el LED se apaga. Esto me lleva a la conclusión de que la función "digitalWrite()" esta funcionando al revés

Es mas. Si yo ejecuto este codigo el LED se mantiene encendido:

const int LED = 3;

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

void loop() {
  digitalWrite(LED, LOW);
}

Y si ejecuto este otro codigo, el LED se apaga:

const int LED = 3;

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

void loop() {
  digitalWrite(LED, HIGH);
}

Cuando tendría que se totalmente al revés...

Si subís el esquema de conexiones seguramente alguien va a poder explicarte por qué funciona así.

Mi estimado GiovanniSJ aun no has publicado tu esquema y por lo tanto debo decir que estoy seguro que tu circuito del led esta mal.
Existen dos formas de conectar un LED.

Pin de salida a Resistencia a LED y a GND
y
Pin de salida a Resistencia a LED y a VCC

La forma que justifica el comportamiento que relatas es la segunda.

Por que?
Si tienes un LED con Anodo a VCC o sea 5V y Catodo mirando al pin y resistencia de por medio.
Cuando tengas un LOW en el PIN tu led se va a encender y cuando tengas un HIGH tu led permaencerá apagado.

Por qué una vez mas? Porque un Led conectado a VCC con Anodo hacia el terminal mas positivo y catodo hacia el pin solo tendrá circulación de corriente cuando apliques un LOW a la salida. La diferencia de potencial entre el led y PIN será la maxima.
En cambio cuando le apliques un HIGH llevarías el catodo a casi el mismo potencial (tensión) que el terminal de 5V.

Asi que esta todo bien, la electronica sigue funcionando y tu has aprendido que hay dos modos de conectar un LED patas para abajo o patas para arriba. A GND o a VCC.

@surbyte @Pablo_Lucini
Ya se en que me equivoqué, efectivamente surbyte tenía razón. Las conexiones que hice fueron las siguientes:

Como podrán notar, conecté el pin de salida digital al negativo del LED, cuando lo tendría que haber conectado a su positivo de la siguiente forma: