LED Berjalan dengan Kecepatan yang Bisa Diatur

Video
Skema rangkaian

Kode sumber
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// LED Berjalan dengan Kecepatan yang Bisa Diatur
4// ─────────────────────────────────────────
5// Potensiometer mengatur kecepatan efek LED berjalan. A0 dibaca di setiap
6// langkah dan nilai 0-1023-nya menjadi waktu delay (ms).
7//
8// Pin:
9// D2, D3, D4, D5, D6, D7 -> 6 LED (berurutan)
10// Setiap LED dengan resistor 330 ohm
11// A0 -> Wiper potensiometer
12// (kaki luar ke 5V dan GND)
13
14int ledPins[] = {2, 3, 4, 5, 6, 7}; // Pin LED sesuai urutan nyala
15int potValue; // Nilai pot = delay (ms)
16
17void setup() {
18 // Atur semua pin LED sebagai output
19 for(int i = 0; i < 6; i++) {
20 pinMode(ledPins[i], OUTPUT);
21 }
22}
23
24void loop() {
25 for(int i = 0; i < 6; i++) {
26 potValue = analogRead(A0); // Baca kecepatan (0-1023)
27 digitalWrite(ledPins[i], HIGH);
28 delay(potValue); // Tunggu sebanyak ms nilai pot
29 digitalWrite(ledPins[i], LOW);
30 }
31}
32
FAQ
Nilai apa yang dikembalikan `analogRead`?
Input analog Uno membaca 0–5 V dengan resolusi 10-bit dan mengembalikan nilai antara 0 dan 1023. Ketika potensiometer diputar dari satu ujung ke ujung lainnya, nilainya berubah dari 0 sampai 1023.
Bagaimana mengubah bacaan potensiometer menjadi kecepatan?
Dengan fungsi `map()`, kamu bisa mengubah rentang 0–1023 menjadi rentang jeda apa pun yang kamu mau (mis. 20–500 ms): `map(value, 0, 1023, 20, 500)`. Ketika nilai ini dipakai di dalam `delay()`, kecepatannya langsung berubah.
Bagaimana cara menyambungkan kaki-kaki potensiometer?
Dua kaki luar disambung ke 5 V dan GND, dan kaki tengah (wiper) disambung ke input analog (mis. A0). Jika kaki luarnya tertukar, hanya arah putarnya yang terbalik; rangkaiannya tidak akan rusak.
Perubahan kecepatan terasa terlambat, kenapa?
Jika potensiometer hanya dibaca di awal loop, nilai baru tidak dipakai sampai semua LED selesai menyala. Jika pembacaannya disertakan di setiap langkah LED, kecepatannya langsung berubah.
