Étape 7: Codage il - un meilleur exemple.
En faisant du vélo à travers tous LED est une bonne indication que cela fonctionne, c’est un peu ennuyeux...
Le croquis ci-joint illustre comment vous pouvez configurer le code pour afficher des images spécifiques (où chaque image est défini comme un tas de LED qui sont on ou off).
La première différence est que j’ai ré-arrangé les variables dans mon tableau de LED pour ressembler à la mise en page sur ma maquette. Malheureusement, il n’y a pas de truc ici. C’est juste des tâtonnements. Regardez la séquence de LED et deux à la fois pour tenter de le tri swop.
Toutefois, la principale différence est la méthode d’affichage (cadre int [5], int duration). Il est assez évident. Il y a beaucoup de bouclage pour obtenir toutes les valeurs pertinentes des différents ensembles, mais la seule partie qui est susceptible d’être source de confusion est ici :
Si (cadre [y] & (0b1000 >> x)) {}
lumière (c [y] [x]) ;
C’est essentiellement en utilisant un opérateur de bits AND sur un octet de Bitshifted pour déterminer si une colonne dans le frame est activée. Lorsque vous droite Maj, la 1 en 0B1000 se déplacera à droite, donc ce que vous faites sont la suivante :
Supposons X = 0 et cadre [y] = 0b0101 :
0b1000 >> 0 est 0B1000
en effectuant une opération AND au niveau du bit sur
0B1000 et
0B0101
vous vous retrouvez avec 0B0000 qui signifie qu'aucune LED ne s’allume.
Si vous passer ensuite à X = 1 et cadre [y] = 0b0101 :
0b1000 >> 1 est 0B0100
en effectuant une opération AND au niveau du bit sur
0B0100 et
0B0101
vous vous retrouvez avec 0B0100 qui signifie tourner sur la deuxième LED (et seulement le deuxième LED) en ligne Y.
Essentiellement, c’est un peu habile de maths pour rendre le code plus propre. Vous pouvez en savoir plus sur les mathématiques au niveau du bit ici :
http://www.Arduino.cc/Playground/code/BitMath
La vidéo montre à quoi ça ressemble quand en cours d’exécution.