95. Creación de patrones con ciclos for
Creación de Patrones con Matrices de LEDs
Introducción
En este tutorial aprenderemos a crear diferentes patrones con matrices de LEDs, específicamente trabajando con filas y columnas de forma secuencial.
Paso 1: Configuración Inicial
Primero, necesitamos comentar el código anterior para probar nuestros nuevos patrones:
// Comentamos el ciclo anterior para probar nuevos patrones
/*
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
// Código anterior...
}
}
*/Paso 2: Encendido Secuencial de Columnas
Vamos a crear un ciclo para encender todas las columnas en secuencia:
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
digitalWrite(matriz[i][j], HIGH); // Encender LED
}
delay(250); // Espera después de encender toda la columna
}Paso 3: Apagado de los LEDs
Después del encendido, necesitamos apagar todos los LEDs:
// Apagamos todos los LEDs
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
digitalWrite(matriz[i][j], LOW); // Apagar LED
}
}Paso 4: Patrón Inverso (de Abajo hacia Arriba)
Para crear un patrón inverso, modificamos los ciclos:
// Patrón inverso - de abajo hacia arriba
for (int i = filas - 1; i >= 0; i--) {
for (int j = columnas - 1; j >= 0; j--) {
digitalWrite(matriz[i][j], HIGH); // Encender LED
}
delay(250); // Espera después de encender toda la columna
}
// Apagamos todos los LEDs nuevamente
for (int i = filas - 1; i >= 0; i--) {
for (int j = columnas - 1; j >= 0; j--) {
digitalWrite(matriz[i][j], LOW); // Apagar LED
}
}Paso 5: Código Completo
Aquí está el código completo con todos los patrones:
void setup() {
// Configuración inicial de pines
// (tu código de configuración aquí)
}
void loop() {
// Patrón normal - de arriba hacia abajo
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
digitalWrite(matriz[i][j], HIGH);
}
delay(250);
}
// Apagado
for (int i = 0; i < filas; i++) {
for (int j = 0; j < columnas; j++) {
digitalWrite(matriz[i][j], LOW);
}
}
// Patrón inverso - de abajo hacia arriba
for (int i = filas - 1; i >= 0; i--) {
for (int j = columnas - 1; j >= 0; j--) {
digitalWrite(matriz[i][j], HIGH);
}
delay(250);
}
// Apagado final
for (int i = filas - 1; i >= 0; i--) {
for (int j = columnas - 1; j >= 0; j--) {
digitalWrite(matriz[i][j], LOW);
}
}
}Explicación de Conceptos Clave
Variables Importantes:
filas: Número de filas en tu matriz de LEDscolumnas: Número de columnas en tu matriz de LEDsmatriz[i][j]: Array bidimensional que representa tu matriz de LEDs
Puntos Clave:
Ciclos Anidados: Usamos dos ciclos
forpara recorrer filas y columnasDigitalWrite: Función para encender (
HIGH) o apagar (LOW) cada LEDDelay: Controla la velocidad de la animación
Índices Inversos: Usando
i--yj--creamos el patrón inverso
Consejos Adicionales
Puedes ajustar el valor de
delay()para cambiar la velocidad de la animaciónExperimenta con diferentes combinaciones de encendido/apagado
Prueba encender patrones específicos en lugar de filas/columnas completas
Comentarios
Publicar un comentario