
Video
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Efek LED Knight Rider
4// ─────────────────────────────────────────
5// 6 LED menyala satu per satu maju, lalu mundur (efek Knight Rider).
6// Menunjukkan logika loop for dua arah.
7//
8// Pin:
9// D2, D3, D4, D5, D6, D7 -> 6 LED (berurutan)
10// Setiap LED dengan resistor 330 ohm
11
12int ledPins[] = {2, 3, 4, 5, 6, 7}; // Pin LED sesuai urutan nyala
13
14void setup() {
15 // Atur semua pin LED sebagai output
16 for(int i = 0; i < 6; i++) {
17 pinMode(ledPins[i], OUTPUT);
18 }
19}
20
21void loop() {
22 // Maju: D2 ke D7, 100 ms per LED
23 for(int i = 0; i < 6; i++) {
24 digitalWrite(ledPins[i], HIGH);
25 delay(100);
26 digitalWrite(ledPins[i], LOW);
27 }
28
29 // Mundur: D6 ke D3. LED di ujung dilewati agar pantulannya terlihat mulus
30 for(int i = 4; i > 0; i--) {
31 digitalWrite(ledPins[i], HIGH);
32 delay(100);
33 digitalWrite(ledPins[i], LOW);
34 }
35}
36
FAQ
Bagaimana efek Knight Rider dibuat?
LED menyala berurutan, pertama dari kiri ke kanan, lalu dari kanan ke kiri. Dua loop "for" berjalan berurutan; karena loop kedua menghitung ke arah sebaliknya, cahayanya bergerak bolak-balik.
LED di ujung-ujungnya terlihat berkedip dua kali, bagaimana memperbaikinya?
Jika loop menyalakan kembali LED di ujung, LED itu akan menyala selama dua langkah. Kamu bisa mencegah pengulangan di ujung dengan memulai loop satu nomor indeks lebih awal atau lebih akhir (mis. dari 4 sampai 1).
Bagaimana cara mengatur kecepatannya?
Ubah nilai delay() di antara setiap langkah. Nilai antara 30 dan 80 ms menghasilkan efek yang halus. Jika kamu ingin mengatur kecepatan ketika program sedang berjalan, kamu bisa menambahkan potensiometer, seperti di proyek berikutnya, "Efek LED Knight Rider dengan Kecepatan yang Bisa Diatur."
Bisakah aku menambah LED?
Bisa, kamu cukup menambahkan pin baru ke array pin dan memperbarui batas loop-nya. Uno punya 12 pin digital yang kosong; untuk lebih banyak lagi, kamu bisa menggerakkan 8+ LED hanya dengan 3 pin memakai shift register 74HC595.
