Cari Kode

Pelajaran 98-7: Lampu Berjalan Menggunakan Arduino dan 5 LED

Pelajaran 98-7: Lampu Berjalan Menggunakan Arduino dan 5 LED

Lampu berjalan (juga disebut lampu "mengejar" atau "Knight Rider") adalah salah satu proyek Arduino pemula klasik — dan memang beralasan. Proyek ini mengajarkan Anda cara mengendalikan beberapa output secara berurutan, cara mengatur waktu kejadian, dan cara memikirkan resistor pembatas arus, semuanya sambil menghasilkan sesuatu yang memuaskan secara visual. Dalam proyek ini Anda akan menghubungkan lima LED ke Arduino dan memprogramnya sehingga masing-masing menyala secara bergantian, menciptakan ilusi satu cahaya yang "berjalan" di sepanjang barisan.

5 leds on breadboard with resistor shown connected to Arduino UNO
5 leds on breadboard with resistor shown connected to Arduino UNO

Setelah Anda memahami polanya, Anda dapat menggunakannya kembali dalam sejumlah besar pembuatan di dunia nyata:

  • Pencahayaan dekoratif: tepi yang mengejar untuk rak, bingkai foto, atau model.
  • Indikator arah: efek lampu sein berurutan untuk kendaraan properti atau sepeda listrik.
  • Tampilan progres atau status: barisan LED yang maju saat suatu proses selesai.
  • Properti game dan papan skor: indikator "target bergerak" atau level.
  • Alat bantu pengajaran: demonstrasi output digital dan pengaturan waktu yang paling jelas.

Pengkabelan lima LED yang sama digunakan kembali dalam beberapa proyek lain dalam kursus ini, sehingga perangkat keras yang Anda bangun di sini menjadi platform yang dapat digunakan kembali.

Cara Kerja Lampu Berjalan

Prinsipnya persis sama dengan menyalakan satu LED — hanya saja diulang lima kali (dalam video pada 30:47). Setiap LED dihubungkan ke pin Arduino-nya sendiri melalui resistor pembatas arusnya sendiri, dan semua resistor berbagi rel ground yang sama. Sketsa kemudian menyalakan satu pin HIGH, menunggu, menyalakannya LOW, menunggu, dan beralih ke pin berikutnya. Karena hanya satu LED yang menyala pada satu waktu, mata membaca urutan tersebut sebagai gerakan.

Dua nilai waktu inilah yang memberi karakter pada efeknya. Waktu nyala mengontrol berapa lama setiap LED tetap menyala, dan waktu mati mengontrol jeda sebelum LED berikutnya menyala. Waktu nyala yang singkat dengan waktu mati yang lama menghasilkan satu titik yang bergerak cepat; waktu nyala yang lama dengan waktu mati yang singkat menghasilkan sapuan yang lebih halus dan lebih berkesinambungan (dalam video pada 35:00).

Perangkat Keras dan Komponen

  • 1 × papan Arduino (Uno, Nano, atau sejenisnya)
  • 5 × LED (warna apa pun; mencampur warna membuat efeknya lebih mudah dibaca)
  • 5 × resistor — 300 Ω hingga 1 kΩ berfungsi dengan baik
  • 1 × breadboard
  • Kabel jumper
  • Kabel USB atau paket baterai untuk daya

Jika Anda ingin menambahkan varian tombol tekan nanti, Anda juga memerlukan satu tombol tekan sesaat dan dua kabel jumper tambahan.

Memilih Nilai Resistor

LED memiliki tegangan maju sekitar 2 V dan membutuhkan sekitar 10 mA untuk kecerahan penuh (dalam video pada 03:49). Dengan suplai 5 V, resistor harus menurunkan 3 V yang tersisa. Menerapkan hukum Ohm, R = V / I = 3 V / 0,01 A = 300 Ω. Dalam praktiknya apa pun dari 300 Ω hingga sekitar 1 kΩ akan berfungsi — semakin tinggi resistansinya, semakin redup LED-nya, tetapi semakin aman dan efisien rangkaiannya (dalam video pada 05:33).

Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button

Panduan Pengkabelan

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino

Masukkan kelima LED ke breadboard dengan anoda (kaki yang lebih panjang) menghadap ke arah yang sama. Hubungkan setiap katoda (kaki yang lebih pendek dan bersisi rata) ke resistornya sendiri, dan gabungkan ujung jauh kelima resistor ke rel ground yang sama. Kemudian jalankan jumper dari setiap anoda ke pin Arduino.

Dalam pembuatan ini LED ditetapkan ke pin 3, 4, 5, 6 dan 7 (dalam video pada 31:29). Nomor pin didefinisikan di bagian atas sketsa, jadi jika Anda lebih suka susunan yang berbeda Anda hanya perlu mengubah kelima baris tersebut.

