Cómo Hacer un Semáforo Arduino Paso a Paso: Guía Completa y Código

Esquema de conexiones Fritzing para un proyecto de semáforo con Arduino Uno, que muestra tres LEDs (rojo, amarillo, verde), resistencias de limitación de corriente y cables de puente sobre una protoboard.

El mundo de la electrónica y la programación se abre de par en par cuando realizas tu primer proyecto práctico. Uno de los ejercicios más clásicos, didácticos y gratificantes para cualquier principiante es construir un semáforo Arduino. Este proyecto no solo te enseña los fundamentos de la programación en C++, sino que también te introduce al manejo de componentes electrónicos básicos como luces LED, resistencias y el uso de la placa de pruebas (protoboard).

En esta guía definitiva, te explicaremos desde cero cómo armar tu propio semáforo con Arduino, detallando los materiales que necesitas, el esquema de conexiones exacto, y por supuesto, el código fuente listo para copiar, pegar y modificar.

¿Qué es un Semáforo Arduino y por qué es el proyecto ideal?

Un semáforo Arduino es una simulación a pequeña escala de un semáforo de tráfico real, controlado por una placa microcontroladora Arduino. Utilizando tres LEDs de colores (rojo, amarillo y verde), programamos la placa para que encienda y apague cada luz en una secuencia de tiempo específica, imitando el control de tráfico urbano.

Para quienes recién comienzan, este proyecto es fundamental por varias razones:

  1. Entrada y Salida de Datos: Aprendes a configurar los pines digitales del Arduino como salidas (OUTPUT) para enviar corriente a los LEDs.
  2. Lógica Secuencial: Comprendes cómo el código se ejecuta línea por línea de forma descendente y en un bucle infinito (loop).
  3. Manejo del Tiempo: Introducción a la función delay(), crucial para pausar la ejecución del programa durante intervalos precisos.
  4. Hardware Básico: Pierdes el miedo a conectar cables, identificar la polaridad de los LEDs y proteger los componentes usando resistencias.

Materiales Necesarios para tu Semáforo con Arduino

Para llevar a cabo este proyecto, necesitarás componentes muy accesibles. Si no tienes los componentes sueltos, la forma más económica y rápida de empezar es adquirir un kit completo que trae todo lo necesario para este y docenas de proyectos más.

Te recomendamos echar un vistazo a nuestro Kit Arduino Uno, el cual incluye la placa, cables, LEDs y todo lo que listamos a continuación:

  • 1 Placa Arduino Uno (o compatible).
  • 1 Cable USB para conectar el Arduino al computador.
  • 1 Protoboard (placa de pruebas).
  • 3 Luces LED (1 rojo, 1 amarillo, 1 verde).
  • 3 Resistencias de 220 o 330 ohmios (para evitar que los LEDs se quemen).
  • 4 Cables puente (Jumper wires) macho-macho.

Esquema de Conexiones: Armado del Circuito del Semáforo Arduino

Antes de escribir una sola línea de código, debemos preparar el hardware. Basándonos en el diagrama de conexión estándar, sigue estos pasos para armar tu circuito de manera segura.

Paso 1: Preparar la tierra (GND)

Toma un cable negro o azul y conéctalo desde uno de los pines etiquetados como GND (Ground/Tierra) en tu Arduino hacia la línea azul (negativa) de tu protoboard. Esto creará un riel de tierra común para todos los componentes.

Paso 2: Colocar los LEDs en la Protoboard

Inserta los tres LEDs (rojo, amarillo y verde) en la protoboard. Es vital recordar que los LEDs tienen polaridad:

  • La pata larga es el ánodo (positivo).
  • La pata corta es el cátodo (negativo).

Conecta la pata corta de cada LED a la línea de tierra común que creamos en el paso anterior.

Paso 3: Proteger los LEDs con Resistencias

Para evitar que la corriente directa del Arduino queme los LEDs, debes usar resistencias. Conecta una resistencia desde la pata larga (positiva) de cada LED hacia una fila vacía en la protoboard.

Paso 4: Conectar a los Pines del Arduino

Ahora, usaremos cables puente para conectar el otro extremo de las resistencias a los pines digitales del Arduino. Según nuestro esquema:

  • Conecta el LED Rojo al Pin 7 del Arduino.
  • Conecta el LED Amarillo al Pin 4 del Arduino.
  • Conecta el LED Verde al Pin 2 del Arduino.

¡Excelente! Ya tienes el hardware listo. Ahora es el momento de darle vida a tu semáforo Arduino mediante la programación.

Código Fuente del Semáforo Arduino

Conecta tu placa al computador, abre el Arduino IDE (el entorno de desarrollo oficial), y copia el siguiente código fuente.

// Definición de los pines para el semáforo Arduino
int pinRojo = 7;
int pinAmarillo = 4;
int pinVerde = 2;

// Tiempos de espera en milisegundos
int tiempoRojo = 5000;      // 5 segundos
int tiempoAmarillo = 2000;  // 2 segundos
int tiempoVerde = 5000;     // 5 segundos

void setup() {
  // Configurar los pines como salidas (OUTPUT)
  pinMode(pinRojo, OUTPUT);
  pinMode(pinAmarillo, OUTPUT);
  pinMode(pinVerde, OUTPUT);
}

