Introducción
¡Bienvenido a tu primer proyecto de entrada con Arduino! En este tutorial, construirás un circuito donde un pulsador controla un LED. Cuando presiones el botón, el LED se encenderá; al soltarlo, se apagará. Este proyecto sencillo te introduce en la lectura de entradas digitales, el uso de resistencias pull-up internas y la escritura de código limpio para Arduino.
Usaremos el simulador en navegador de Velxio, que proporciona un entorno preciso a nivel SPICE para que puedas probar tu circuito sin necesidad de hardware. ¡Vamos allá!
Recorrido del circuito

El circuito consta de tres componentes principales:
- Arduino Uno – el cerebro de la operación.
- Pulsador – un interruptor momentáneo que conecta dos pines al presionarse.
- LED rojo – el dispositivo de salida.
Detalles del cableado
-
Pulsador a Arduino:
- Una pata del pulsador (pin
1.l) se conecta al pin digital 2 de Arduino mediante un cable azul (#00aaff). - La otra pata (pin
2.l) se conecta a GND mediante un cable negro.
- Una pata del pulsador (pin
-
LED a Arduino:
- El ánodo (pata larga, pin
A) se conecta al pin digital 13 de Arduino mediante un cable rojo (#ff0000). - El cátodo (pata corta, pin
C) se conecta a GND mediante un cable negro.
- El ánodo (pata larga, pin
Observa que el pulsador no tiene una resistencia pull-up externa. En su lugar, usaremos la resistencia pull-up interna de Arduino en el código. Cuando el pulsador no está presionado, el pin de entrada se mantiene en HIGH; al presionarlo, se lee LOW.
Recorrido del código

Aquí está el sketch completo de Arduino:
// Button LED Control
// Press button to turn LED on
const int BUTTON_PIN = 2;
const int LED_PIN = 13;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
Explicación
- Constantes:
BUTTON_PINse establece en 2,LED_PINen 13. Usar constantes facilita la lectura y modificación del código. setup():pinMode(BUTTON_PIN, INPUT_PULLUP)configura el pin 2 como entrada con la resistencia pull-up interna activada. Esto significa que el pin lee HIGH por defecto y LOW cuando se presiona el pulsador (conectándolo a GND).pinMode(LED_PIN, OUTPUT)establece el pin 13 como salida para controlar el LED.
loop():digitalRead(BUTTON_PIN)lee el estado del pulsador. Si es LOW (pulsador presionado), encendemos el LED condigitalWrite(LED_PIN, HIGH). De lo contrario, lo apagamos.
Conceptos clave
Entrada digital y resistencias pull-up
Cuando un pin digital se configura como entrada, lee HIGH (5V) o LOW (0V). Sin una resistencia pull-up o pull-down, el pin puede quedar flotante entre estados, provocando lecturas erráticas. La resistencia pull-up interna (normalmente de 20k-50k ohmios) garantiza un HIGH estable cuando el pulsador está abierto. Al presionar el pulsador, se conecta el pin directamente a GND, anulando el pull-up y dando una lectura LOW.
Antirrebote
Los pulsadores mecánicos suelen rebotar, provocando múltiples transiciones rápidas. En este ejemplo sencillo, ignoramos el antirrebote porque el LED responde rápidamente y el efecto es mínimo. Para aplicaciones más críticas, puedes añadir un pequeño retardo o usar una librería de antirrebote.
Uso de constantes
Definir los números de pin como constantes al principio del sketch facilita cambiar el cableado sin tener que buscar en el código. También mejora la legibilidad.
Errores comunes y consejos de depuración
- Cableado del pulsador: Asegúrate de que una pata vaya al pin de Arduino y la otra a GND. Si conectas ambas patas a la misma fila, el pulsador no funcionará.
- Polaridad del LED: El ánodo (pata larga) debe conectarse al pin digital y el cátodo (pata corta) a GND. Invertirlos no dañará el LED, pero no se encenderá.
- Pull-up no activado: Si olvidas
INPUT_PULLUPy usasINPUTsimple, el pin flotará y el LED podría parpadear aleatoriamente. - Números de pin incorrectos: Verifica que el código coincida con el cableado. En este ejemplo, pulsador en el pin 2, LED en el pin 13.
Uso del simulador Velxio

Haz clic en el botón Ejecutar de la barra de herramientas para compilar e iniciar la simulación. Luego puedes hacer clic en el pulsador del lienzo para ver cómo responde el LED.

Usa la barra de herramientas del lienzo para pausar, reiniciar o ajustar la velocidad de la simulación.

Para añadir más componentes, abre el selector y explora categorías como “Entrada” o “Salida”.

Si necesitas librerías adicionales (por ejemplo, para antirrebote), usa el Gestor de Librerías.
Extensiones sugeridas
Una vez que tengas el circuito básico funcionando, prueba estas mejoras:
- Modo alternar: Modifica el código para que cada pulsación encienda o apague el LED en lugar de mantenerlo.
- Varios LEDs: Añade más LEDs y pulsadores para crear un panel de entrada simple.
- Antirrebote: Implementa antirrebote por software usando un retardo de 50 ms o un temporizador.
- Monitor serie: Imprime el estado del pulsador en el Monitor Serie para depuración.
- Brillo PWM: Sustituye el digital write por
analogWrite()para controlar el brillo del LED según la duración de la pulsación.
Llamada a la acción
¿Listo para construir tu propio LED controlado por pulsador? Abre el ejemplo en vivo en Velxio y empieza a experimentar: Ejemplo de LED con pulsador. No necesitas hardware, solo tu navegador. ¡Feliz experimentación!