Menu
CoddyTech

Jasność NeoPixeli

Część sekcji Wyświetlacze i czujniki ścieżki Arduino w Coddy. Lekcja 16 z 24.

NeoPixele świecą jasno. ring.setBrightness(level) przyciemnia je wszystkie naraz: 0 oznacza wyłączenie, a 255 pełną jasność.

Działa to przez skalowanie kolorów zapisanych w pamięci płytki. Przy jasności 64, czyli około jednej czwartej, czerwień o wartości 255 jest zapisywana jako 64. Jest jednak pewien haczyk: skalowanie powoduje utratę szczegółów. Zmniejsz jasność do 0, a każdy zapisany kolor zmieni się na 0, więc po ponownym zwiększeniu jasności nie pozostanie nic do przeskalowania i pierścień nadal będzie ciemny.

Dlatego po każdej zmianie jasności ustaw kolory ponownie:

ring.setBrightness(level);
ring.fill(white);   // zapisane z nowym poziomem jasności
ring.show();

Kolory ustawione po setBrightness() są skalowane podczas zapisywania.

challenge icon

Wyzwanie

Średni

Pokrętło na A0 służy do regulacji jasności pierścienia:

  • zamień odczyt na jasność z zakresu od 0 do 255 za pomocą map()
  • ustaw ją za pomocą ring.setBrightness()
  • następnie wypełnij pierścień białym kolorem i wyświetl go przy każdym przebiegu loop()

Naciśnij Run i obróć pokrętło, a następnie naciśnij Check.

Spróbuj swoich sił

#include <Adafruit_NeoPixel.h>

// 16 diod LED, dane na pinie 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);
  // ustaw jasność za pomocą pokrętła, a następnie zaświeć cały pierścień na biało
  delay(50);
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wyświetlacze i czujniki

Poćwicz samodzielnie: Edytor online Arduino