Una forma de interactuar con Arduino es mediante un pulsador, pero… ¿sabes cómo conectar correctamente un pulsador en Arduino? Aunque parece sencillo seguro que a más de uno le ha traído de cabeza. Un pulsador es un componente sencillo, pero para que funcione de manera correcta con nuestro Arduino, debe conectarse junto a una resistencia, las famosas resistencias Pull Down y Pull Up.

En tutoriales anteriores se explicó que era una señal digital y cómo usar las entradas digitales de Arduino. Para usar un pulsador debemos emplear estas entradas, pero no basta con conectar directamente el pulsador a nuestro Arduino, tendrás problemas a la hora que Arduino interprete los estados.

Conectar pulsador sin resistencias Pull Down o Pull Up

Podemos pensar que no sucede nada si no usamos estar resistencias y realizamos una conexión como la del siguiente esquema:

pulsador con arduino 01
Conexión sin resistencias.

Parece evidente, y cierto es, que cuando el pulsador se accione en el pin digital tendremos un valor de 0v o 5v según el esquema empleado. Esto funcionará cuando pulsemos el pulsador, pero fijémonos con atención, ¿Qué sucederá cuando no estemos pulsador el pulsador? La entrada quedará en estado de alta impedancia, el valor presente a la entrada será indeterminado, puesto que ni está a 0v ni a 5v. Nuestro Arduino podrá asumir cualquier valor.

Si nos estamos volviendo locos en la programación porque el resultado no es el esperado, pregúntate ¿tengo alguna entrada digital con un valor indeterminado?

Evitando un valor indeterminado en una entrada

No es muy común que a alguien se le ocurra la conexión mostrada a continuación, pero para aquellos que no tienen un conocimiento básico de la electrónica quizás se la planteen:

pulsador con arduino 02
Conexión errónea.

Esta conexión no va del todo desencaminada a la correcta conexión para usar un pulsador con Arduino, pero ¡ATENCION!, esta conexión creará un cortocircuito cuando se pulse el botón.

Conectar correctamente un pulsador en Arduino

Esta es la solución correcta para conectar un pulsador en Arduino y garantizar en todo momento que en la entrada tiene un valor lógico aceptado:

pulsador con arduino 03
Esquema de conexión correcto.

pulsador con arduino 05
Diagrama de conexión Pull Up correcto con Arduino.

pulsador con arduino 06
Diagrama de conexión Pull Down correcto con Arduino.

En los estados de reposo, donde el pulsador se encuentra abierto, cada esquema garantiza un valor determinado al pin digital de Arduino. Cuando el pulsador es accionado, la corriente viajará por el camino más fácil, es decir, por donde no existe una resistencia.

  • La resistencia Pull Up garantiza un valor HIGH a la entrada de Arduino cuando el pulsador está abierto. Cuando está cerrado el pulsador, la entrada digital estará a un nivel LOW.
  • La resistencia Pull Down garantiza un valor LOW a la entrada de Arduino cuando el pulsador está abierto. Cuando está cerrado el pulsador, la entrada digital estará a un nivel HIGH.

Para realizar las pruebas de funcionamiento podemos usar el siguiente código de Arduino:

Código como conectar un pulsador en Arduino

int pin = 2; // Número del pin digital
int value = 0;

void setup() {
Serial.begin(9600);
pinMode(pin, INPUT); // Definimos el pin como entrada
}

void loop(){
value = digitalRead(pin); // Leemos el pin digital

if (value == HIGH) { // Si el valor es alto:
Serial.println("ON");
} else { // Si el valor es bajo:
Serial.println("OFF");
}

delay(1000); // Esperamos
}