Cómo Conectar y Programar un Pulsador On Off con Arduino
¡Bienvenido al cuarto capítulo del curso de Arduino desde cero en Español! En el tutorial anterior vimos la sentencia If-Else, la estructura condicional más utilizada, que nos permite elegir que ocurre dependiendo de una o varias condiciones. Hoy vamos a ver como conectar y programar un botón con Arduino. Gracias a un pulsador on off podrás encender y apagar tus proyectos o ciertos componentes electrónicos.
Cómo funciona un pulsador
El funcionamiento básico de un botón es muy sencillo. Básicamente se conecta a un pin digital con el que leerás un 0 o un 1 dependiendo de si lo pulsas o no.
Hay dos formas de conectarlo. El primer tipo de conexión se llama pull-down, con la que recibes un 1 cuando pulsas el botón y un 0 cuando no está pulsado. A lo largo del tutorial nosotros vamos a utilizar este tipo de conexión. Sin embargo, vamos a explicar rápidamente como funcionan ambas conexiones por si acaso necesitas saberlo.
Conexión con una resistencia Pull Down
Como puedes ver en la imagen de abajo en ambos casos tenemos los mismos elementos, una alimentación, una resistencia y el botón. Donde pone «Vout» es donde se conecta el pin digital, es decir, donde leemos el voltaje con Arduino.
Cuando el botón no está pulsado, es como si hubiera en su lugar una resistencia de valor infinito donde cae todo el voltaje. Por lo tanto en la conexión pull down, como «Vout» está después del botón, si éste no está pulsado Arduino leerá un 0.
Cuando el botón está presionado actúa como un simple cable, por lo que no ofrece resistencia al paso de la corriente. En este caso la única resistencia a la corriente es la que hay después de «Vout», donde cae todo el voltaje. Cómo no hay una caída de tensión antes de «Vout», Arduino lee el valor del voltaje de la fuente de alimentación, lo que corresponde a recibir un 1 en un pin digital.

Conexión con una resistencia Pull Up
En este tipo de conexión ocurre justo todo lo contrario. Recuerda que el botón actúa como una resistencia de valor infinito cuando no está pulsado y como un simple cable cuando si lo está.
Si el botón no está pulsado todo el voltaje cae en él. Por lo tanto, como «Vout» se encuentra antes de la caída de tensión, Arduino lee un 1. Cuando presionas el botón, todo el voltaje cae en la resistencia. Como «Vout» se encuentra después de dicha resistencia, Arudino leerá un 0.
Conectar el botón a Arduino
Puedes ver como conectar el pulsador a Arduino en la imagen de abajo. El esquema eléctrico es muy sencillo. Simplemente tienes que conectar el terminal 1A a GND (tierra) a través de la resistencia «pull down», el terminal 2A al pin de alimentación de 5 Voltios y por último, el terminal 1B al pin digital que quieras utilizar. Nosotros estamos utilizando el pin 2.
Como puedes observar, hay dos circuitos. Son exactamente idénticos. Sin embargo, en uno utilizamos una placa protoboard y en el otro no. Elige el que sea más cómodo para ti.
Además, en el ejemplo práctico crearemos un programa para encender un LED cuando pulsemos el botón, y apagarlo en caso contrario. Por este motivo también hemos conectado un LED.

Cómo programar un botón en Arduino
El código no es muy complicado. Sin embargo, necesitas entender como funciona la sentencia If Else. Como puedes ver hemos creado dos variables de tipo entero y constantes. Una es para guardar el número del pin con el que encendemos el LED, y la otra es para almacenar el número del pin con el que leemos el estado del botón. Hay una tercera variable de tipo entero llamada «buttonState» que sirve para guardar el estado del botón.
const int buttonPin = 4; const int ledPin = 12; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } delay(50); }
En la función «void setup()» solo es necesario inicializar los dos pines digitales que estamos utilizando. El pin del LED es de salida, para poder encederlo y apagarlo, y el del pulsador es de entrada, para poder leer su estado. Recuerda que para definir si un pin es de entrada o de salida utilizamos la función «pinmode()».
Una vez dentro de la función «void loop()», lo primero que necesitamos hacer es leer el estado del botón, es decir, si está pulsado o no. Para ello, utilizamos la función «digitalRead()», la cual sirve para leer cualquier pin de entrada. Recuerda que como estamos utilizando la conexión pull down, cuando pulses el botón la función leerá un 1 y cuando no lo pulses leerá un 0. Este valor lo almacenamos en la variable «buttonState».
Por último, utilizando la sentencia If Else comprobamos si el valor leído es igual a HIGH, que es equivalente a un 1. En caso de ser así encendemos el LED y si no, lo apagamos.
Para terminar decirte que es muy importante que practiques todo lo que has aprendido por tu cuenta. Además te invito a que experimentes cambiando cosas del código o utilizando la conexión Pull Up.