Anel arco-íris
Parte da seção Displays e sensores do Journey de Arduino da Coddy. Lição 17 de 24.
Escolher vermelho, verde e azul para um arco-íris é difícil. Matiz é mais fácil: um número que percorre o círculo de cores, do vermelho passando por amarelo, verde, ciano, azul e magenta, e voltando ao vermelho.
ring.ColorHSV(hue) transforma um matiz em uma cor. O matiz vai de 0 a 65535: 0 é vermelho, aproximadamente 21845 é verde, aproximadamente 43690 é azul, e 65536 seria vermelho novamente.
Para espalhar um arco-íris por 16 pixels, dê a cada pixel um incremento de 65536 / 16 = 4096 em relação ao anterior. O pixel 15 precisa de 61440, mais do que um int comporta, então mantenha o matiz em um long e escreva o número como 4096L; o L faz com que a multiplicação também use long:
for (int i = 0; i < 16; i++) {
long hue = i * 4096L;
ring.setPixelColor(i, ring.ColorHSV(hue));
}
ring.show();Desafio
MédioPinte um arco-íris ao redor do anel:
- pixel 0 vermelho (matiz 0)
- cada próximo pixel avança 4096 posições na roda, com
ring.ColorHSV() - assim, os 16 pixels dão uma volta completa
Pressione Executar e, em seguida, Verificar.
Experimente você mesmo
#include <Adafruit_NeoPixel.h>
// 16 pixels, dados no pino 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
void setup() {
ring.begin();
// atribua a cada pixel sua própria tonalidade, com vermelho no pixel 0
ring.show();
}
void loop() {
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Displays e sensores
Pratique por conta própria: Playground de Arduino