NeoPixel-Helligkeit
Teil des Abschnitts Displays und Sensoren der Arduino-Journey von Coddy. Lektion 16 von 24.
NeoPixels sind hell. ring.setBrightness(level) dimmt sie alle gleichzeitig: 0 bedeutet aus, 255 volle Helligkeit.
Das funktioniert, indem die im Speicher des Boards gespeicherten Farben skaliert werden. Bei Helligkeit 64, also etwa einem Viertel, wird ein Rotwert von 255 als 64 gespeichert. Der Haken: Durch die Skalierung gehen Details verloren. Drehst du die Helligkeit auf 0 herunter, wird jede gespeicherte Farbe zu 0. Wenn du sie dann wieder erhöhst, gibt es nichts mehr zu skalieren, und der Ring bleibt dunkel.
Setze die Farben daher immer erneut, nachdem sich die Helligkeit geändert hat:
ring.setBrightness(level);
ring.fill(white); // mit der neuen Helligkeit gespeichert
ring.show();Farben, die nach setBrightness() gesetzt werden, werden beim Speichern skaliert.
Aufgabe
MittelDer Drehknopf an A0 dient als Dimmer für den Ring:
- Wandle den Messwert mit
map()in eine Helligkeit von 0 bis 255 um - Setze sie mit
ring.setBrightness() - Fülle dann den Ring bei jedem Durchlauf von
loop()weiß und zeige ihn an
Drücke Run und drehe am Knopf, dann Check.
Probier es selbst
#include <Adafruit_NeoPixel.h>
// 16 Pixel, Daten an 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);
// stelle die Helligkeit mit dem Drehknopf ein und lass dann den gesamten Ring weiß leuchten
delay(50);
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Displays und Sensoren
3NeoPixels
Dein erster NeoPixelFarben auf einem PixelringDen Ring füllen und löschenPixel-JägerNeoPixel-HelligkeitRegenbogenringÜbe selbstständig: Arduino-Playground