Resumen del ejercicio
En este ejercicio aprenderemos a controlar salidas digitales en un sistema embebido mediante la simulación de un semáforo. Utilizando un Arduino Uno y tres LEDs (rojo, verde y ámbar), el programa enciende y apaga los LEDs siguiendo una secuencia temporal bloqueante. Esto permite visualizar de manera práctica cómo se pueden controlar dispositivos electrónicos conectados a pines digitales.
Objetivo pedagógico
El estudiante que realice este ejercicio aprenderá a:
- Configurar pines digitales como salidas en Arduino.
- Implementar secuencias temporales usando
delay(). - Comprender la lógica de un semáforo y su relación con sistemas de control.
- Introducción a la programación básica en sistemas embebidos.
Pasos principales y explicación del código
El programa se estructura en dos partes principales:
- Inicialización (
setup())- Configura cada LED conectado a un pin digital como salida.
- Prepara el Arduino para controlar los LEDs de manera directa.
- Bucle principal (
loop())- Ejecuta la secuencia de semáforo:
- LED rojo encendido durante un intervalo definido.
- LED verde encendido durante otro intervalo.
- LED ámbar encendido para indicar transición.
- La función
delay()se utiliza para mantener cada LED encendido el tiempo necesario antes de pasar al siguiente.
- Ejecuta la secuencia de semáforo:
Diagrama de bloques didáctico:
[Inicio loop]
|
v
[Encender LED Rojo]
|
v
[delay tiempo rojo]
| v [Encender LED Verde] | v
[delay tiempo verde]
| v [Encender LED Ámbar] | v
[delay tiempo ámbar]
| v [Repetir secuencia]
Este flujo permite entender de manera visual cómo se implementa un control secuencial simple en un microcontrolador.
Enlace al repositorio o código completo
Puedes acceder al código completo y descargable aquí:
Ejercicio Semáforo Arduino
Aplicaciones en la vida real
Este tipo de control secuencial se encuentra en:
- Semáforos reales en calles y avenidas.
- Sistemas de indicadores LED en maquinaria industrial.
- Proyectos de automatización doméstica, como luces de notificación o alertas visuales.
- Prototipos educativos, donde se simulan procesos secuenciales antes de aplicarlos en sistemas reales.
Tip práctico
Aunque delay() es fácil de usar, bloquea la ejecución de otras tareas. Para proyectos más complejos, considera usar la función millis() para crear temporizaciones no bloqueantes, lo que permite que el Arduino realice varias tareas al mismo tiempo.
