#include <Adafruit_NeoPixel.h>
// Jumlah LED per ring
#define NUM_LEDS_PER_RING 16
// Pin yang digunakan untuk mengontrol LED
#define LED_PIN 10
// Jumlah total LED (karena semua ring LED di daisy chain)
#define TOTAL_LEDS (NUM_LEDS_PER_RING * 3)
// Membuat objek strip LED
Adafruit_NeoPixel strip = Adafruit_NeoPixel(TOTAL_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin(); // Memulai strip
strip.show(); // Mengosongkan LED di awal
}
void loop() {
// Nyala ring pertama setiap 1 detik
for (int i = 0; i < NUM_LEDS_PER_RING; i++) {
strip.setPixelColor(i, strip.Color(255, 0, 0)); // Ring pertama: warna merah
strip.show();
delay(1000); // Kecepatan nyala 1 detik per LED
strip.setPixelColor(i, strip.Color(0, 0, 0)); // Matikan LED setelah nyala
strip.show();
}
// Jeda 16 detik untuk ring kedua
delay(1000);
// Nyala ring kedua setiap 1 detik
for (int i = NUM_LEDS_PER_RING; i < NUM_LEDS_PER_RING * 2; i++) {
strip.setPixelColor(i, strip.Color(0, 255, 0)); // Ring kedua: warna hijau
strip.show();
delay(1000); // Kecepatan nyala 1 detik per LED
strip.setPixelColor(i, strip.Color(0, 0, 0)); // Matikan LED setelah nyala
strip.show();
}
// Jeda 16 detik untuk ring kedua
delay(1000);
// Nyala ring ketiga setiap 1 detik
for (int i = NUM_LEDS_PER_RING * 2; i < TOTAL_LEDS; i++) {
strip.setPixelColor(i, strip.Color(0, 0, 255)); // Ring ketiga: warna biru
strip.show();
delay(1000); // Kecepatan nyala 1 detik per LED
strip.setPixelColor(i, strip.Color(0, 0, 0)); // Matikan LED setelah nyala
strip.show();
}
// Ulangi lagi dari awal
}