#7Menengah

LED Berjalan dengan Kecepatan yang Bisa Diatur

4.6(72)
146 selesai
LED Berjalan dengan Kecepatan yang Bisa Diatur
Enam LED menyala satu demi satu, sehingga cahayanya seolah berlari dari satu ujung ke ujung lainnya. Putar kenop potensiometer dan kecepatan larinya langsung berubah: ke satu arah cahayanya melesat, ke arah lain setiap LED menunggu hampir satu detik. Kamu melihat dengan mata kepala sendiri bagaimana sebuah kenop bisa mengatur kecepatan sesuatu.

Video

Skema rangkaian

LED Berjalan dengan Kecepatan yang Bisa Diatur - Circuit

Kode sumber

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