// Khai báo các chân kết nối LED
const int ledPins[] = {2, 4, 5, 18, 19, 21, 22, 23, 25, 26, 27, 32};
const int numLeds = 12;
void setup() {
// Cấu hình các chân LED là OUTPUT
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
heartBeatEffect();
delay(1000);
chasingEffect();
delay(1000);
blinkingEffect();
delay(1000);
waveEffect();
delay(1000);
randomEffect();
delay(1000);
}
// Hiệu ứng 1: Trái tim đập
void heartBeatEffect() {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < numLeds; j++) {
digitalWrite(ledPins[j], HIGH);
}
delay(200);
for (int j = 0; j < numLeds; j++) {
digitalWrite(ledPins[j], LOW);
}
delay(200);
}
}
// Hiệu ứng 2: LED chạy đuổi
void chasingEffect() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
// Hiệu ứng 3: Nhấp nháy toàn bộ
void blinkingEffect() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < numLeds; j++) {
digitalWrite(ledPins[j], HIGH);
}
delay(500);
for (int j = 0; j < numLeds; j++) {
digitalWrite(ledPins[j], LOW);
}
delay(500);
}
}
// Hiệu ứng 4: Sóng lan tỏa
void waveEffect() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
// Hiệu ứng 5: Ngẫu nhiên LED sáng
void randomEffect() {
for (int i = 0; i < 10; i++) {
int randLed = random(0, numLeds);
digitalWrite(ledPins[randLed], HIGH);
delay(200);
digitalWrite(ledPins[randLed], LOW);
}
}