const int leds[] = {0, 26, 25, 33, 19, 18, 5, 17, 16, 4, 2, 15};
const int numLeds = 12;
const int button = 13; // Chân kết nối nút bấm
int currentEffect = 0; // Hiệu ứng hiện tại
bool buttonPressed = false;
void setup() {
// Cấu hình LED
for (int i = 0; i < numLeds; i++) {
pinMode(leds[i], OUTPUT);
}
// Cấu hình nút bấm
pinMode(button, INPUT);
}
void loop() {
// Kiểm tra trạng thái nút bấm
if (digitalRead(button) == LOW) { // Nút bấm được nhấn
currentEffect = (currentEffect + 1) % 5; // Chuyển đổi hiệu ứng (0 -> 4)
}
// Thực thi hiệu ứng tương ứng
switch (currentEffect) {
case 0: effect1(); break;
case 1: effect2(); break;
case 2: effect3(); break;
case 3: effect4(); break;
case 4: effect5(); break;
}
}
// Hiệu ứng 1: Sáng lần lượt từ LED 1 -> LED 12
void effect1() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
delay(50);
digitalWrite(leds[i], LOW);
}
delay(500);
}
// Hiệu ứng 2: Sáng từ hai bên vào giữa
void effect2() {
for (int i = 0; i < numLeds / 2; i++) {
digitalWrite(leds[i], HIGH);
digitalWrite(leds[numLeds - 1 - i], HIGH);
delay(200);
digitalWrite(leds[i], LOW);
digitalWrite(leds[numLeds - 1 - i], LOW);
}
delay(500);
}
// Hiệu ứng 3: Sáng tất cả rồi tắt dần từng LED
void effect3() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
}
delay(500);
for (int i = numLeds - 1; i >= 0; i--) {
digitalWrite(leds[i], LOW);
delay(300);
}
delay(500);
}
// Hiệu ứng 4: Nhấp nháy toàn bộ LED
void effect4() {
for (int j = 0; j < 5; j++) {
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
}
delay(200);
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], LOW);
}
delay(200);
}
delay(500);
}
// Hiệu ứng 5: LED sáng theo hình trái tim (từng LED sáng dần)
void effect5() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], HIGH);
delay(150);
}
for (int i = 0; i < numLeds; i++) {
digitalWrite(leds[i], LOW);
delay(150);
}
delay(500);
}