#define NUM_LEDS 12
int leds[NUM_LEDS] = {15, 2, 0, 33, 25, 26, 4, 16, 17, 5, 18, 19};
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
for (int i = 0; i < NUM_LEDS; i++) {
pinMode(leds[i], OUTPUT);
}
}
void loop() {
// Hiệu ứng 1: Bật tất cả các LED
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[i], HIGH);
}
delay(1000);
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[i], LOW);
}
delay(1000);
// Hiệu ứng 2: Sáng toàn bộ LED rồi tắt từng cái
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[i], HIGH);
}
delay(1000);
for (int i = NUM_LEDS - 1; i >= 0; i--) {
digitalWrite(leds[i], LOW);
delay(200);
}
// Hiệu ứng 3: Nhấp nháy toàn bộ LED
for (int i = 0; i < 5; i++) {
for (int j = 0; j < NUM_LEDS; j++) {
digitalWrite(leds[j], HIGH);
}
delay(200);
for (int j = 0; j < NUM_LEDS; j++) {
digitalWrite(leds[j], LOW);
}
delay(200);
}
// Hiệu ứng 4: Chạy LED theo thứ tự sắp xếp thực tế
int order[] = {1, 3, 5, 2, 0, 4, 6, 9, 11, 8, 7, 10}; // Thứ tự chạy LED
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[order[i]], HIGH);
delay(100);
digitalWrite(leds[order[i]], LOW);
}
// Hiệu ứng 5: Sáng tắt xen kẽ các LED
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[i], i % 2 == 0 ? HIGH : LOW);
}
delay(500);
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[i], i % 2 != 0 ? HIGH : LOW);
}
delay(500);
// Hiệu ứng 6: Hiệu ứng sóng nước
for (int i = 0; i < NUM_LEDS; i++) {
digitalWrite(leds[i], HIGH);
delay(100);
digitalWrite(leds[i], LOW);
}
for (int i = NUM_LEDS - 1; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
delay(100);
digitalWrite(leds[i], LOW);
}
// Hiệu ứng 7: Hiệu ứng ngẫu nhiên
for (int i = 0; i < NUM_LEDS; i++) {
int randomLed = random(NUM_LEDS);
digitalWrite(leds[randomLed], HIGH);
delay(100);
digitalWrite(leds[randomLed], LOW);
}
}