Objetivos
En este laboratorio aprenderás a:
- Entender qué es un bucle en programación.
- Usar repetición para controlar múltiples LEDs.
- Crear patrones de luz.
- Introducir la idea de secuencias y automatización.
- Mejorar la lógica de programación con estructuras repetitivas.
Material necesario
- Circuit Playground Express
- Cable USB
- Computadora con CircuitPython
- Código de laboratorios anteriores
Introducción
Hasta ahora has aprendido a:
- Encender y apagar luces
- Usar botones para tomar decisiones
- Hacer programas interactivos
Pero hay un problema importante:
👉 ¿Qué pasa si quieres repetir una acción muchas veces?
Por ejemplo:
- Encender 10 luces una por una
- Hacer parpadear una luz 100 veces
- Crear una animación
Si lo haces manualmente, sería muy largo y aburrido.
Aquí es donde aparece una de las ideas más importantes de la programación:
🔁 ¿Qué es un bucle?
Un bucle es una instrucción que permite repetir algo automáticamente.
Es como decir:
“Haz esto muchas veces sin que yo lo escriba una y otra vez”
Ejemplo cotidiano
Imagina que tienes que decir:
- “hola” 100 veces
Sin bucles sería:
- hola
- hola
- hola
- hola
(…hasta 100 líneas)
Con bucles es solo:
👉 “repite 100 veces: hola”
🧠 Curiosidad:
Los bucles son la base de los videojuegos, animaciones y robots.
Conociendo los NeoPixels como matriz
La placa tiene varias luces LED (NeoPixels).
Podemos imaginarlas como una fila:
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Cada número representa una luz diferente.
Nuestro tercer programa
Vamos a crear una animación simple:
👉 Una luz verde que se mueve de un LED a otro
Código completo
import time
from adafruit_circuitplayground import cp
VERDE = (0, 255, 0)
APAGADO = (0, 0, 0)
cp.pixels.brightness = 0.2
while True:
for i in range(10):
cp.pixels[i] = VERDE
time.sleep(0.2)
cp.pixels[i] = APAGADO
Explicación del código
1. Bucle infinito
while True:
Significa:
👉 “repite todo para siempre”
Esto crea una animación sin fin.
2. Bucle FOR
for i in range(10):
Esto significa:
👉 “repite esto 10 veces”
La variable i cambia así:
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Cada número representa un LED.
3. Encender LED actual
cp.pixels[i] = VERDE
Esto enciende una luz específica.
4. Pausa
time.sleep(0.2)
Esto hace que podamos ver el movimiento.
5. Apagar LED
cp.pixels[i] = APAGADO
Esto limpia la luz antes de pasar a la siguiente.
💡 Curiosidad:
Este tipo de efecto se usa en letreros LED, robots y videojuegos retro.
Cómo funciona físicamente
El microcontrolador:
- Ejecuta el bucle
- Cambia el LED activo uno por uno
- Envía señales eléctricas a cada NeoPixel
- Crea la ilusión de movimiento
👉 En realidad NO se mueve la luz
👉 Solo se encienden LEDs diferentes muy rápido
Retos del laboratorio
🟢 Reto 1: Ida y vuelta
Haz que la luz:
- Vaya del LED 0 al 9
- Luego regrese del 9 al 0
💡 Objetivo: aprender bucles dobles.
🟡 Reto 2: Dos luces al mismo tiempo
Modifica el programa para que:
- Se encienda LED actual
- Y el siguiente LED también
Ejemplo:
- 0 y 1 encendidos
- 1 y 2 encendidos
- 2 y 3 encendidos
💡 Objetivo: manipular múltiples posiciones.
🔴 Reto 3: Efecto “respiración”
Haz que:
- Todos los LEDs se enciendan lentamente
- Luego se apaguen lentamente
- Repitan el ciclo
💡 Objetivo: controlar intensidad y ritmo.
Resumen del laboratorio
En este laboratorio aprendiste:
- Qué es un bucle y por qué es importante.
- Cómo usar
forpara repetir acciones. - Cómo controlar múltiples LEDs de forma ordenada.
- Cómo crear animaciones simples con código.
- Cómo la repetición es clave en programación y tecnología.
Ahora ya puedes crear movimiento con código:
👉 las luces ya no son estáticas, ahora se comportan como una animación viva
Valentina Tech