Menu
CoddyTech

Brillo de NeoPixel

Parte de la sección Pantallas y sensores del Journey de Arduino de Coddy. Lección 16 de 24.

Los NeoPixels son brillantes. ring.setBrightness(level) los atenúa todos a la vez: 0 significa apagado y 255, brillo máximo.

Funciona escalando los colores almacenados en la memoria de la placa. Con un brillo de 64, aproximadamente una cuarta parte, un rojo de 255 se almacena como 64. El inconveniente: el escalado elimina detalles. Baja el brillo a 0 y todos los colores almacenados se convierten en 0, así que, al volver a subirlo, ya no queda nada que escalar y el anillo permanece apagado.

Así que, cada vez que cambie el brillo, vuelve a establecer los colores después:

ring.setBrightness(level);
ring.fill(white);   // almacenado con el nuevo nivel de brillo
ring.show();

Los colores establecidos después de setBrightness() se escalan al almacenarse.

challenge icon

Desafío

Intermedio

La perilla de A0 controla el brillo del anillo:

  • convierte la lectura en un brillo de 0 a 255 con map()
  • configúralo con ring.setBrightness()
  • después, llena el anillo de blanco y muéstralo en cada iteración de loop()

Pulsa Run y gira la perilla; después, pulsa Check.

Pruébalo tú mismo

#include <Adafruit_NeoPixel.h>

// 16 píxeles, datos en el pin 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);
  // ajusta el brillo con la perilla y luego ilumina todo el anillo de blanco
  delay(50);
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Pantallas y sensores

Practica por tu cuenta: Playground de Arduino