Paso 2: Iniciar hackeando el código...
Para modificar el código significó convertir código de arduino, en una hoja de cálculo,
separación de datos específicos, manipular tablas, luego poner cosas detrás juntos y pegar en un editor de texto. Para cojín con ceros para evitar columnas alineadas, es necesario formatear algunas columnas para utilizar ceros, luego más tarde tienes que cambiar esos ceros para espacios o el compilador le rechinan a usted. También tienes que tener cuidado al pegar la información en la hoja de cálculo. A veces usted necesita para asegurarse de que solamente pegar los datos, no la fórmula o el vínculo. Otras veces que hay que tener cuidado al copiar las relaciones hacia abajo una fila, columna o matriz. Terminé haciendo varios procesos y varias hojas de cálculo para todos los datos. Necesitaba 8 mapas de datos (4 de cátodo común y 4 para el ánodo común). Probablemente le acaban de cambiar a 2 mapas y una línea para ajustar la partida value(z=z+1,2,3) de z y otra para inhibir el problema de desbordamiento (más de 192 entonces z = z-192).
Hay varios archivos que contienen diversos trozos de código que trabajar este cubo del LED, y hay unas mesas de información que se puede manipular para cambiar cómo funciona. El archivo cubeplex.h contiene la tabla flushbuffer, que es lo que decidí modificar.
Aquí hay un par líneas muestra el buffer de lavado.
Si (_cube_buffer [0]! = 0) flushElement (copy_frame, 4, 8, _cube_buffer [0]);
Si (_cube_buffer [1]! = 0) flushElement (copy_frame, 16, 4, _cube_buffer [1]);
Si (_cube_buffer [2]! = 0) flushElement (copy_frame, 12, 16, _cube_buffer [2]);
Si (_cube_buffer [3]! = 0) flushElement (copy_frame, 8,12, _cube_buffer [3]);
Puedes ver cada línea se serializa en ambos extremos, pero en medio de la línea, hay un par de números que son únicos a cada línea. También puede notar que hay espacios de relleno los números, para que las cosas se alinean muy bien, esto es importante cuando se manipulan los datos posteriormente.
Esta tabla del código establece una relación entre pares de número y la secuencia para encender cada LED. Los números de los pares representan los pines del microcontrolador, pero más tarde se traducen a direcciones de los puertos para la iluminación rápida.
Cada LED puede ser controlado en esta tabla, y no se repetirán combinaciones del número. La secuencia debe permanecer igual, pero los pares de números que representan los pines del microcontrolador tendrá que volver a organizar para trabajar con LEDs de ánodo común con el código original (ánodo común) y el cableado. Normalmente utilizo un editor de texto para escribir programas, pero en este caso, un editor de texto no funciona muy bien para manipular los datos. Ya que estaba tratando con una tabla de números, 2 columnas por 192 filas, una hoja de cálculo parecen los más adecuados.
Esto no es la primera vez que lo he hecho, esta es la segunda vez que lo he hecho, fue un poco más fácil esta vez. La otra vez que lo hice fue crear tabla 4 para compensar cómo se orienta con el cableado del cubo el cubo. Dependiendo de cómo conectar los cables, existen 4 maneras comunes para hacerlo, cada tabla trabaja con cada una de las 4 maneras que usted puede fijar los cables.
Para hacer un cubo de ánodo común trabajar con el software de cátodo común, usted naturalmente asumiría que invirtiendo los pines haría exactamente lo que quieres, pero si te fijas en los complejos números grandes de mirada de esquemas de charlieplexed LED, asumes que invirtiendo los pines puede no hacer lo correcto en todo.
Cuando uno examina el el LED spires, encontrará que usa 4 pines a luz 12 LED, esto es ideal en que cada combinación posible de formas de conectar un solo positivo y un solo plomo negativo, resultará en un LED se enciende. La fórmula para calcular cuantos LEDs se puede encender de un número dado de pines del microcontrolador, es N al cuadrado menos N o N veces (N-1). Una aguja solo tiene 4 cables, el máximo que puede controlar 12 LEDs (4 x 4 = 16, 16-4 = 12, o 4 veces 3 = 12. 4 LEDs RGB significa un total de 12 LEDs. El cubo es menos que ideal, en que utiliza 16 pernos a 192 LEDs de control, sin embargo el máximo número de LEDs debe ser una 240, si fueron conectados en forma de idea.
Cuando usted mira el código, verá que cada 4 líneas es un grupo, ya que los pines del microcontrolador 4 controlan una sola aguja.
Ahora veamos cómo manipular los datos con una hoja de cálculo y un editor de texto, para obtener los resultados deseados.