Anneau arc-en-ciel
Fait partie de la section Écrans et capteurs du Journey Arduino de Coddy. Leçon 17 sur 24.
Choisir le rouge, le vert et le bleu pour un arc-en-ciel est difficile. La teinte est plus facile : un seul nombre qui fait le tour du cercle chromatique, du rouge au jaune, au vert, au cyan, au bleu et au magenta, puis revient au rouge.
ring.ColorHSV(hue) transforme une teinte en couleur. La teinte va de 0 à 65535 : 0 correspond au rouge, environ 21845 au vert, environ 43690 au bleu, et 65536 correspondrait à nouveau au rouge.
Pour répartir un arc-en-ciel sur 16 pixels, attribue à chaque pixel un pas de 65536 / 16 = 4096 de plus que le précédent. Le pixel 15 nécessite 61440, une valeur supérieure à ce que peut contenir un int ; garde donc la teinte dans un long et écris le nombre sous la forme 4096L ; le L fait aussi utiliser long pour la multiplication :
for (int i = 0; i < 16; i++) {
long hue = i * 4096L;
ring.setPixelColor(i, ring.ColorHSV(hue));
}
ring.show();Défi
MoyenPeins un arc-en-ciel autour de l’anneau :
- le pixel 0 est rouge (teinte 0)
- chaque pixel suivant avance de 4096 sur la roue, avec
ring.ColorHSV() - ainsi, les 16 pixels font un tour complet
Appuie sur Run, puis sur Check.
Essayez vous-même
#include <Adafruit_NeoPixel.h>
// 16 pixels, données sur la broche 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
void setup() {
ring.begin();
// attribuer à chaque pixel sa propre teinte, rouge au pixel 0
ring.show();
}
void loop() {
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Écrans et capteurs
Entraînez-vous par vous-même : Playground Arduino