#6Menengah

Efek LED Knight Rider

4.8(106)
202 selesai
Efek LED Knight Rider
Lampu pemindai klasik: sebuah titik cahaya meluncur dari satu ujung enam LED ke ujung lainnya lalu kembali. Arduino menyalakan setiap LED selama sepersepuluh detik sebelum pindah, berbalik di setiap ujung, dan terus menyapu bolak-balik tanpa henti. Titik awal yang bagus untuk lampu dekorasi dan lampu peringatan.

Video

Skema rangkaian

Efek LED Knight Rider - Circuit

Kode sumber

C++ (Arduino IDE)
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.