Menu
CoddyTech

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();
challenge icon

Tantangan

Sedang

Warnai 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() {
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Layar dan Sensor

Latihan sendiri: Playground Arduino