LED Knight Rider ESP32
6 LED yang bergerak berurutan dari kiri ke kanan dan dari kanan ke kiri (gaya Knight Rider). Contoh dasar penggunaan loop for dan array. Mengajarkan logika perubahan arah.

Video
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// LED Knight Rider ESP32
4// ─────────────────────────────────────────
5// 6 LED menyala satu per satu dari kiri ke kanan, lalu kembali dari kanan
6// ke kiri (efek Knight Rider). Menunjukkan array dan loop for dua arah.
7//
8// Pin:
9// GPIO 5, 18, 19, 21, 22, 23 -> 6 LED (berurutan)
10// Setiap LED dengan resistor 330 ohm, katode ke GND
11
12const int LED_PINS[] = {5, 18, 19, 21, 22, 23}; // Pin LED, berurutan
13const int LED_COUNT = 6; // Jumlah LED
14const int DELAY_MS = 100; // Waktu nyala per LED (ms)
15
16void setup() {
17 // Atur semua pin LED sebagai output
18 for (int i = 0; i < LED_COUNT; i++) {
19 pinMode(LED_PINS[i], OUTPUT);
20 }
21}
22
23void loop() {
24 // Kanan
25 for (int i = 0; i < LED_COUNT; i++) {
26 digitalWrite(LED_PINS[i], HIGH);
27 delay(DELAY_MS);
28 digitalWrite(LED_PINS[i], LOW);
29 }
30 // Kiri: LED di ujung dilewati agar pantulannya terlihat mulus
31 for (int i = LED_COUNT - 2; i >= 1; i--) {
32 digitalWrite(LED_PINS[i], HIGH);
33 delay(DELAY_MS);
34 digitalWrite(LED_PINS[i], LOW);
35 }
36}
37
FAQ
Apakah arus ESP32 cukup untuk 6 LED?
Arus yang disarankan untuk setiap GPIO sekitar 20 mA; dengan resistor 330 Ω, setiap LED menarik 3–5 mA. Karena hanya satu LED yang menyala pada satu waktu, total arusnya sangat kecil.
Kenapa kita menyimpan pin di array?
Karena nomor pinnya tidak berurutan (5, 18, 19, 21, 22, 23), memakai array memudahkan mengaksesnya satu per satu di dalam loop. Ketika menambah LED, perbarui array LED_PINS sekaligus LED_COUNT; untuk hanya mengubah urutan, mengubah array sudah cukup.
Bisakah aku mempercepat efeknya?
Perkecil nilai delay() di antara langkah. Nilai antara 40 dan 80 ms menghasilkan efek "Knight Rider" yang halus.
Bisakah aku memakai LED strip sebagai pengganti LED?
Bisa, dengan strip addressable WS2812B (NeoPixel), kamu bisa menggerakkan ratusan LED dari satu pin dan membuat masing-masing menyala dengan warna berbeda. Untuk strip yang panjang, dibutuhkan catu daya 5 V terpisah.
