Paso 3: Tablas de búsqueda
Una gran primera parte del código en el paso anterior consta de grandes matrices constantes. Estas son tablas de búsqueda almacenar valores previamente calculados para las funciones de la VHS y la onda de seno. Por supuesto, es posible en cambio calcular el valor exacto de cada LED el tiempo que esté encendido, por ejemplo, de VHS normal:
Estos cálculos liberarán de memoria dinámica, pero a costa de la memoria de programa y tiempo de procesamiento. Mientras que es más o menos bien con la simple multiplicación de HSV, haciendo ondas sinusoidales en tiempo real requiere operaciones con flotante punto y la mayoría sin duda debe evitarse, por lo tanto, las tablas de búsqueda.
Observe que la tabla de búsqueda de la onda de seno incluso contiene una matriz de ceros al final – que es porque uso mucho estas tablas y encontró que un centenar más llenas bytes de memoria dinámica es un buen compromiso para un código más limpio.
Puede calcular estas tablas durante setup() en lugar de insertarlos en el código, una vez más, como yo los uso mucho, prefiero hacerlas una vez y luego simplemente copiar y pegar los arreglos de discos.
Puede que desee hacer su propia tabla de tamaño diferente o con diferentes valores, así que aquí está el bosquejo. Imprimirá todas las tres matrices en la ventana de Monitor Serial, es fácil de copiar y pegarlos de allí.
Es una buena idea para mantener el código de generación de tabla de búsqueda en la parte de setup() del boceto hasta que estés perfectamente satisfecho con sus resultados, luego copiar y pegar la tabla const y eliminar el código.