Código de búsqueda

Lección 98-7: Luz caminante usando Arduino y 5 LED

Lección 98-7: Luz caminante usando Arduino y 5 LED

Una luz caminante (también llamada luz "perseguidora" o "Knight Rider") es uno de los proyectos clásicos de Arduino para principiantes, y con razón. Te enseña cómo controlar múltiples salidas en secuencia, cómo temporizar eventos y cómo pensar en resistencias limitadoras de corriente, todo mientras produces algo visualmente satisfactorio. En este proyecto cablearás cinco LEDs a un Arduino y los programarás para que cada uno se encienda por turno, creando la ilusión de una sola luz que "camina" a lo largo de la fila.

5 leds on breadboard with resistor shown connected to Arduino UNO
5 leds en la protoboard con resistencia mostrada conectada al Arduino UNO

Una vez que entiendas el patrón, puedes reutilizarlo en un número sorprendente de montajes del mundo real:

  • Iluminación decorativa: un borde perseguidor para un estante, un marco de fotos o una maqueta.
  • Indicadores de dirección: un efecto de intermitente secuencial para un vehículo de utilería o una bicicleta eléctrica.
  • Pantalla de progreso o estado: una fila de LEDs que avanza a medida que se completa un proceso.
  • Utilería para juegos y marcadores: un "objetivo móvil" o indicador de nivel.
  • Material didáctico: la demostración más clara posible de salidas digitales y temporización.

El mismo cableado de cinco LEDs se reutiliza en varios otros proyectos de este curso, así que el hardware que construyas aquí se convierte en una plataforma reutilizable.

Cómo funciona la luz caminante

El principio es exactamente el mismo que encender un solo LED; simplemente se repite cinco veces (en el video en 30:47). Cada LED está conectado a su propio pin del Arduino a través de su propia resistencia limitadora de corriente, y todas las resistencias comparten un riel de tierra común. Luego el sketch pone un pin en HIGH, espera, lo pone en LOW, espera y pasa al siguiente pin. Como solo un LED está encendido a la vez, el ojo interpreta la secuencia como movimiento.

Los dos valores de temporización son los que le dan su carácter al efecto. El tiempo encendido controla cuánto tiempo permanece encendido cada LED, y el tiempo apagado controla el intervalo antes de que se encienda el siguiente LED. Un tiempo encendido corto con un tiempo apagado largo produce un solo punto que viaja rápidamente; un tiempo encendido largo con un tiempo apagado corto produce un barrido más suave y continuo (en el video en 35:00).

Hardware y componentes

  • 1 × placa Arduino (Uno, Nano o similar)
  • 5 × LEDs (de cualquier color; mezclar colores hace que el efecto sea más fácil de leer)
  • 5 × resistencias — de 300 Ω a 1 kΩ funcionan bien
  • 1 × protoboard
  • Cables jumper
  • Cable USB o paquete de baterías para la alimentación

Si más adelante quieres añadir una variante con pulsador, también necesitarás un pulsador momentáneo y dos cables jumper adicionales.

Elegir el valor de la resistencia

Un LED tiene un voltaje directo de aproximadamente 2 V y necesita unos 10 mA para brillar a plena intensidad (en el video en 03:49). Con una alimentación de 5 V, la resistencia debe caer los 3 V restantes. Aplicando la ley de Ohm, R = V / I = 3 V / 0.01 A = 300 Ω. En la práctica, cualquier valor desde 300 Ω hasta aproximadamente 1 kΩ funcionará; cuanto mayor sea la resistencia, más tenue será el LED, pero más seguro y eficiente será el circuito (en el video en 05:33).

Schematic for Arduino walking light LEDs with push button
Esquema para LEDs de luz caminante con Arduino y pulsador

Guía de cableado

wiring of 5 LED on Arduino
cableado de 5 LEDs en Arduino

Inserta los cinco LEDs en la protoboard con sus ánodos (la pata más larga) mirando en la misma dirección. Conecta cada cátodo (la pata más corta y de lado plano) a su propia resistencia, y une el extremo lejano de las cinco resistencias a un riel de tierra común. Luego lleva un jumper desde cada ánodo a un pin del Arduino.

