Cincin Pelangi
Termasuk bagian Layar dan Sensor dalam perjalanan Arduino di Coddy. Pelajaran 17 dari 24.
Memilih merah, hijau, dan biru untuk pelangi itu sulit. Hue lebih mudah: satu angka yang berputar mengelilingi roda warna, dari merah melewati kuning, hijau, sian, biru, dan magenta, lalu kembali ke merah.
ring.ColorHSV(hue) mengubah hue menjadi warna. Hue memiliki rentang dari 0 hingga 65535: 0 adalah merah, sekitar 21845 adalah hijau, sekitar 43690 adalah biru, dan 65536 akan menjadi merah lagi.
Untuk menyebarkan satu pelangi ke 16 piksel, beri setiap piksel selisih 65536 / 16 = 4096 lebih besar daripada piksel sebelumnya. Piksel 15 memerlukan 61440, lebih besar daripada yang dapat ditampung oleh int, jadi simpan hue dalam long dan tulis angkanya sebagai 4096L; L membuat perkalian juga menggunakan long:
for (int i = 0; i < 16; i++) {
long hue = i * 4096L;
ring.setPixelColor(i, ring.ColorHSV(hue));
}
ring.show();Tantangan
SedangWarnai ring dengan pola pelangi:
- pixel 0 berwarna merah (hue 0)
- setiap pixel berikutnya bergeser 4096 sepanjang roda warna, dengan
ring.ColorHSV() - sehingga 16 pixel mengelilingi roda warna satu kali
Tekan Jalankan, lalu Periksa.
Coba sendiri
#include <Adafruit_NeoPixel.h>
// 16 piksel, data pada pin 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
void setup() {
ring.begin();
// beri setiap piksel rona tersendiri, merah pada piksel 0
ring.show();
}
void loop() {
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Layar dan Sensor
Latihan sendiri: Playground Arduino