Arduino Dasar: Membuat Running LED & Scrolling LED dengan 8 LED

Belajar Arduino dimulai dari hal sederhana: 8 LED! 💡 Dari menyalakan LED satu per satu, membuat Running LED, hingga Scrolling LED maju-mundur. Materi ini mengenalkan digital output, array, perulangan for(), dan logika pemrograman melalui praktik langsung. Cocok untuk pemula dan kegiatan eskul robotika. 🤖⚡

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() dan digitalWrite().
  • 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 1D2
LED 2D3
LED 3D4
LED 4D5
LED 5D6
LED 6D7
LED 7D8
LED 8D9
💡 Perhatian
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 (-).

D2 ── [220Ω] ── ►| ── GND
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.

💡 Ingat:
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[0] = 2
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.

🎯 Eksperimen:
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.

MAJU →
● ○ ○ ○ ○ ○ ○ ○
○ ● ○ ○ ○ ○ ○ ○
○ ○ ● ○ ○ ○ ○ ○
○ ○ ○ ● ○ ○ ○ ○
○ ○ ○ ○ ● ○ ○ ○
○ ○ ○ ○ ○ ● ○ ○
○ ○ ○ ○ ○ ○ ● ○
○ ○ ○ ○ ○ ○ ○ ●

← 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);

  }
}
💡 Mengapa mundur dimulai dari 6?
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:

1 → 2 → 3 → 4 → 5 → 6 → 7 → 8
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.

Push Button

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.

Arduino Dasar • 8 LED • Running LED • Scrolling LED

Post a Comment

0 Comments