Luminosità dei NeoPixel
Fa parte della sezione Display e sensori del percorso Arduino di Coddy. Lezione 16 di 24.
I NeoPixel sono luminosi. ring.setBrightness(level) li abbassa tutti insieme: 0 significa spenti, 255 è la luminosità massima.
Funziona ridimensionando i colori memorizzati nella memoria della scheda. Con una luminosità di 64, circa un quarto, un rosso di 255 viene memorizzato come 64. Il problema è che il ridimensionamento elimina i dettagli. Abbassa la luminosità a 0 e ogni colore memorizzato diventa 0, quindi, quando la aumenti di nuovo, non rimane più nulla da ridimensionare e l'anello resta spento.
Quindi, ogni volta che cambia la luminosità, reimposta i colori subito dopo:
ring.setBrightness(level);
ring.fill(white); // memorizzato con la nuova luminosità
ring.show();I colori impostati dopo setBrightness() vengono ridimensionati mentre sono memorizzati.
Sfida
MedioLa manopola su A0 regola la luminosità dell’anello:
- trasforma la lettura in una luminosità da 0 a 255 con
map() - impostala con
ring.setBrightness() - poi riempi l’anello di bianco e visualizzalo a ogni iterazione di
loop()
Premi Run e gira la manopola, poi Check.
Provalo tu
#include <Adafruit_NeoPixel.h>
// 16 pixel, dati sul 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);
// imposta la luminosità in base alla manopola, poi illumina di bianco l'intero anello
delay(50);
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Display e sensori
3NeoPixel
Il tuo primo NeoPixelColori su un anello di pixelRiempire e svuotare l’anelloInsegui-pixelLuminosità dei NeoPixelAnello arcobalenoEsercitati da solo: Playground Arduino