1000 Proyek Arduino : Proyek 9 — Menyalakan Empat LED Secara Berurutan

Pada Proyek 9 dari seri 1000 Proyek Arduino, kita mengendalikan empat LED dari empat pin digital agar menyala secara berurutan. Percobaan ini memperkenalkan multi-output yang lebih kompleks, pengaturan waktu, urutan eksekusi, dan menjadi langkah awal menuju running LED.

Pada Proyek 8 kita telah mengendalikan dua LED agar menyala secara bergantian. Sekarang kita menambah jumlah output menjadi empat LED dan membuat semuanya menyala secara berurutan.

Percobaan ini menjadi langkah awal menuju rangkaian running LED dan membantu kita memahami bagaimana Arduino mengendalikan beberapa output dalam sebuah urutan yang teratur.

Tujuan Percobaan

  • Mengendalikan empat LED dari empat pin digital Arduino.
  • Membuat LED menyala secara berurutan.
  • Memahami urutan eksekusi beberapa output.
  • Mengatur kecepatan perpindahan antar-LED.
  • Memahami penggunaan beberapa pin digital secara bersamaan.

Alat dan Bahan

  • 1 Arduino Uno atau board yang kompatibel.
  • 1 breadboard.
  • 4 LED.
  • 4 resistor 220 Ω atau 330 Ω.
  • Kabel jumper.
  • Kabel USB.

Rangkaian

Gunakan empat pin digital:

D9
D10
D11
D12

Masing-masing pin dihubungkan ke satu LED melalui resistor pembatas arus.

Arduino D9
    |
  330 Ω
    |
  LED 1
    |
   GND

Arduino D10
    |
  330 Ω
    |
  LED 2
    |
   GND

Arduino D11
    |
  330 Ω
    |
  LED 3
    |
   GND

Arduino D12
    |
  330 Ω
    |
  LED 4
    |
   GND

Tabel Hubungan Pin

LED Pin Arduino Resistor
LED 1 D9 330 Ω
LED 2 D10 330 Ω
LED 3 D11 330 Ω
LED 4 D12 330 Ω

Semua katoda LED dapat dihubungkan ke GND Arduino yang sama.

Program Arduino

const int led1 = 9;
const int led2 = 10;
const int led3 = 11;
const int led4 = 12;

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}

void loop() {
  digitalWrite(led1, HIGH);
  delay(300);
  digitalWrite(led1, LOW);

  digitalWrite(led2, HIGH);
  delay(300);
  digitalWrite(led2, LOW);

  digitalWrite(led3, HIGH);
  delay(300);
  digitalWrite(led3, LOW);

  digitalWrite(led4, HIGH);
  delay(300);
  digitalWrite(led4, LOW);
}

Cara Kerja Program

Pertama kita menentukan empat pin yang digunakan:

const int led1 = 9;
const int led2 = 10;
const int led3 = 11;
const int led4 = 12;

Kemudian semua pin diatur sebagai output:

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);

Di dalam loop(), LED pertama dinyalakan:

digitalWrite(led1, HIGH);

Arduino menunggu selama 300 milidetik:

delay(300);

Kemudian LED pertama dimatikan:

digitalWrite(led1, LOW);

Setelah itu proses yang sama dilakukan pada LED kedua, ketiga, dan keempat.

Urutan Kerja

LED 1 ON
   ↓
LED 1 OFF

LED 2 ON
   ↓
LED 2 OFF

LED 3 ON
   ↓
LED 3 OFF

LED 4 ON
   ↓
LED 4 OFF

ulang kembali

Percobaan 1 — Kecepatan 300 ms

Gunakan:

delay(300);

Setiap LED akan menyala sekitar 0,3 detik sebelum berpindah ke LED berikutnya.

Percobaan 2 — Percepat Urutan

Ubah:

delay(300);

menjadi:

delay(100);

Perhatikan bagaimana perpindahan cahaya terlihat jauh lebih cepat.

Percobaan 3 — Perlambat Urutan

Coba:

delay(1000);

Sekarang setiap LED menyala selama satu detik sebelum berpindah ke LED berikutnya.

Percobaan 4 — Gunakan Warna LED yang Berbeda

