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:

cpp
// 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:

cpp
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:

cpp
// 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:

cpp
// 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:

cpp
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 LEDs

  • columnas: Número de columnas en tu matriz de LEDs

  • matriz[i][j]: Array bidimensional que representa tu matriz de LEDs

Puntos Clave:

  1. Ciclos Anidados: Usamos dos ciclos for para recorrer filas y columnas

  2. DigitalWrite: Función para encender (HIGH) o apagar (LOW) cada LED

  3. Delay: Controla la velocidad de la animación

  4. Índices Inversos: Usando i-- y j-- creamos el patrón inverso

Consejos Adicionales

  • Puedes ajustar el valor de delay() para cambiar la velocidad de la animación

  • Experimenta con diferentes combinaciones de encendido/apagado

  • Prueba encender patrones específicos en lugar de filas/columnas completas

Comentarios

Entradas más populares de este blog

11. Ejemplos Básicos de Leds y Pulsadores

12. Demostracion de como usar Tinkercad para simular Arduino con circuitos

Lectura de Potenciómetro con Arduino Uno en Tinkercad