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();Görev
OrtaHalkanı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() {
}
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
1Yedi Segmentli Göstergeler
Yedi Segmentli GöstergeBaytlardaki Rakam DesenleriGöstergede SaymaSıfıra Geri SayımZar Atıcı3NeoPixel'ler
İlk NeoPixel'inizPixel Halkasında RenklerHalkayı Doldurma ve TemizlemePixel TakipçisiNeoPixel ParlaklığıGökkuşağı HalkasıKendi başına pratik yap: Arduino playground