Menu
CoddyTech

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.

challenge icon

Sfida

Medio

La 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);
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Display e sensori

Esercitati da solo: Playground Arduino