Paso 8: Usando un Array para almacenar y establecer los Estados de una matriz de LED
En el último paso hemos visto cómo utilizar bytes simplifica el proceso de creación de los Estados de cada fila en la matriz de LED. Ahora a echar un vistazo a una estrategia para almacenar esa información en una matriz. Una matriz es un lugar donde podemos guardar una colección de relacionadas con las variables, en este caso, va a utilizar un array para almacenar los Estados de cada fila en la matriz. Ya que estamos representando los Estados de cada fila de la matriz utilizando un byte, y hay 8 filas, necesito un array de 8 bytes para almacenar los Estados de todos los 64 LEDs en la matriz de LED. Aquí es cómo se crea la matriz
ledStates Byte [8] = {0, 15, 0, 0, 0, 84, 0, 0};
He inicializa el array con un conjunto de bytes, lanzó en algunos cero bytes para ver cómo muestran en la matriz de LED. Aquí es cómo se utiliza la matriz:
Para obtener una variable almacenada en una matriz, se usa la sintaxis siguiente:
nombreArray [variableIndex]
donde variableIndex es el lugar de la variable en la matriz. Por ejemplo:
ledStates [0] es igual a 0
ledStates [1] es igual a 15
porque la primera (índice = 0) elemento de la matriz es 0 y el segundo (Índice = 1) elemento de la matriz es de 15.
Puesto que ya no estoy iterando sobre el pinNums en mi bucle, he creado una función auxiliar que convierte entre mi variable iterador "i" y el pin del Arduino conectado a la línea de interés:
int getPinNumForLEDIndex (int Indice) {}
volver índice + 6;
}
Intente cambiar los bytes de la matriz ledStates para ver cómo afectan a la salida de la matriz. También trate de cambiar las variables en ledStates como el dibujo, utilice la sintaxis siguiente:
ledStates [indexNum] = newValue
Usted también puede definir los Estados de los LEDs mediante bytes que se escriben de la siguiente manera:
B11011011
El B permite Arduino saber que debe esperar un número binario, entonces los números a continuación 8 son 8 dígitos en binario que desea mostrar. Esto hace un poco más fácil diseñar un patrón 2D en la matriz de LED. Trate de usar esta matriz:
ledStates Byte [8] = {B0111100, B01000010, B10110101, B10000101, B10000101, B10110101, B01000010, B0111100};