// 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();
}