#include <Adafruit_NeoPixel.h>
#define PIN_WS2812B 26
#define NUM_PIXELS 12
int area1 = 4, area2 = 8, area3 = 12;
Adafruit_NeoPixel ws2812b(NUM_PIXELS, PIN_WS2812B, NEO_GRB + NEO_KHZ800);
void setup() {
pinMode(PIN_WS2812B, OUTPUT);
ws2812b.begin();
ws2812b.clear();
ws2812b.show();
}
void loop() {
// 1. Merah - Hijau - Biru
showGroupSequential(0, area1, 255,0,0, 150); // area1 merah
showGroupSequential(area1, area2, 0,255,0, 150); // area2 hijau
showGroupSequential(area2, area3, 0,0,255, 150); // area3 biru
delay(500);
// 2. Hijau - Biru - Merah
showGroupSequential(0, area1, 0,255,0, 150); // area1 hijau
showGroupSequential(area1, area2, 0,0,255, 150); // area2 biru
showGroupSequential(area2, area3, 255,0,0, 150); // area3 merah
delay(500);
// 3. Biru - Merah - Hijau
showGroupSequential(0, area1, 0,0,255, 150); // area1 biru
showGroupSequential(area1, area2, 255,0,0, 150); // area2 merah
showGroupSequential(area2, area3, 0,255,0, 150); // area3 hijau
delay(500);
}
// Fungsi untuk nyalakan LED dalam satu grup secara berurutan
void showGroupSequential(int startIdx, int endIdx, uint8_t r, uint8_t g, uint8_t b, int delayTime) {
for (int pixel = startIdx; pixel < endIdx; pixel++) {
ws2812b.setPixelColor(pixel, ws2812b.Color(r, g, b));
ws2812b.show();
delay(delayTime);
}
}