Arduino permite controlar dispositivos electrónicos mediante programas sencillos. Pero además de encender elementos como LEDs, también podemos hacer que Arduino reciba información del exterior mediante botones, pulsadores y sensores.

En esta práctica aprenderemos a utilizar un pulsador como entrada digital para controlar un LED. Cuando presionemos el botón, Arduino detectará el cambio de estado y encenderá el LED; cuando lo soltemos, el LED se apagará.

Con este sencillo circuito aprenderemos conceptos fundamentales que utilizaremos posteriormente en sensores, sistemas de control, automatización y robótica.


¿Qué aprenderás en esta práctica?

Al terminar podrás:

  • Conectar un LED y un pulsador a Arduino UNO.
  • Configurar pines como INPUT y OUTPUT.
  • Leer una entrada digital mediante digitalRead().
  • Comprender los estados HIGH y LOW.
  • Utilizar una estructura condicional if / else.
  • Comprender la función de una resistencia pull-down.
  • Controlar una salida dependiendo del estado de una entrada.

La idea fundamental de esta práctica será:

PULSADOR → ARDUINO → LED

Es decir:

ENTRADA → PROCESAMIENTO → SALIDA

Este principio es fundamental en prácticamente cualquier sistema electrónico de control.


Materiales necesarios

Para realizar la práctica necesitaremos:

CantidadComponente
1Arduino UNO
1Protoboard
1LED
1Pulsador
1Resistencia de 220 Ω
1Resistencia de 10 kΩ
VariosCables Dupont
1Cable USB

La resistencia de 220 Ω limitará la corriente que circula por el LED, mientras que la resistencia de 10 kΩ funcionará como resistencia pull-down para el pulsador.


Diagrama de conexión

[AQUÍ INSERTAREMOS LA IMAGEN DEL DIAGRAMA DEL CIRCUITO]

Para esta práctica utilizaremos:

LED

  • Pin digital 13 → resistencia de 220 Ω → ánodo del LED.
  • Cátodo del LED → GND.

Pulsador

  • Un extremo → 5 V.
  • Otro extremo → pin digital 2.
  • Desde el pin 2 → resistencia de 10 kΩ → GND.

De esta manera Arduino podrá determinar claramente cuándo el pulsador está presionado y cuándo está libre.


¿Cómo funciona el pulsador?

Un pulsador es un dispositivo que permite abrir o cerrar temporalmente un circuito eléctrico.

Cuando no está presionado, la resistencia de 10 kΩ mantiene el pin 2 conectado eléctricamente hacia GND, por lo que Arduino interpreta:

LOW

Cuando presionamos el pulsador, el pin 2 recibe aproximadamente 5 V y Arduino interpreta:

HIGH

Por lo tanto:

Estado del pulsadorPin 2LED
Sin presionarLOWApagado
PresionadoHIGHEncendido

¿Por qué utilizamos una resistencia de 10 kΩ?

Aquí aparece un concepto importante: la resistencia pull-down.

Si simplemente desconectáramos el pulsador del pin de entrada, cuando el botón estuviera abierto el pin podría quedar en un estado eléctrico indeterminado o flotante.

Esto podría provocar lecturas inestables.

La resistencia de 10 kΩ mantiene el pin conectado débilmente a GND cuando el pulsador no está presionado.

Por eso obtenemos un estado definido:

Botón libre → LOW

Botón presionado → HIGH


Código: LED con pulsador en Arduino

Utilizaremos el siguiente programa:

// LED con pulsador en Arduino UNO
// Profe Juan de Dios

const int ledPin = 13;
const int botonPin = 2;

int estadoBoton = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(botonPin, INPUT);
}

void loop() {

  estadoBoton = digitalRead(botonPin);

  if (estadoBoton == HIGH) {
    digitalWrite(ledPin, HIGH);
  }
  else {
    digitalWrite(ledPin, LOW);
  }
}

Ahora vamos a analizarlo paso a paso.


Definición de los pines

Primero indicamos qué pines utilizaremos:

const int ledPin = 13;
const int botonPin = 2;

El LED estará conectado al pin digital 13 y el pulsador al pin digital 2.

Después creamos una variable:

int estadoBoton = 0;

Esta variable almacenará el estado que Arduino lea del pulsador.


Configuración con pinMode()

Dentro de setup() encontramos:

pinMode(ledPin, OUTPUT);
pinMode(botonPin, INPUT);