Jika tersedia, gunakan empat warna LED berbeda, misalnya:

  • merah,
  • kuning,
  • hijau,
  • biru.

Dengan warna berbeda, urutan perpindahan akan lebih mudah diamati.

Percobaan 5 — Dua LED Menyala Bersamaan

Coba ubah program sehingga dua LED menyala sekaligus.

digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);

delay(500);

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);

Kemudian nyalakan LED 3 dan LED 4 secara bersamaan.

Dengan cara ini kita mulai melihat bahwa beberapa output dapat dikendalikan dalam pola yang berbeda.

Percobaan 6 — Membuat Urutan Maju dan Mundur

Tambahkan urutan kembali dari LED 4 ke LED 1.

void loop() {
  digitalWrite(led1, HIGH);
  delay(200);
  digitalWrite(led1, LOW);

  digitalWrite(led2, HIGH);
  delay(200);
  digitalWrite(led2, LOW);

  digitalWrite(led3, HIGH);
  delay(200);
  digitalWrite(led3, LOW);

  digitalWrite(led4, HIGH);
  delay(200);
  digitalWrite(led4, LOW);

  digitalWrite(led3, HIGH);
  delay(200);
  digitalWrite(led3, LOW);

  digitalWrite(led2, HIGH);
  delay(200);
  digitalWrite(led2, LOW);
}

Pola yang terbentuk:

LED 1
 ↓
LED 2
 ↓
LED 3
 ↓
LED 4
 ↓
LED 3
 ↓
LED 2
 ↓
LED 1

Pola seperti ini sering disebut sebagai efek running LED bolak-balik.

Mengapa Setiap LED Membutuhkan Resistor Sendiri?

Masing-masing LED berada pada jalur arus yang berbeda.

Karena itu setiap LED harus memiliki resistor pembatas arus sendiri.

Contohnya:

D9  → 330 Ω → LED 1 → GND
D10 → 330 Ω → LED 2 → GND
D11 → 330 Ω → LED 3 → GND
D12 → 330 Ω → LED 4 → GND

Dengan demikian arus pada setiap LED dapat dibatasi secara independen.

Memahami Multi-Output

Pada percobaan sebelumnya kita hanya mengendalikan satu atau dua output.

Sekarang Arduino mengendalikan empat output sekaligus.

Pin Output
D9 LED 1
D10 LED 2
D11 LED 3
D12 LED 4

Arduino dapat mengatur masing-masing pin secara independen berdasarkan program.

Memahami Urutan Eksekusi

Program Arduino dieksekusi dari atas ke bawah.

Urutan perintah menentukan urutan LED yang menyala.

Jika kita mengubah:

LED 1 → LED 2 → LED 3 → LED 4

menjadi:

LED 4 → LED 2 → LED 1 → LED 3

maka pola cahaya juga akan berubah sesuai urutan program.

Percobaan Lanjutan — Buat Pola Sendiri

Cobalah membuat pola berikut:

LED 1
LED 3
LED 2
LED 4
LED 1 + LED 4
LED 2 + LED 3
semua LED ON
semua LED OFF

Dengan hanya empat LED, kita sudah dapat membuat banyak variasi pola.

Pertanyaan Pengamatan

  1. Mengapa setiap LED membutuhkan resistor sendiri?
  2. Apa yang terjadi jika nilai delay() diperkecil?
  3. Bagaimana cara mengubah urutan LED?
  4. Apakah empat LED dapat menyala bersamaan?
  5. Mengapa semua LED dapat menggunakan GND yang sama?
  6. Apa yang dimaksud dengan multi-output?
  7. Apa peran urutan instruksi dalam menghasilkan pola cahaya?

Kesimpulan

Pada Proyek 9 kita belajar mengendalikan empat LED secara berurutan menggunakan beberapa pin digital Arduino.

Percobaan ini memperkuat pemahaman tentang multi-output, urutan eksekusi program, penggunaan beberapa resistor, common ground, dan pengaturan waktu menggunakan delay().

Dari rangkaian sederhana ini kita sudah dapat membuat berbagai pola cahaya dan mulai masuk ke konsep running LED yang lebih terstruktur.

Proyek berikutnya: 1000 Proyek Arduino : Proyek 10 — Membuat Running LED.