Menu
CoddyTech

NeoPixel Parlaklığı

Coddy'nin Arduino Journey'sinin Ekranlar ve Sensörler bölümünün bir parçası. Ders 16 / 24.

NeoPixel'lar parlaktır. ring.setBrightness(level) hepsinin parlaklığını aynı anda azaltır: 0 kapalı, 255 tam parlaklıktır.

Bu işlem, kartın belleğinde saklanan renkleri ölçeklendirerek çalışır. Parlaklık 64'te, yani yaklaşık dörtte bir seviyedeyken, 255 değerindeki kırmızı 64 olarak saklanır. Ancak bu ölçeklendirme ayrıntıları kaybettirir. Parlaklığı 0'a düşürürseniz saklanan her renk 0 olur; dolayısıyla parlaklığı tekrar artırdığınızda ölçeklendirilecek hiçbir şey kalmaz ve halka karanlık kalır.

Bu yüzden parlaklık her değiştiğinde, ardından renkleri yeniden ayarlayın:

ring.setBrightness(level);
ring.fill(white);   // yeni parlaklık düzeyinde saklanır
ring.show();

setBrightness() sonrasında ayarlanan renkler saklanırken ölçeklendirilir.

challenge icon

Görev

Orta

A0 üzerindeki düğme, halka için bir parlaklık ayarlayıcısıdır:

  • okuma değerini map() ile 0 ile 255 arasında bir parlaklık değerine dönüştür
  • ring.setBrightness() ile ayarla
  • ardından loop() döngüsünün her geçişinde halkayı beyazla doldur ve göster

Run'a bas ve düğmeyi çevir, ardından Check'e bas.

Kendin dene

#include <Adafruit_NeoPixel.h>

// 16 piksel, veri 6 numaralı pinde
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);
  // parlaklığı düğmeye göre ayarla, ardından halkanın tamamını beyaz renkte yak
  delay(50);
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Ekranlar ve Sensörler bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground