Ir al contenido
← Volver a Formación Arduino Principiante

01. Semáforo LED con secuencia

Tu primer circuito con Arduino: tres LEDs que reproducen el ciclo de un semáforo real con temporización.

Dificultad: Principiante · Tiempo: 30 min · Cerebro: Arduino Uno

🧰 Lista de materiales

Arduino Uno R3 (ATmega328P)
Arduino Uno R3 (ATmega328P)
Cerebro: ejecuta la secuencia
LED 5 mm rojo difuso
LED 5 mm rojo difuso
Fase STOP
LED 5 mm amarillo difuso
LED 5 mm amarillo difuso
Fase PRECAUCIÓN
LED 5 mm verde difuso
LED 5 mm verde difuso
Fase PASO
sin foto
Resistencias película metálica 1/4 W
220 Ω en serie con cada LED
Breadboard 830 puntos
Breadboard 830 puntos
Montaje sin soldadura

🎯 Qué vas a aprender

Este es el «Hola mundo» de la electrónica. Vas a controlar tres LEDs desde un microcontrolador y a entender los dos conceptos que sostienen casi todo lo demás: las salidas digitales (GPIO) y la temporización con delay().

Al terminar sabrás encender y apagar cargas a voluntad, calcular la resistencia limitadora de un LED y leer un esquema de conexión sencillo.

📚 Teoría: por qué un LED necesita una resistencia

Un LED (diodo emisor de luz) no se comporta como una bombilla. Tiene una tensión directa (Vf) fija — alrededor de 2 V para rojo/amarillo/verde — y por encima de ella la corriente se dispara. Si lo conectas directo a los 5 V del Arduino, pasarían cientos de miliamperios y el LED (o el pin) se quemaría en segundos.

La resistencia limitadora absorbe la diferencia de tensión y fija la corriente. Se calcula con la Ley de Ohm:

R = (V_fuente − V_led) / I_deseada
R = (5 V − 2 V) / 0,015 A  ≈  200 Ω  →  usamos 220 Ω (valor estándar)
💡 ConsejoCon 220 Ω circulan unos 13 mA: brillo de sobra y muy por debajo del máximo de 20 mA del LED y de los 40 mA por pin del ATmega328P.

🔌 Conexiones

El ánodo (pata larga, +) de cada LED va al pin de Arduino a través de su resistencia. El cátodo (pata corta, junto al chaflán plano) va a GND.

LEDPin ArduinoResistenciaA GND
RojoD10220 ΩCátodo → GND
AmarilloD9220 ΩCátodo → GND
VerdeD8220 ΩCátodo → GND
⚠ AtenciónRespeta la polaridad: un LED conectado al revés no enciende (pero no se daña). Si no enciende, dale la vuelta antes de pensar que está roto.

💻 Código completo

Copia este sketch en el IDE de Arduino y súbelo a la placa. Está comentado línea a línea.

// Semáforo LED — ciclo rojo → verde → amarillo
const int LED_ROJO     = 10;
const int LED_AMARILLO = 9;
const int LED_VERDE    = 8;

void setup() {
  // Configuramos los tres pines como SALIDA digital
  pinMode(LED_ROJO,     OUTPUT);
  pinMode(LED_AMARILLO, OUTPUT);
  pinMode(LED_VERDE,    OUTPUT);
}

void loop() {
  // --- Fase STOP: rojo 5 s ---
  digitalWrite(LED_ROJO, HIGH);
  delay(5000);
  digitalWrite(LED_ROJO, LOW);

  // --- Fase PASO: verde 4 s ---
  digitalWrite(LED_VERDE, HIGH);
  delay(4000);
  digitalWrite(LED_VERDE, LOW);

  // --- Fase PRECAUCIÓN: amarillo 1,5 s ---
  digitalWrite(LED_AMARILLO, HIGH);
  delay(1500);
  digitalWrite(LED_AMARILLO, LOW);
  // el loop() se repite indefinidamente
}

🛠️ Montaje paso a paso

  1. Coloca los tres LEDs en la breadboard, separados, con el cátodo (pata corta) hacia el carril negativo (−).
  2. Une el carril negativo (−) de la breadboard a un pin GND del Arduino.
  3. Conecta una resistencia de 220 Ω entre el ánodo de cada LED y un cable hacia su pin (D10, D9, D8).
  4. Conecta el Arduino al PC por USB y sube el sketch.
  5. Observa el ciclo. Ajusta los valores de delay() a tu gusto.

🧩 Resolución de problemas

SíntomaCausa probableSolución
Ningún LED enciendeGND no conectadoVerifica el cable del carril − al GND
Un LED no enciendePolaridad invertidaDa la vuelta a ese LED
Brillo muy bajoResistencia demasiado grandeUsa 220 Ω, no 2,2 kΩ
Sketch no subePuerto/placa mal seleccionadosIDE → Herramientas → Placa: Arduino Uno

🚀 Para ir más lejos

  • Añade un pulsador de peatón (proyecto 03) que acorte la fase verde.
  • Sustituye los delay() por millis() para no bloquear el programa.
  • Monta dos semáforos cruzados sincronizados.
← Volver a Formación Arduino