Menu
CoddyTech

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.

challenge icon

Desafio

Médio

O 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);
}
quiz iconTeste seus conhecimentos

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