Ahora que sabemos controlar un LED, ¿por qué no controlar ocho? En esta misión, aprenderemos a manejar múltiples salidas para crear efectos visuales y animaciones. Introduciremos dos conceptos de programación increíblemente poderosos que nos ahorrarán escribir cientos de líneas de código: los Arrays y los bucles `for`.
🧠 Protagonista de Hoy: El Bucle `for` y los Arrays
Un Array (o arreglo) es como una caja con compartimentos numerados donde podemos guardar una colección de valores del mismo tipo. En lugar de crear 8 variables para los 8 pines, creamos un solo array. El bucle `for` es una herramienta que hace trabajo repetitivo por nosotros. Le decimos "repite esta acción X veces" y él se encarga, ideal para recorrer nuestro array y activar cada LED uno por uno.
🧠 El Código: Programando Animaciones
Este código nos enseña a ser eficientes. Con muy pocas líneas, controlaremos todos los LEDs para crear un efecto de barrido de ida y vuelta.
/*
* Misión 03: El Efecto "Auto Increíble"
* Descripción: Crea una secuencia de luces con 8 LEDs.
* Por: Profe Campos
* CECyTEM 05 Guacamayas
*/
// Creamos un array de enteros para guardar los números de los pines de nuestros LEDs.
int pinesLeds[] = {2, 3, 4, 5, 6, 7, 8, 9};
// Creamos una variable para saber cuántos LEDs tenemos.
int numLeds = 8;
void setup() {
// Usamos un bucle 'for' para configurar todos los pines como salida.
// "Para i desde 0, mientras i sea menor que 8, incrementa i en 1"
for (int i = 0; i < numLeds; i++) {
pinMode(pinesLeds[i], OUTPUT); // En cada repetición, configura el pin correspondiente.
}
}
void loop() {
// Secuencia de Izquierda a Derecha
for (int i = 0; i < numLeds; i++) {
digitalWrite(pinesLeds[i], HIGH); // Enciende el LED actual.
delay(80); // Espera un momento.
digitalWrite(pinesLeds[i], LOW); // Apaga el LED actual.
}
// Secuencia de Derecha a Izquierda
// "Para i desde 7, mientras i sea mayor o igual a 0, decrementa i en 1"
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(pinesLeds[i], HIGH);
delay(80);
digitalWrite(pinesLeds[i], LOW);
}
}
🔌 Manos a la Obra: El Circuito
Conectaremos 8 LEDs a nuestro Arduino. Será como una pista de aterrizaje personal para practicar el control de múltiples salidas.
Diagrama del Circuito 3
💡 Conceptos Clave de la Misión
- Bucle `for`: Una estructura de control que repite un bloque de código un número específico de veces.
- Array (Arreglo): Una variable que puede almacenar una colección de valores (en este caso, los números de los pines).
🚀 ¡Inténtalo Tú Mismo! (Retos)
- Efecto Dominó: Modifica el código para que los LEDs se enciendan uno por uno y se queden encendidos, y luego se apaguen todos juntos.
- Pares y Nones: Haz que primero parpadeen los LEDs en pines pares (2, 4, 6, 8) y luego los de pines nones (3, 5, 7, 9).
- Control de Velocidad: Añade un potenciómetro al circuito. ¿Puedes hacer que la velocidad de la secuencia cambie al girar la perilla?