Hasta ahora hemos trabajado únicamente con salidas digitales.
En este ejercicio incorporamos una entrada digital, lo que nos permite interactuar con el entorno físico. Vamos a controlar el encendido de un LED mediante un interruptor pulsador conectado al pin 2 del Arduino UNO.
Este ejercicio permite verificar que:
Podemos leer el estado lógico de un pin configurado como entrada
Comprendemos la diferencia entre señales de entrada y salida
Sabemos implementar lógica condicional básica en un sistema embebido
Descripción del ejercicio
En este programa vamos a controlar el encendido de un LED a través de un interruptor pulsador.
Las conexiones serán las siguientes:
El pulsador estará conectado al pin digital 2
El LED estará conectado al pin digital 10
El LED debe incluir una resistencia limitadora de corriente (220 Ω o 330 Ω recomendada)
El comportamiento esperado será:
El LED permanecerá apagado mientras el pulsador no esté presionado
Cuando el pulsador sea oprimido, el LED se encenderá
El LED se apagará inmediatamente al soltar el pulsador
Este comportamiento introduce el concepto de lectura continua de entradas dentro del bucle principal del programa.
Objetivos de aprendizaje
Con este ejercicio aprenderás a:
Configurar un pin digital como entrada
Leer el estado lógico de un pulsador
Utilizar estructuras condicionales para controlar salidas
Comprender el concepto de control en tiempo real basado en eventos físicos
Relacionar hardware externo con lógica de programación
Conceptos clave
Antes de analizar el código, es importante conocer estos elementos fundamentales:
Entrada digital
Un pin configurado como INPUT puede leer estados lógicos HIGH o LOW provenientes de dispositivos externos como pulsadores.
pinMode(pin, INPUT o INPUT_PULLUP)
Define un pin como entrada. Puede usarse una resistencia externa o activar la resistencia interna de pull-up.
digitalRead(pin)
Permite leer el estado lógico actual de un pin configurado como entrada.
digitalWrite(pin, HIGH/LOW)
Controla el estado del LED configurado como salida.
Estructura condicional (if)
Permite ejecutar instrucciones dependiendo del valor leído en la entrada digital.
Resistencia limitadora
Protege el LED regulando la corriente que circula por él.
Código fuente en GitHub
Para facilitar el aprendizaje y permitirte experimentar libremente, todos los ejercicios de esta serie estarán disponibles en un repositorio público de GitHub.
En el repositorio encontrarás:
El código del Ejercicio No. 4 – LED controlado por pulsador
Archivos organizados por ejercicio
La base para introducir conceptos más avanzados como antirrebote (debounce) y lógica de estados
👉 Repositorio GitHub:
Prompt sugerido para generar el código
Actúa como un instructor de Arduino para principiantes.
Necesito un programa en Arduino donde un pulsador conectado al pin digital 2 controle un LED conectado al pin digital 10 en un Arduino UNO.
El LED debe permanecer apagado hasta que el pulsador sea presionado, encenderse mientras esté presionado y apagarse al soltarlo.
Genera el código completo en C/C++ para Arduino, con comentarios explicativos línea por línea.
