Menu
CoddyTech

Gökkuşağı Halkası

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

Gökkuşağı için kırmızı, yeşil ve maviyi seçmek zordur. Renk tonu daha kolaydır: renk çarkında kırmızıdan başlayıp sarı, yeşil, camgöbeği, mavi ve macentadan geçerek yeniden kırmızıya dönen tek bir sayı.

ring.ColorHSV(hue) bir renk tonunu renge dönüştürür. Renk tonu 0 ile 65535 arasında değişir: 0 kırmızıdır, yaklaşık 21845 yeşildir, yaklaşık 43690 mavidir ve 65536 yeniden kırmızı olur.

Tek bir gökkuşağını 16 piksele yaymak için her piksele, önceki pikselden 65536 / 16 = 4096 daha fazla bir adım verin. 15. piksel için 61440 gerekir; bu, bir int değişkenin tutabileceğinden fazladır. Bu yüzden renk tonunu bir long içinde tutun ve sayıyı 4096L olarak yazın; L, çarpmanın da long kullanmasını sağlar:

for (int i = 0; i < 16; i++) {
  long hue = i * 4096L;
  ring.setPixelColor(i, ring.ColorHSV(hue));
}
ring.show();
challenge icon

Görev

Orta

Halkanın etrafına bir gökkuşağı çiz:

  • 0. piksel kırmızı (renk tonu 0)
  • sonraki her piksel, ring.ColorHSV() ile renk çarkında 4096 birim ilerlesin
  • böylece 16 piksel çarkın etrafında bir tur atar

Run'a, 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);

void setup() {
  ring.begin();

  // her piksele kendine özgü bir renk tonu ver, 0 numaralı piksel kırmızı olsun

  ring.show();
}

void loop() {
}
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