Arduino 8 LED: Membuat Running LED dan Scrolling LED
Materi Arduino untuk pemula: belajar digital output, array, for loop, Running LED, dan Scrolling LED menggunakan 8 LED.
📚 Tujuan Pembelajaran
Pada praktik kali ini kita akan membuat rangkaian 8 LED menggunakan Arduino UNO. Dari rangkaian sederhana ini kita akan belajar dasar elektronika sekaligus dasar pemrograman Arduino.
Setelah mengikuti materi ini, siswa diharapkan mampu:
- Menggunakan digital pin Arduino.
- Menggunakan
pinMode()dandigitalWrite(). - Menggunakan perulangan
for(). - Menggunakan array untuk menyimpan nomor pin.
- Membuat Running LED.
- Membuat Scrolling LED maju dan mundur.
- Membuat pola LED menggunakan algoritma sederhana.
🔧 Alat dan Bahan
| Komponen | Jumlah |
|---|---|
| Arduino UNO | 1 |
| LED | 8 |
| Resistor 220Ω | 8 |
| Breadboard | 1 |
| Kabel jumper | Secukupnya |
| Kabel USB | 1 |
🔌 Susunan Pin Arduino
Kita menggunakan digital pin D2 sampai D9 untuk mengontrol 8 LED.
| LED | Pin Arduino |
|---|---|
| LED 1 | D2 |
| LED 2 | D3 |
| LED 3 | D4 |
| LED 4 | D5 |
| LED 5 | D6 |
| LED 6 | D7 |
| LED 7 | D8 |
| LED 8 | D9 |
Gunakan resistor sekitar 220Ω untuk setiap LED. Jangan menghubungkan LED langsung ke pin Arduino tanpa pembatas arus.
💡 Arah pemasangan LED
Kaki panjang LED adalah anoda (+), sedangkan kaki pendek adalah katoda (-).
D3 ── [220Ω] ── ►| ── GND
D4 ── [220Ω] ── ►| ── GND
D5 ── [220Ω] ── ►| ── GND
D6 ── [220Ω] ── ►| ── GND
D7 ── [220Ω] ── ►| ── GND
D8 ── [220Ω] ── ►| ── GND
D9 ── [220Ω] ── ►| ── GND
1️⃣ Menyalakan 8 LED
Kita mulai dengan program sederhana untuk menyalakan seluruh LED.
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;
int led7 = 8;
int led8 = 9;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
}
void loop() {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
}
HIGH berarti output aktif, sedangkan
LOW berarti output tidak aktif.
2️⃣ Memahami Blink LED
Sebelum membuat LED berjalan, kita perlu memahami konsep waktu
menggunakan delay().
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
}
LED menyala sekitar 500 milidetik, kemudian mati sekitar 500 milidetik.
1000 milidetik = 1 detik.
3️⃣ Running LED
Sekarang kita membuat LED berjalan dari kiri ke kanan.
○ ● ○ ○ ○ ○ ○ ○
○ ○ ● ○ ○ ○ ○ ○
○ ○ ○ ● ○ ○ ○ ○
○ ○ ○ ○ ● ○ ○ ○
○ ○ ○ ○ ○ ● ○ ○
○ ○ ○ ○ ○ ○ ● ○
○ ○ ○ ○ ○ ○ ○ ●
Menggunakan Array
Nomor pin LED dapat disimpan dalam sebuah array sehingga program menjadi lebih singkat.
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(led[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
}
🔎 Memahami Array
led[1] = 3
led[2] = 4
led[3] = 5
led[4] = 6
led[5] = 7
led[6] = 8
led[7] = 9
Perhatikan bahwa index array dimulai dari 0, bukan dari 1.
4️⃣ Mengatur Kecepatan Running LED
Kecepatan LED dapat diubah dengan mengubah nilai delay().
delay(50);
LED akan bergerak lebih cepat.
delay(500);
LED akan bergerak lebih lambat.
Coba nilai 20, 50, 100, 200, dan 500. Amati perubahan kecepatannya.
5️⃣ Scrolling LED Maju dan Mundur
Sekarang kita tingkatkan program menjadi efek LED yang bergerak maju kemudian kembali mundur.
● ○ ○ ○ ○ ○ ○ ○
○ ● ○ ○ ○ ○ ○ ○
○ ○ ● ○ ○ ○ ○ ○
○ ○ ○ ● ○ ○ ○ ○
○ ○ ○ ○ ● ○ ○ ○
○ ○ ○ ○ ○ ● ○ ○
○ ○ ○ ○ ○ ○ ● ○
○ ○ ○ ○ ○ ○ ○ ●
← MUNDUR
○ ○ ○ ○ ○ ○ ● ○
○ ○ ○ ○ ○ ● ○ ○
○ ○ ○ ○ ● ○ ○ ○
○ ○ ○ ● ○ ○ ○ ○
○ ○ ● ○ ○ ○ ○ ○
○ ● ○ ○ ○ ○ ○ ○
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(led[i], OUTPUT);
}
}
void loop() {
// Bergerak maju
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
// Bergerak mundur
for (int i = 6; i >= 1; i--) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
}
Karena LED terakhir sudah dinyalakan ketika gerakan maju mencapai LED ke-8. Dengan memulai dari index 6, LED tidak terlihat menyala dua kali berturut-turut.
6️⃣ Scrolling LED dengan Efek Mengisi
Selain satu LED yang berjalan, kita juga dapat membuat pola LED yang semakin banyak menyala.
● ● ○ ○ ○ ○ ○ ○
● ● ● ○ ○ ○ ○ ○
● ● ● ● ○ ○ ○ ○
● ● ● ● ● ○ ○ ○
● ● ● ● ● ● ○ ○
● ● ● ● ● ● ● ○
● ● ● ● ● ● ● ●
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(led[i], OUTPUT);
}
}
void loop() {
// Menyalakan LED satu per satu
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
delay(100);
}
delay(500);
// Mematikan LED satu per satu
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], LOW);
delay(100);
}
delay(500);
}
🚀 Challenge untuk Siswa
Challenge 1 — Speed Control
Temukan kecepatan Running LED yang paling menarik dengan mengubah:
delay(100);
Challenge 2 — Two Way
Buat pola:
8 → 7 → 6 → 5 → 4 → 3 → 2 → 1
Challenge 3 — Center Out
Buat LED bergerak dari tengah menuju kedua sisi.
○ ○ ● ○ ○ ● ○ ○
○ ● ○ ○ ○ ○ ● ○
● ○ ○ ○ ○ ○ ○ ●
Challenge 4 — Outside In
Buat kebalikannya.
○ ● ○ ○ ○ ○ ● ○
○ ○ ● ○ ○ ● ○ ○
○ ○ ○ ● ● ○ ○ ○
🧠 Apa yang Kita Pelajari?
| Konsep | Contoh |
|---|---|
| Variable | int i |
| Array | int led[] |
| Loop | for() |
| Digital Output | digitalWrite() |
| Pin Configuration | pinMode() |
| Timing | delay() |
| Index | led[0] |
| Algorithm | Pola LED |
🎯 Langkah Berikutnya
Setelah memahami LED dan perulangan, kita dapat mulai menggabungkan input → proses → output.
↓
Arduino
↓
Program / Logic
↓
8 LED
Dari sini kita dapat melanjutkan ke proyek seperti 8 LED + Push Button, 8 LED + LDR, lampu lalu lintas, LED pattern generator, hingga penggunaan sensor untuk mengontrol pola LED.

0 Comments