Button

 

Botón

Los pulsadores o switches conectan dos puntos de un circuito al ser pulsados. Este ejemplo enciende el LED integrado en el pin 13 cuando pulsas el botón.

 

Conecta tres cables a la placa Arduino. Los dos primeros, rojo y negro, conectan a las dos hileras largas verticales de los laterales de la placa universal (breadboard ) para proporcionar acceso a la fuente de 5 voltios y a masa (ground). El tercer cable va desde el pin digital 2 a una patilla del pulsador. Esa misma patilla del pulsador se conecta a través de una resistencia pull-down (en este caso 10 KOhms) a masa. El otro extremo del pulsador se conecta a la fuente de 5 voltios.

 

Cuando el pulsador está abierto (sin pulsar) no hay conexión entre las dos patas del pulsador, de forma que el pin está conectado a tierra (a través de la resistencia pull-down) y leemos un LOW (bajo ó 0). Cuando el botón se cierra (pulsado), se establece la unión entre sus dos extremos, conectando el pin a 5 voltios, por lo que leemos un HIGH (alto ó 1).

 

También puedes cablear el circuito en sentido contrario, con una resistencia "pull-up" que mantenga la entrada en HIGH, y que pase a LOW cuando se pulse el botón. Así, el comportamiento del programa (sketch) se invertirá, con el LED normalmente encendido y apagado cuando se pulsa el botón.

 

Si se desconectas el pin digital de E/S del todo, el LED puede parpadear de forma errática. Esto se debe a la entrada es "flotante", es decir, al azar se tornará en HIGH o LOW. Por eso se necesita la resistencia pull-up o pull-down en el circuito.

 

Circuito

imagen desarollada usando Fritzing. Para más circuitos de ejemplo, ver la página del proyecto Fritzing

 

Esquema:

 

haz click en la imagen para ampliar

 

 

Código

 

int ledPin = 13; // Elegimos el pin al que está conectado el LED
int inPin = 2; // Elegimos el pin de entrada (El del pulsador)
int val = 0; // Declaramos una variable que almacenará el estado del pulsador

void setup() {
pinMode(ledPin, OUTPUT); // Declaramos el LED como Salida
pinMode(inPin, INPUT); // Declaramos el Pulsador como Entrada
}

void loop(){
val = digitalRead(inPin); // Leemos el valor de la entrada
if (val == HIGH) { // Si el valor es igual a HIGH (Botón no presionado)
digitalWrite(ledPin, LOW); // Apaga el led
} else { // Y si no
digitalWrite(ledPin, HIGH); // Enciende el led
}
}