Paso 6: Software - configuración de cosas
La clase principal de nuestro interés será la pantalla - es responsable de la instalación de chips MAX y proporciona API para pintura.
Antes de empezar a pintar es necesario establecer la cosa. Código siguiente crea la matriz 2D que contiene líneas de esclavo seleccione e inicializa la pantalla. La pantalla sí mismo consisten en 3 filas, cada una cuenta con 8 módulos de LED. Obviamente usted puede elegir cualquier tamaño responsable, pero se pegue a este.
El diseño de matriz 2D mencionado corresponde a la pantalla física: cada módulo de LED ha dedicado chip MAX, y cada chip ha dedicado línea seleccionar esclavo. Primera dimensión de la matriz indica fila físico en pantalla, segunda dimensión indica módulo LED en esta fila, y el valor sí mismo contiene el número de PIN de esclavo seleccione línea.
#include "Display.h" Display *disp; /** * Orientation of LED Kits (8x8 LED matrix) on display that I've used for testing. * The numbers are indicating Select Slave line of MAX7219. * 48, 46, 49, 47, 45, 43, 41, 39 * 36, 34, 32, 30, 28, 26, 24, 22 * 37, 35, 33, 31, 29, 27, 25, 23 */ ss_t **ss; ss_t** createSS() { ss_t **ss = alloc2DArray8(3, 8); // first row ss[0][0] = 48; ss[0][1] = 46; ss[0][2] = 49; ss[0][3] = 47; ss[0][4] = 45; ss[0][5] = 43; ss[0][6] = 41; ss[0][7] = 39; // second row ss[1][0] = 36; ss[1][1] = 34; ss[1][2] = 32; ss[1][3] = 30; ss[1][4] = 28; ss[1][5] = 26; ss[1][6] = 24; ss[1][7] = 22; // third row ss[2][0] = 37; ss[2][1] = 35; ss[2][2] = 33; ss[2][3] = 31; ss[2][4] = 29; ss[2][5] = 27; ss[2][6] = 25; ss[2][7] = 23; return ss; } void setup() { util_setup(); log_setup(); ss = createSS(); // Test display consist of 8x3 LED Modules (3 rows, each one 8 Modules) disp = new Display(8, 3, ss); disp->setup(); }
Hay un método más digno de mención: log_setup(). Toda
proyecto tiene reservado registrador precisa - para que puedan ver lo que realmente está sucediendo. Por defecto está deshabilitada, para habilitarla revisa su documentación: https://github.com/maciejmiklas/ArdLog