La instrucción:

OUTPUT

indica que Arduino utilizará ese pin para enviar una señal.

Mientras que:

INPUT

indica que Arduino utilizará ese pin para recibir información.

Por eso podemos considerar:

Pulsador = entrada

LED = salida


¿Qué hace digitalRead()?

La instrucción:

estadoBoton = digitalRead(botonPin);

permite que Arduino lea el estado eléctrico del pin donde conectamos el pulsador.

digitalRead() puede devolver dos estados:

HIGH → nivel lógico alto.

LOW → nivel lógico bajo.

El resultado se guarda en la variable:

estadoBoton

Arduino realizará esta lectura continuamente mientras el programa esté funcionando.


Utilizando if y else

Ahora Arduino debe tomar una decisión dependiendo del estado del pulsador.

Para ello utilizamos:

if (estadoBoton == HIGH) {
  digitalWrite(ledPin, HIGH);
}
else {
  digitalWrite(ledPin, LOW);
}

Podemos leerlo prácticamente como una oración:

SI el botón está presionado, ENTONCES enciende el LED.
SI NO, apaga el LED.

Aquí estamos introduciendo uno de los conceptos más importantes de la programación: la toma de decisiones.


¿Cómo funciona todo el sistema?

El proceso completo ocurre continuamente:

1. Arduino lee el pin 2.

2. digitalRead() determina si está en HIGH o LOW.

3. La estructura if analiza el resultado.

4. Arduino decide qué hacer.

5. digitalWrite() controla el LED.

Por eso podemos representarlo como:

Pulsador

digitalRead()

if / else

digitalWrite()

LED

Este mismo principio posteriormente nos permitirá sustituir el pulsador por diferentes sensores.


Prueba del circuito

Después de cargar el programa en Arduino UNO podemos realizar la prueba.

Al dejar libre el pulsador:

LED apagado.

Al presionarlo:

LED encendido.

Al soltar nuevamente:

LED apagado.

Si esto sucede correctamente, nuestro circuito y programa están funcionando.


Errores comunes

Si el circuito no funciona correctamente, revisa especialmente:

Orientación del LED. Los LEDs tienen polaridad y deben conectarse correctamente.

Resistencia del LED. No debemos conectar directamente un LED entre 5 V y GND sin una resistencia limitadora adecuada.

Pulsador mal colocado. Los pulsadores de cuatro terminales pueden causar confusión porque algunos terminales ya están conectados internamente.

Falta de resistencia pull-down. Sin ella, la entrada puede presentar lecturas inestables.

Pin incorrecto. Comprueba que las conexiones físicas coincidan con los pines utilizados en el programa.


🎥 Video: LED con pulsador en Arduino paso a paso

[AQUÍ INSERTAREMOS EL VIDEO #5 DE YOUTUBE]

En el video realizaremos todo el procedimiento paso a paso: montaje del circuito en protoboard, conexiones con Arduino UNO, programación y prueba del pulsador.


¿Qué aprendimos?

Con una práctica relativamente sencilla aprendimos varios conceptos fundamentales de Arduino:

INPUT → configura una entrada.

OUTPUT → configura una salida.

digitalRead() → lee una entrada digital.

digitalWrite() → controla una salida digital.

HIGH → estado lógico alto.

LOW → estado lógico bajo.

if / else → permite que Arduino tome decisiones.

Estos conceptos aparecerán constantemente conforme avancemos hacia proyectos más interesantes de electrónica, automatización y robótica.


Siguiente práctica: semáforo con Arduino 🚦

Ahora que sabemos controlar LEDs y utilizar instrucciones básicas, podemos avanzar hacia un proyecto donde controlaremos varios LEDs mediante Arduino UNO.

En la siguiente práctica construiremos un:

Semáforo con Arduino UNO paso a paso.

Ahí utilizaremos lo aprendido para controlar las luces roja, amarilla y verde mediante programación.


🔗 Continúa aprendiendo Arduino

Aquí yo colocaría enlaces internos hacia tus contenidos existentes:

¿Qué es Arduino UNO? Conoce sus partes y para qué sirven

Cómo instalar Arduino IDE y conectar Arduino UNO

Comandos básicos de Arduino para principiantes

LED con pulsador en ArduinoESTAMOS AQUÍ

Semáforo con Arduino ← próximamente

Esto es especialmente importante porque estamos construyendo una ruta de aprendizaje, no solamente entradas independientes.