// Khai báo các chân kết nối 
const int ledPins[] = {15, 2, 0, 4, 16, 17, 26, 25, 33, 19, 18, 5};

void setup() {
  // Khởi tạo các chân kết nối là OUTPUT
  for (int i = 0; i < 12; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

// Hiệu ứng Tắt Bật Xen Kẽ (Alternating On-Off)
void alternatingLights() {
  for (int j = 0; j < 3; j++) {  
    // Bật đèn sáng chẵn, tắt đèn sáng lẻ
    for (int i = 0; i < 12; i++) {
      if (i % 2 == 0) {
        digitalWrite(ledPins[i], HIGH);
      } else {
        digitalWrite(ledPins[i], LOW);
      }
    }
    delay(500);
    
    // Bật đèn sáng lẻ, tắt đèn sáng chẵn
    for (int i = 0; i < 12; i++) {
      if (i % 2 != 0) {
        digitalWrite(ledPins[i], HIGH);
      } else {
        digitalWrite(ledPins[i], LOW);
      }
    }
    delay(500);
  }
}

// Hiệu ứng Đèn Nhấp Nháy (Blinking Lights)
void blinkingLights() {
  for (int j = 0; j < 3; j++) {  
    for (int i = 0; i < 12; i++) {
      digitalWrite(ledPins[i], HIGH);
    }
    delay(500);
    for (int i = 0; i < 12; i++) {
      digitalWrite(ledPins[i], LOW);
    }
    delay(500);
  }
}

// Hiệu ứng Đèn Sóng (Wave)
void waveLights() {
  for (int j = 0; j < 3; j++) {  
    for (int i = 0; i < 6; i++) {
      digitalWrite(ledPins[i], HIGH);
      digitalWrite(ledPins[11 - i], HIGH);
      delay(100);
      digitalWrite(ledPins[i], LOW);
      digitalWrite(ledPins[11 - i], LOW);
    }
  }
}

// Hiệu ứng Đèn Nhấp Nháy Ngẫu Nhiên (Random Blinking)
void randomBlinking() {
  for (int j = 0; j < 3; j++) {  
    int led = random(0, 12);
    digitalWrite(ledPins[led], HIGH);
    delay(100);
    digitalWrite(ledPins[led], LOW);
    delay(100);
  }
}

void knightRider() {
  for (int j = 0; j < 3; j++) {  
    for (int i = 0; i < 12; i++) {
      digitalWrite(ledPins[i], HIGH);
      delay(100);
      digitalWrite(ledPins[i], LOW);
    }
    for (int i = 10; i > 0; i--) {
      digitalWrite(ledPins[i], HIGH);
      delay(100);
      digitalWrite(ledPins[i], LOW);
    }
  }
}

void loop() {
  waveLights();
  blinkingLights();
  randomBlinking();
  knightRider();
  alternatingLights(); 
}
$abcdeabcde151015202530354045505560fghijfghij