Brilho do NeoPixel
Parte da seção Displays e sensores do Journey de Arduino da Coddy. Lição 16 de 24.
Os NeoPixels são brilhantes. ring.setBrightness(level) reduz o brilho de todos de uma só vez: 0 significa desligado, 255 é o brilho máximo.
Isso funciona dimensionando as cores armazenadas na memória da placa. Com brilho 64, cerca de um quarto, um vermelho de 255 é armazenado como 64. O problema: o dimensionamento descarta detalhes. Reduza o brilho para 0 e todas as cores armazenadas se tornam 0; assim, ao aumentá-lo novamente, não resta nada para dimensionar, e o anel permanece apagado.
Portanto, sempre que o brilho mudar, defina as cores novamente depois:
ring.setBrightness(level);
ring.fill(white); // armazenado com o novo nível de brilho
ring.show();As cores definidas depois de setBrightness() são dimensionadas à medida que são armazenadas.
Desafio
MédioO botão em A0 funciona como um dimmer para o anel:
- transforme a leitura em um brilho de 0 a 255 com
map() - defina-o com
ring.setBrightness() - depois preencha o anel com branco e exiba-o, a cada execução de
loop()
Pressione Run e gire o botão, depois Check.
Experimente você mesmo
#include <Adafruit_NeoPixel.h>
// 16 pixels, dados no pino 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t white = ring.Color(255, 255, 255);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0);
// ajuste o brilho pelo botão giratório e, em seguida, acenda todo o anel na cor branca
delay(50);
}
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