Penjelasan Kode

Sketsa ini sengaja dibuat sederhana agar pemula dapat mengikuti setiap barisnya. Hanya blok di bagian paling atas yang perlu diedit untuk pengaturan Anda sendiri.

const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30;  // the time each LED waits in the OFF state
int onTime = 100;  // the time each LED is ON

Definisi pin. Kelima baris const int memetakan setiap LED ke pin Arduino fisik. Karena dideklarasikan const, nilainya tidak dapat diubah nanti dalam program — ini adalah kebiasaan keamanan yang mencegah penetapan ulang yang tidak disengaja. Jika Anda menghubungkan LED ke pin yang berbeda, ubah angkanya di sini dan tidak ada yang lain.

onTime dan offTime. Kedua bilangan bulat ini adalah satu-satunya variabel "perilaku" dalam proyek ini, dan inilah yang ingin Anda eksperimenkan:

  • onTime — berapa lama (dalam milidetik) setiap LED tetap menyala. Nilai yang lebih besar membuat setiap langkah terasa lebih lambat dan lebih terukur.
  • offTime — jeda setelah sebuah LED mati sebelum LED berikutnya menyala. Nilai yang lebih kecil membuat cahaya bergerak lebih cepat.

Coba onTime = 200 dan offTime = 200 untuk efek berjalan yang merata dengan kecepatan sedang, atau onTime = 30 dan offTime = 30 untuk efek yang sangat cepat dan hampir tampak kabur (dalam video pada 36:06).

Fungsi setup() berjalan sekali dan hanya mengatur kelima pin ke mode OUTPUT. Fungsi loop() kemudian mengulangi pola empat langkah yang sama untuk setiap LED: beri pin HIGH, tunggu onTime, beri LOW, tunggu offTime. Saat LED kelima selesai, loop dimulai lagi dari yang pertama, menghasilkan langkah yang tak berujung.

Proyek Langsung dan Demonstrasi

Dengan nilai default, LED melangkah di sepanjang baris dengan kecepatan yang santai. Mengunggah sketsa dengan onTime dan offTime diatur ke 200 ms menghasilkan gerakan yang stabil dan merata; menurunkannya menjadi 30 ms membuat cahaya melintas di sepanjang baris hampir terlalu cepat untuk diikuti (dalam video pada 36:21).

Dua eksperimen berguna untuk dicoba setelah berhasil:

  • Buat waktu nyala lebih pendek daripada waktu mati untuk menciptakan titik yang bergerak dengan jelas.
  • Buat waktu nyala lebih lama daripada waktu mati untuk menciptakan cahaya lembut yang saling tumpang tindih.

Pengkabelan lima LED yang sama digunakan kembali pada proyek berikutnya, di mana sebuah tombol tekan memajukan cahaya satu langkah setiap kali. Rangkaian itu dibahas dalam Pelajaran 98-8: Lampu Berjalan dengan Tombol Tekan dan LED menggunakan Arduino.

Jika Anda lebih suka menggerakkan baris LED dari input analog alih-alih tombol, lihat Pelajaran 98-9: Pengukur Level Tegangan LED Menggunakan Arduino atau lampu berjalan dengan potensiometer.

Melangkah Lebih Jauh

Setelah gerakan dasar berhasil, langkah berikutnya yang alami adalah membuat cahaya memantul bolak-balik alih-alih melompat dari LED terakhir ke LED pertama. Itu murni latihan kode — tanpa perangkat keras tambahan — dan itu cara yang baik untuk melatih loop dan array. Anda juga dapat menggabungkan proyek ini dengan versi tombol tekan untuk membangun tampilan yang dimajukan secara manual.

Proyek terkait dari video ini

Bab

  • [00:00] Ikhtisar sepuluh proyek LED
  • [01:22] Pengantar kursus Arduino langkah demi langkah
  • [02:29] Apa itu LED dan cara mengidentifikasi pin-nya
  • [03:49] Menghitung resistor pembatas arus
  • [30:47] Memperkenalkan proyek lampu berjalan
  • [31:06] Diagram pengkabelan untuk lima LED
  • [32:52] Penjelasan kode lampu berjalan
  • [34:39] Demonstrasi dan mengubah nilai waktu
  • [36:41] Memajukan cahaya dengan tombol tekan (tutorial terpisah)
  • [42:25] Bar tegangan LED dengan potensiometer (tutorial terpisah)
  • [49:25] Lampu lalu lintas Arduino (tutorial terpisah)

Gambar

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
5 LED di breadboard dengan resistor ditampilkan terhubung ke Arduino UNO
5 LED di breadboard dengan resistor ditampilkan terhubung ke Arduino UNO
939-Lessson 98-LED-7: Arduino code walking LED light
Bahasa: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Berkas📁

Pustaka Arduino (zip)

Panduan Pengguna