Ejercicio No. 5 – Cambio de estado del LED mediante pulsador (modo conmutador)

En el ejercicio anterior el LED permanecía encendido únicamente mientras el pulsador estaba presionado.
En este ejercicio modificaremos ese comportamiento para implementar una lógica de conmutación: cada vez que se oprima el pulsador, el LED cambiará de estado.

Trabajaremos nuevamente con el Arduino UNO utilizando:

Pulsador conectado al pin digital 2
LED conectado al pin digital 10

Este ejercicio introduce el concepto de memoria de estado dentro del programa.


Descripción del ejercicio

En este programa vamos a modificar el comportamiento realizado en el ejercicio No. 4.

Las conexiones serán:

Pulsador en el pin digital 2
LED en el pin digital 10
Resistencia limitadora para el LED (220 Ω o 330 Ω recomendada)

El comportamiento esperado será:

El LED inicia apagado
Cada vez que se oprima el pulsador, el LED cambiará de estado
Si estaba apagado, se encenderá
Si estaba encendido, se apagará
El sistema permanecerá en ese estado hasta la siguiente pulsación

Este tipo de lógica se conoce como toggle o conmutación por evento.


Objetivos de aprendizaje

Con este ejercicio aprenderás a:

Detectar eventos de pulsación
Implementar una variable de estado
Modificar el comportamiento de una salida en función de su estado previo
Comprender la diferencia entre acción momentánea y acción con memoria
Introducir el concepto de detección de flanco (cambio de estado en la entrada)


Conceptos clave

Antes de analizar el código, es importante conocer estos elementos fundamentales:

Variable de estado
Permite almacenar si el LED está encendido o apagado.

digitalRead(pin)
Lee el estado actual del pulsador.

Estructura condicional (if)
Permite decidir cuándo cambiar el estado del LED.

Cambio de estado (toggle)
Operación que invierte el valor lógico actual (de HIGH a LOW o viceversa).

Detección de flanco
Para evitar múltiples cambios durante una sola pulsación, es necesario detectar el momento exacto en que el pulsador pasa de no presionado a presionado.

INPUT_PULLUP
Puede utilizarse para simplificar el cableado usando la resistencia interna del microcontrolador.


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. 5 – LED conmutado por pulsador
Archivos organizados por ejercicio
Una progresión estructurada hacia lógica secuencial más avanzada

👉 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.
Cada vez que el pulsador sea presionado, el LED debe cambiar de estado: si estaba apagado se enciende, y si estaba encendido se apaga.
El sistema debe mantener el estado hasta la siguiente pulsación.
Genera el código completo en C/C++ para Arduino, con comentarios explicativos línea por línea.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio