Étape 3: Les tables de recherche
Une grande première partie du code à l’étape précédente consiste en de grands tableaux constants. Voici les tables de recherche stocker des valeurs pré-calculées pour onde sinusoïdale et fonctions HSV. Bien sûr, il est possible au contraire pour calculer la valeur exacte de chaque LED le temps qu'il est allumé, par exemple, pour le VHS normales :
Ces calculs libérera une mémoire dynamique, mais au prix de la mémoire programme et temps de traitement. Alors que c’est plus ou moins OK avec la simple multiplication de HSV, faire des ondes sinusoïdales en temps réel exige des opérations flottantes point et plus certainement devraient être évités, d'où les tables de recherche.
Notez que la table de recherche d’onde sinusoïdale contienne encore un tableau de zéros à la fin – c’est parce que j’ai utiliser ces tables beaucoup et trouvé qu’une centaine d’octets plus remplie de mémoire dynamique est un bon compromis pour un code plus propre.
Vous pouvez calculer ces tables pendant setup() plutôt qu’en les insérant dans le code – encore une fois, comme je les utilise beaucoup, je préfère les faire une fois et puis juste copier-coller les baies.
Vous pouvez faire votre propre tableau de taille différente ou avec des valeurs différentes, alors voici l’esquisse. Il permet d’imprimer tous les trois tableaux dans la fenêtre de Serial Monitor, il est facile de copier-coller de là.
C’est une bonne idée de garder la recherche-table-génération du code dans la partie setup() de votre esquisse jusqu'à ce que vous êtes parfaitement satisfaits de leurs résultats, puis de copier-coller la table const et de supprimer le code.