En este montaje los LEDs están asignados a los pines 3, 4, 5, 6 y 7 (en el video en 31:29). Los números de pin se definen al principio del sketch, así que si prefieres una disposición diferente solo necesitas cambiar esas cinco líneas.

Explicación del código

El sketch es deliberadamente simple para que un principiante pueda seguir cada línea. Solo el bloque de la parte superior necesita editarse para tu propia configuración.

const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30;  // the time each LED waits in the OFF state
int onTime = 100;  // the time each LED is ON

Definiciones de pines. Las cinco líneas const int asignan cada LED a un pin físico del Arduino. Como están declaradas const, los valores no pueden cambiarse más adelante en el programa; este es un hábito de seguridad que evita reasignaciones accidentales. Si cableas tus LEDs a pines diferentes, cambia los números aquí y nada más.

onTime y offTime. Estos dos enteros son las únicas variables de "comportamiento" del proyecto, y son con las que querrás experimentar:

  • onTime — cuánto tiempo (en milisegundos) permanece encendido cada LED. Los valores más grandes hacen que cada paso se sienta más lento y más deliberado.
  • offTime — la pausa después de que un LED se apaga antes de que se encienda el siguiente. Los valores más pequeños hacen que la luz viaje más rápido.

Prueba onTime = 200 y offTime = 200 para un recorrido uniforme a velocidad media, o onTime = 30 y offTime = 30 para un efecto muy rápido, casi borroso (en el video en 36:06).

La función setup() se ejecuta una vez y simplemente configura los cinco pines en modo OUTPUT. La función loop() luego repite el mismo patrón de cuatro pasos para cada LED: poner el pin en HIGH, esperar onTime, ponerlo en LOW, esperar offTime. Cuando el quinto LED termina, el bucle se reinicia desde el primero, produciendo un recorrido sin fin.

Proyecto en vivo y demostración

Con los valores predeterminados, los LEDs avanzan a lo largo de la fila a un ritmo relajado. Subir el sketch con onTime y offTime configurados en 200 ms da una marcha constante y uniforme; bajar ambos a 30 ms hace que la luz recorra la fila casi demasiado rápido para seguirla (en el video en 36:21).

Dos experimentos útiles para probar una vez que funcione:

  • Haz que el tiempo encendido sea más corto que el tiempo apagado para crear un punto viajero bien definido.
  • Haz que el tiempo encendido sea más largo que el tiempo apagado para crear un brillo suave y superpuesto.

El mismo cableado de cinco LEDs se reutiliza en el siguiente proyecto, donde un pulsador avanza la luz un paso a la vez. Ese montaje se cubre en Lección 98-8: Luz caminante con pulsador y LEDs con Arduino.

Si prefieres controlar la fila desde una entrada analógica en lugar de un botón, consulta Lección 98-9: Medidor de nivel de voltaje con LEDs usando Arduino o luz caminante con potenciómetro.

Llevándolo más lejos

Una vez que el recorrido básico funcione, un siguiente paso natural es hacer que la luz rebote de un lado a otro en lugar de saltar del último LED al primero. Eso es un ejercicio puramente de código — sin hardware adicional — y es una buena manera de practicar bucles y arrays. También puedes combinar este proyecto con la versión con pulsador para construir una pantalla avanzada manualmente.

Proyectos relacionados de este video

Capítulos

  • [00:00] Resumen de los diez proyectos con LED
  • [01:22] Introducción al curso paso a paso de Arduino
  • [02:29] Qué es un LED y cómo identificar sus pines
  • [03:49] Cálculo de la resistencia limitadora de corriente
  • [30:47] Presentación del proyecto de luz caminante
  • [31:06] Diagrama de cableado para cinco LEDs
  • [32:52] Explicación del código de la luz caminante
  • [34:39] Demostración y cambio de los valores de temporización
  • [36:41] Avanzar la luz con un pulsador (tutorial separado)
  • [42:25] Barra de voltaje con LEDs y potenciómetro (tutorial separado)
  • [49:25] Semáforo con Arduino (tutorial separado)

Imágenes

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
5 leds en protoboard con resistencia mostrados conectados a Arduino UNO
5 leds en protoboard con resistencia mostrados conectados a Arduino UNO
939-Lessson 98-LED-7: Arduino code walking LED light
Idioma: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Archivos📁

Bibliotecas de Arduino (zip)

Manual del Usuario