Tercera Entrega del Curso Control Digital con Arduino: Aprende a Automatizar Sistemas (Capitulo 3), para Electricistas Entusiastas e Innovadores
Impartido por el Prof. Rafael Telles
Te presentamos la tercera entrega del curso Control Digital con Arduino, disponible tanto en línea (gratis) como de manera presencial en los hermosos talleres de la Universidad Politécnica Territorial del Estado Aragua «Federico Brito Figueroa (UPTA)». Aquí, adquirirás herramientas para automatizar sistemas utilizando Arduino.
¡Te invitamos a explorar el Capítulo 1 del Curso Control Digital Curso Control Digital Con Arduino!
Práctica: Semáforo básico con Arduino y CADe_SIMU
En este tercer capítulo del curso de Control Digital con Arduino construiremos y simularemos un semáforo básico de tres luces. La práctica permite aplicar el control secuencial de salidas digitales, la temporización de procesos y las señales de arranque y parada, conceptos esenciales en automatización industrial.
Los capítulos anteriores del curso están disponibles en la categoría de Control Industrial de TellesElectronic.
Objetivo de la práctica
Desarrollar un sistema de control digital para un semáforo básico mediante Arduino UNO y CADe_SIMU 4.2, capaz de ejecutar de forma cíclica la siguiente secuencia:
- Luz verde.
- Luz amarilla.
- Luz roja.
- Repetición de la secuencia mientras el sistema permanezca habilitado.
Además, se utilizarán pulsadores de Start y Stop para controlar la operación general del sistema.
Fundamento del sistema
Un semáforo es un ejemplo sencillo de un sistema de control secuencial: sus salidas no se activan al mismo tiempo, sino que siguen un orden determinado y permanecen activas durante intervalos específicos.
| Estado | Luz activa | Función |
|---|---|---|
| 1 | Verde | Permite el paso |
| 2 | Amarillo | Advierte el cambio de estado |
| 3 | Roja | Detiene el paso |
En esta primera versión utilizaremos la función delay() para establecer los tiempos de cada estado. Es una alternativa adecuada para comprender la secuencia inicial, aunque en una práctica posterior se puede optimizar el sistema con millis() para evitar retardos bloqueantes.
Nota: durante la ejecución de
delay(), Arduino no atiende otras tareas del programa. Por ello, el pulsador Stop puede no detener el sistema de forma inmediata hasta que termine el retardo activo.
Materiales necesarios
- Arduino UNO o Arduino Nano.
- Cables Machos – Hembras
- PC con WIN10
- Software Cade Simu Ver 4.2 (https://cade-simu.com)
- Ide Arduino 1.19 (https://www.arduino.cc/en/software)
- Librería
- Módulo de Relé Optocoplado
- Lámpara piloto 110V (3)
- Pulsador Star Stop (2)
Seguridad: para las primeras pruebas se recomienda usar LEDs con resistencias limitadoras de corriente o lámparas simuladas en CADe_SIMU. Si se emplean cargas de 110/220 V, no deben conectarse directamente a Arduino: se requiere una etapa de aislamiento y potencia, como relés optoacoplados.
Asignación de entradas y salidas
| Elemento | Pin Arduino | Tipo |
|---|---|---|
| Lámpara roja | 2 | Salida digital |
| Lámpara amarilla | 3 | Salida digital |
| Lámpara verde | 4 | Salida digital |
| Pulsador Start | 9 | Entrada digital |
| Pulsador Stop | 8 | Entrada digital |

Semáforo
Secuencia de funcionamiento
Al iniciar el programa, todas las luces permanecen apagadas. El sistema queda en espera hasta que el operador accione el pulsador Start.
Una vez iniciado, el programa ejecuta continuamente la secuencia:
- Verde encendido durante 5 segundo.
- Amarillo encendido durante 2 segundo.
- Rojo encendido durante 5 segundo.
- Reinicio automático del ciclo.
Al presionar Stop, la variable de control se desactiva y el sistema deja de ejecutar la secuencia. Para una condición de parada más segura, el código también apaga explícitamente todas las salidas.
Código para Arduino
/*
Curso de Control Digital con Arduino
Capítulo 3: Semáforo básico
Salidas:
Verde: pin 4
Amarillo: pin 3
Rojo: pin 2
Entradas:
Start: pin 9
Stop: pin 8
*/
// Definición de salidas
#define VERDE 4
#define AMARILLO 3
#define ROJO 2
// Definición de entradas
#define START 9
#define STOP 8
// Variable de estado del sistema
bool sistemaActivo = false;
// Función para apagar todas las luces del semáforo
void apagarSemaforo() {
digitalWrite(VERDE, LOW);
digitalWrite(AMARILLO, LOW);
digitalWrite(ROJO, LOW);
}
void setup() {
// Configuración de salidas
pinMode(VERDE, OUTPUT);
pinMode(AMARILLO, OUTPUT);
pinMode(ROJO, OUTPUT);
// Configuración de entradas
pinMode(START, INPUT);
pinMode(STOP, INPUT);
// Condición inicial: semáforo apagado
apagarSemaforo();
}
void loop() {
// Activación del sistema mediante pulsador Start
if (digitalRead(START) == HIGH) {
sistemaActivo = true;
}
// Parada del sistema mediante pulsador Stop
if (digitalRead(STOP) == LOW) {
sistemaActivo = false;
apagarSemaforo();
}
// Secuencia de funcionamiento del semáforo
if (sistemaActivo) {
// Estado verde: 5 segundos
digitalWrite(VERDE, HIGH);
digitalWrite(AMARILLO, LOW);
digitalWrite(ROJO, LOW);
delay(5000);
// Estado amarillo: 2 segundos
digitalWrite(VERDE, LOW);
digitalWrite(AMARILLO, HIGH);
digitalWrite(ROJO, LOW);
delay(2000);
// Estado rojo: 5 segundos
digitalWrite(VERDE, LOW);
digitalWrite(AMARILLO, LOW);
digitalWrite(ROJO, HIGH);
delay(5000);
}
}
¡Mejores Recomendaciones de Productos en Oferta!
Kit de Inicio Y23A-RFID para Arduino UNO R3 con Motor Paso a Paso, Conjunto de Aprendizaje Versión Mejorada, Kits Electrónicos DIY en Caja
🔗 Haz clic y compra
Nota: Este es un enlace de afiliado. Si compras a través de él, puedo recibir una pequeña comisión sin costo adicional para ti. Solo recomiendo productos que consideraría útiles para mis estudiantes.
Montaje en CADe_SIMU
- Inserte un módulo Arduino UNO en el área de trabajo.
- Agregue dos pulsadores para las señales Start y Stop.
- Añada tres lámparas piloto o indicadores: rojo, amarillo y verde.
- Conecte los pulsadores a las entradas digitales 9 y 8.
- Conecte las lámparas o relés a las salidas digitales 2, 3 y 4.
- Verifique que todas las lámparas estén apagadas al iniciar la simulación.
- Cargue el programa en Arduino IDE y ejecute la simulación.
- Pulse Start para observar la secuencia cíclica de luces.
- Pulse Stop para detener el proceso.
Actividades propuestas
Para fortalecer el aprendizaje, realiza las siguientes modificaciones:
- Cambia los tiempos de las luces a: verde 10 segundos, amarillo 5 segundos y rojo 20 segundos.
- Añade un LED piloto que indique que el sistema está habilitado.
- Modifica la condición de parada para que la luz roja permanezca encendida cuando se presione Stop.
- Implementa una segunda vía de circulación con otro conjunto de luces.
Conclusión
La práctica de semáforo básico introduce el uso de entradas, salidas, variables de estado y temporización en Arduino. Aunque es un sistema sencillo, su lógica es comparable a la empleada en procesos industriales: una secuencia ordenada de acciones, habilitada por mandos de operador y ejecutada bajo condiciones definidas.
En el próximo nivel, la optimización con millis() permitirá controlar el semáforo sin bloquear el programa, haciendo posible atender pulsadores, sensores y alarmas en tiempo real.
![]()






Comentarios recientes