// Định nghĩa chân điều khiển LED
int ledPins[] = {13, 15, 16, 17, 18, 19, 21, 22, 25, 26, 32, 33}; // 12 LED
void setup() {
// Thiết lập tất cả các chân LED làm OUTPUT
for (int i = 0; i < 12; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Hiệu ứng 1: LED sáng từ trái sang phải và ngược lại
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH); // LED sáng
delay(200); // Delay lâu hơn để tạo hiệu ứng chuyển động mượt mà hơn
}
delay(800);
for (int i = 11; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH); // LED sáng ngược lại
delay(200); // Delay lâu hơn để tạo hiệu ứng chuyển động mượt mà hơn
}
delay(800);
// Hiệu ứng 2: LED sáng tất cả cùng lúc rồi tắt tất cả
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH); // Tất cả LED sáng
}
delay(400); // LED sáng trong 0.4 giây
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW); // Tắt tất cả LED
}
delay(800);
// Hiệu ứng 3: LED sáng từ ngoài vào trong (hoặc ngược lại)
for (int i = 0; i < 6; i++) {
digitalWrite(ledPins[i], HIGH); // LED ngoài sáng
digitalWrite(ledPins[11 - i], HIGH); // LED ngoài bên kia sáng
delay(400); // Delay lâu hơn để tạo hiệu ứng chạy mượt mà hơn
}
delay(800); // Chờ trước khi tắt tất cả LED
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW); // Tắt tất cả LED
}
delay(800);
// Hiệu ứng 4: Sáng tắt xen kẽ (LED ngoài sáng, LED trong tắt)
for (int i = 0; i < 6; i++) {
digitalWrite(ledPins[i], HIGH); // LED ngoài sáng
digitalWrite(ledPins[11 - i], HIGH); // LED ngoài bên kia sáng
delay(400);
}
delay(800); // Chờ trước khi tắt tất cả LED
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW); // Tắt tất cả LED
}
delay(800);
// Hiệu ứng 5: LED sáng theo hình trái tim
int heartPattern[12] = {LOW, HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH, HIGH, HIGH, HIGH, LOW}; // Mẫu hình trái tim
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], heartPattern[i]);
}
delay(800);
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(800);
// Gọi các hiệu ứng mới
effect4(); // Hiệu ứng nhấp nháy ngẫu nhiên
effect5(); // Hiệu ứng LED sáng theo kiểu "nhảy múa"
// Hiệu ứng đèn chớp tắt
for (int i = 0; i < 5; i++) {
blinkEffect();
}
}
// Hiệu ứng nhấp nháy LED ngẫu nhiên
void effect4() {
for (int i = 0; i < 12; i++) {
int state = random(2);
digitalWrite(ledPins[i], state);
}
delay(400);
}
// Hiệu ứng LED sáng theo kiểu "nhảy múa"
void effect5() {
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
delay(100);
}
delay(800);
}
// Hiệu ứng đèn chớp tắt
void blinkEffect() {
// Bật tất cả LED
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(500);
// Tắt tất cả LED
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(500);
}