Étape 3: Verres Code
Pour ceux d'entre vous qui veulent juste aller de l’avant et faire et le faire fonctionner, j’ai joint ma version du code pour mes lunettes. N’hésitez pas à le prendre et l’utiliser tel quel.
Pour ceux d'entre vous qui veulent plus d’une compréhension de ce qui se passe, je vais expliquer certaines des fonctions et des principales choses à noter concernant le codage de l’Arduino pour contrôler cette bande LED. La première fois que j’ai commencé avec lui, j’ai utilisé le même mis en place que le fichier de test qui Adafruit fourni. Au cours des mois, j’ai acquis une meilleure compréhension de ce que chacune de ces parties font.
1) à un Arduino, la bande LED est un "objet", dans le sens de science informatique du mot. Elle instancie au début avec le nombre de LEDs et les broches numériques que la bande a été branché.
Cela a beaucoup de conséquences pour ce que vous pouvez l’utiliser pour. Ce que j’ai travaillé plus récemment utilise plusieurs d'entre eux et la création d’un tableau de ces « objets de strip » pour gérer plusieurs d'entre eux à la fois.
2) strip.begin() elle tourne essentiellement
3) strip.show() est extrêmement important. Si vous pensez que tout simplement en définissant la couleur du pixel d’une LED, la LED s’allume. Au lieu de cela, strip.show() est la fonction qui met à jour l’état de la bande de LED, et donc même si vous définissez une couleur de pixel, il ne sera pas "show" sur la bande jusqu'à ce que strip.show() a été appelée.
Cela rend la mise en place de la fonction assez importante. Non seulement il est essentiel d’inscrire celle-ci après avoir changé la couleur de la bande, mais en outre, la plaçant au bon endroit peut avoir un effet sur la vitesse à laquelle les lumières semblent changer. À titre d’exemple, supposons que vous vouliez tourner toutes les LED de la bande sur une couleur particulière en même temps. Si vous définissez la couleur d’une seule LED et puis utilisez strip.show() et puis itérez que jusqu'à la fin de votre bande, vous verrez un petit délai entre une LED allumer et la LED à côté s’allumer, car il faut quelques durée petite mais finie pour strip.show() à courir. La chose optimale à faire serait de changer la couleur de toutes les LED un par un, mais utiliser strip.show() à la fin pour qu’ils sont tous allument à la fois au lieu d’un à la fois.
4) strip.setPixelColor(int p, uint32_t c) celui-ci est plutôt clair--elle définit la couleur de pixel donnée une position p le long de la bande et un c de couleur. L’expression « uint32_t » désigne le « type » qu’il accepte et signifie que la valeur de couleur est 32 bits.
5) colorChase(uint32_t c, uint8_t wait) rebondit une lumière sur la bande de LED, d’un côté à l’autre. « c » est la couleur, et « wait » est le montant de délai entre chaque LED.
6) colorPong(uint32_t c, uint8_t wait) rebondit une lumière des extrémités opposées de la bande et les a rebondir les uns les autres au milieu.
7) chaseBlack(uint32_t c, uint8_t wait) il n’existe aucun moyen réel d’avoir la bande flash une lumière "noire", donc, fondamentalement, que c’est l’inverse de la fonction colorChase, car il s’allume toutes les lumières à l’exception d’un pixel qui est éteinte et semble "noir".
8) strobeLight(uint32_t c) c’est une lumière stroboscopique.