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.
Desafío
IntermedioLa 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);
}
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