void loop() {
  // FASE 1: Luz Verde encendida
  digitalWrite(pinVerde, HIGH);
  digitalWrite(pinAmarillo, LOW);
  digitalWrite(pinRojo, LOW);
  delay(tiempoVerde); // Espera 5 segundos

  // FASE 2: Luz Amarilla encendida (Transición)
  digitalWrite(pinVerde, LOW);
  digitalWrite(pinAmarillo, HIGH);
  digitalWrite(pinRojo, LOW);
  delay(tiempoAmarillo); // Espera 2 segundos

  // FASE 3: Luz Roja encendida
  digitalWrite(pinVerde, LOW);
  digitalWrite(pinAmarillo, LOW);
  digitalWrite(pinRojo, HIGH);
  delay(tiempoRojo); // Espera 5 segundos
}

Explicación del Código del Semáforo en Arduino

Para dominar este microcontrolador, no basta con copiar y pegar; es fundamental entender qué hace cada bloque de código.

Declaración de Variables

Al principio del código, usamos variables de tipo int (entero) para nombrar los pines. En lugar de escribir el número 7 todo el tiempo, lo llamamos pinRojo. Esto hace que el código sea mucho más legible y fácil de modificar si decides cambiar los cables de lugar.

La función setup()

La función setup() se ejecuta una sola vez cuando el Arduino se enciende o se reinicia. Aquí usamos la instrucción pinMode() para indicarle al cerebro de la placa que los pines 2, 4 y 7 van a enviar energía hacia afuera (OUTPUT), en lugar de leer información de un sensor.

La función loop()

Aquí reside la magia de nuestro semáforo Arduino. La función loop() se repite infinitamente. Usamos digitalWrite() para enviar 5 voltios a un pin (HIGH para encender) o 0 voltios (LOW para apagar). Luego, usamos delay() para detener la ejecución por una cantidad de milisegundos específicos (recordemos que 1000 milisegundos equivalen a 1 segundo).

La secuencia lógica es idéntica a la vida real: Encendemos verde, esperamos, cambiamos a amarillo, esperamos menos tiempo, y finalmente pasamos a rojo para detener el tráfico ficticio.

Mejoras y Variantes para tu Proyecto

Una vez que tengas funcionando este proyecto básico, puedes desafiar tus habilidades de programación añadiendo nuevas funciones. Aquí tienes algunas ideas para evolucionar tu semáforo Arduino:

  1. Semáforo para Peatones: Añade dos LEDs extra (uno rojo y uno verde) para simular el paso peatonal. La lógica debe ser inversa: cuando el semáforo de autos esté rojo, el de peatones debe estar verde.
  2. Botón de Cruce: Incorpora un pulsador (botón). El semáforo se mantendrá en verde para los autos indefinidamente hasta que un “peatón” presione el botón, lo que desencadenará la secuencia para poner el semáforo en rojo.
  3. Múltiples Intersecciones: Intenta armar dos semáforos que funcionen sincronizados, simulando un cruce de calles donde uno está en verde mientras el otro obliga a detenerse.

Para profundizar en el funcionamiento de funciones avanzadas de interrupción o lectura de botones, puedes consultar la documentación oficial de referencia de Arduino.

Preguntas Frecuentes (FAQ) sobre el Semáforo Arduino

1. ¿Por qué mis LEDs no se encienden? El error más común es conectar los LEDs al revés. Recuerda que la corriente fluye en una sola dirección. Verifica que la pata larga (ánodo) esté conectada hacia la resistencia y el pin digital, y la pata corta (cátodo) hacia GND.

2. ¿Qué pasa si no uso resistencias en mi semáforo Arduino? Los pines digitales de Arduino suministran 5V, mientras que un LED rojo típico opera a unos 2V. Sin una resistencia que limite la corriente, el LED recibirá demasiada energía y se quemará de forma inmediata o reducirá drásticamente su vida útil.

3. ¿Puedo usar otros pines para armar el circuito? Sí, absolutamente. Puedes usar cualquier pin digital (del 2 al 13 en un Arduino Uno). Solo asegúrate de actualizar el número del pin en las primeras líneas de tu código fuente para que coincidan con tus conexiones físicas.

4. El código me arroja error al subirlo a la placa, ¿qué hago? Verifica que hayas seleccionado la placa correcta (“Arduino Uno”) y el puerto COM adecuado en el menú Herramientas (Tools) del Arduino IDE. Además, revisa que no falte ningún punto y coma (;) al final de las líneas de código, ya que es el error de sintaxis más habitual.

Conclusión

Crear un semáforo Arduino es un rito de paso esencial para cualquier entusiasta de la tecnología. Con una inversión mínima de tiempo y recursos, logras comprender la interacción directa entre el código de software (las instrucciones lógicas) y el hardware (el resultado físico en el mundo real).

No olvides que si te faltan componentes, puedes equiparte rápidamente con nuestro Kit Arduino Uno para llevar este y futuros proyectos al siguiente nivel. ¡Sigue practicando, experimentando con el código y no te rindas si a la primera no funciona, la perseverancia es clave tanto en la electrónica como en la vida digital!

Agregar un comentario

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