Usualmente existen estos tipos de Push Button de dos y cuatro patas, en la imagen puedes ver cuales están conectados entre si por defecto y cuales se activan cuando están presionado el botón.

Hay dos modos en los cuales podemos configurarlos, Pull Up que por defecto esta en HIGH y al ser presionado en LOW y Pull Down por defecto esta en LOW y cuando se presiona esta en HIGH, tal como lo muestra la imagen podemos lograrlo si cambiamos la posición de la resistencia (usualmente se usa una de 10KΩ) si esta conectada al Voltaje (5V) o a Tierra (GND).

Requerimos
- Tarjeta UNO R3
- Protoboard
- Dos pulsadores / Push Buttons
- Dos resistencia de 10 KΩ Ohms
- Cables macho para protoboard o dupont
Sigue las conexiones de los cables, el de la izquierda que va conectado al PIN 4 es Pull Up y el de la derecha conectado al PIN 2 esta en modo Pull Down.

// Variable constante tipo byte para el pin 4 Pull Up
const byte pinPullUp = 4;
// Variable constante tipo byte para el pin 2 Pull Down
const byte pinPullDown = 2;
void setup() {
// Inicializamos el puerto serie a 9600 baudios
// para mostrar los mensajes por el puerto serie
Serial.begin(9600);
// Inicializamos los pines 4 y 2 como entradas
pinMode(pinPullUp, INPUT);
pinMode(pinPullDown, INPUT);
}
void loop() {
// Si es presionado el Push Button Pull Up
// Pull Up sin presionar HIGH / presionado LOW
if (digitalRead(pinPullUp) == LOW) {
Serial.println("Pull Up Presionado LOW");
}
// Si es presionado el Push Button Pull Down
// Pull Down sin presionar LOW / presionado HIGH
if (digitalRead(pinPullDown) == HIGH) {
Serial.println("Pull Down Presionado HIGH");
}
// Espera 100 milisegundos antes de repetir el loop
delay(100);
}
Presiona el botón de Iniciar simulación
, luego clic a </ Codigo
y por ultimo a Monitor en serie
.
Ver el ejercicio en una nueva ventana
Encendiendo un LED con Push Button en modo Pull Up
// Declaramos dos variables de tipo byte constante
// Pin 12 para el LED
const byte pinLed = 12;
// Pin 2 para El Push Button
const byte pinPushButton = 2;
void setup()
{
// Configuramos el Pin del LED de salida
pinMode(pinLed, OUTPUT);
// Configuramos el pin del Push Button de entrada
pinMode(pinPushButton, INPUT);
}
void loop()
{
// Si el Push Button está presionado
if (digitalRead(pinPushButton) == LOW){
// Encendemos el LED
digitalWrite(pinLed, HIGH);
// Si no es presionado
}else if(digitalRead(pinPushButton) == HIGH){
// Apagamos el LED
digitalWrite(pinLed, LOW);
}
}
Ver el ejercicio en una nueva ventana
Push Button en modo Pull Up usando la resistencia interna de Arduino
Arduino cuenta con resistencias internas las cuales podemos utilizar en este ejemplo declarando el pinMode en INPUT_PULLUP pinMode(pinModoPullUp, INPUT_PULLUP);
/*
Declaramos dos variables de tipo constante,
es decir que no va a cambiar su valor
para los Pines del Arduino
*/
const byte pinLed = 12; // Pin 12 para el LED
const byte pinModoPullUp = 2; // Pin 2 para Push Button
void setup(){
pinMode(pinLed, OUTPUT); // Pin 12 del LED de tipo salida
pinMode(pinModoPullUp, INPUT_PULLUP); // Pin 2 de tipo entrada PULLUP
// El INPUT_PULLUP utiliza las resistencias internas de la tarjeta Arduino
// para hacer funcionar el Push Button
}
void loop(){
// Si es presionado
if (digitalRead(pinModoPullUp) ==LOW){
// Encendemos el LED
digitalWrite(pinLed, HIGH);
// De lo contrario
} else {
// Apagamos el LED
digitalWrite(pinLed, LOW);
}
}
Ver el ejercicio en una nueva ventana
Apagar y encender un LED, con Push Button Pull Up encender y Pull Down apagar el LED
// Variable constante tipo byte para el pin 4 Pull Up
const byte pinPullUp = 4;
// Variable constante tipo byte para el pin 2 Pull Down
const byte pinPullDown = 2;
// Variable constante tipo byte para el LED pin 12
const byte pinLed = 12;
void setup() {
// Inicializamos el puerto serie a 9600 baudios
// para mostrar los mensajes por el puerto serie
Serial.begin(9600);
// Inicializamos los pines 4 y 2 como entradas
pinMode(pinPullUp, INPUT);
pinMode(pinPullDown, INPUT);
// Inicializamos el pin 12 como salida
pinMode(pinLed, OUTPUT);
}
void loop() {
// Si es presionado el Push Button Pull Up
// Pull Up sin presionar HIGH / presionado LOW
if (digitalRead(pinPullUp) == LOW) {
// Encendemos el LED
digitalWrite(pinLed, HIGH);
}
// Si es presionado el Push Button Pull Down
// Pull Down sin presionar LOW / presionado HIGH
if (digitalRead(pinPullDown) == HIGH) {
// Apagamos el LED
digitalWrite(pinLed, LOW);
}
}