// Khai báo các chân GPIO cho 12 LED
const int ledPins[] = {0, 2, 4, 5, 15, 16, 17, 18, 19, 25, 26, 33};
void setup() {
// Cấu hình các chân LED là OUTPUT
for (int i = 0; i < 12; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Hiệu ứng 1: LED sáng lên theo thứ tự từ ngoài vào trong (hình trái tim)
heartEffect1();
delay(1000);
// Hiệu ứng 2: LED sáng lên theo thứ tự từ trong ra ngoài
heartEffect2();
delay(1000);
// Hiệu ứng 3: LED sáng theo hình trái tim đầy đủ
heartEffect3();
delay(1000);
// Hiệu ứng 4: LED sáng theo kiểu chớp tắt
heartEffect4();
delay(1000);
// Hiệu ứng 5: LED sáng lên theo kiểu wave (sóng)
heartEffect5();
delay(1000);
}
// Hiệu ứng 1: LED sáng từ ngoài vào trong (hình trái tim)
void heartEffect1() {
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100); // Delay để tạo hiệu ứng sáng từ ngoài vào trong
}
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW);
}
}
// Hiệu ứng 2: LED sáng từ trong ra ngoài (hình trái tim)
void heartEffect2() {
for (int i = 11; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(100); // Delay để tạo hiệu ứng sáng từ trong ra ngoài
}
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW);
}
}
// Hiệu ứng 3: LED sáng lên tất cả (hình trái tim đầy đủ)
void heartEffect3() {
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(500); // Để LED sáng trong một khoảng thời gian
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW);
}
}
// Hiệu ứng 4: LED sáng chớp tắt
void heartEffect4() {
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH);
}
delay(100); // Sáng tất cả LED trong 100ms
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(100); // Tắt tất cả LED trong 100ms
}
// Hiệu ứng 5: LED sáng lên theo kiểu sóng
void heartEffect5() {
for (int i = 0; i < 12; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100); // Delay để tạo hiệu ứng sóng
digitalWrite(ledPins[i], LOW);
}
}