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
- Mengapa setiap LED membutuhkan resistor sendiri?
- Apa yang terjadi jika nilai
delay()diperkecil? - Bagaimana cara mengubah urutan LED?
- Apakah empat LED dapat menyala bersamaan?
- Mengapa semua LED dapat menggunakan GND yang sama?
- Apa yang dimaksud dengan multi-output?
- 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.