Daniarsyah - Pernahkah Anda berhenti di perempatan jalan dan bertanya-tanya, "Bagaimana sih kerja lampu lalu lintas ini?" Di balik kesederhanaannya, ada sistem logika yang mengatur kapan lampu harus menyala dan padam. Nah, apa jadinya jika kita bisa membuat simulatornya sendiri?
Dengan menggunakan Arduino Uno, papan mikrokontroler favorit para hobiis, kita bisa dengan mudah mereplikasi sistem lampu lalu lintas. Proyek ini adalah titik awal yang sempurna bagi Anda yang baru terjun ke dunia elektronika dan pemrograman.
Artikel ini akan memandu Anda, langkah demi langkah, mulai dari merangkai komponen hingga memahami setiap baris kodenya. Siap untuk mencoba? Mari kita mulai!
Apa Saja yang Kita Butuhkan? (Daftar Komponen)
Sebelum mulai, pastikan Anda telah menyiapkan komponen-komponen berikut. Jangan khawatir, semuanya mudah didapat dan terjangkau.
1x Arduino Uno: Otak dari proyek kita.
1x Breadboard: Papan tempat memasang komponen elektronika tanpa perlu menyolder.
3x LED (Warna Merah, Kuning, Hijau): Simbol dari lampu lalu lintas.
3x Resistor (220 Ohm atau 330 Ohm): Pelindung LED agar tidak terbakar karena arus yang terlalu besar.
4x Kabel Jumper: Penghubung antara Arduino, breadboard, dan komponen lainnya.
Langkah 1: Merangkai Lampu Lalu Lintas di Breadboard
Ini adalah bagian yang paling menyenangkan! Kita akan merangkai semua komponen menjadi satu rangkaian utuh. Gunakan gambar di bawah ini sebagai referensi utama Anda.

Cara Merangkainya:
Pasang LED: Letakkan ketiga LED (hijau, kuning, merah) pada breadboard. Pastikan kakinya terpisah oleh jalur tengah breadboard. Ingat, kaki yang lebih panjang adalah Anoda (+) dan kaki yang lebih pendek adalah Katoda (-).
Hubungkan Resistor: Sambungkan satu kaki resistor dengan kaki anoda (+) masing-masing LED. Ujung resistor lainnya kita hubungkan ke Arduino.
Sambungkan ke Arduino:
Hubungkan resistor dari LED Hijau ke pin digital 1 Arduino.
Hubungkan resistor dari LED Kuning ke pin digital 2 Arduino.
Hubungkan resistor dari LED Merah ke pin digital 3 Arduino.
Hubungkan Ground (GND): Sambungkan semua kaki katoda (-) dari ketiga LED ke satu baris yang sama di breadboard. Dari baris tersebut, gunakan satu kabel jumper untuk menghubungkannya ke pin GND (Ground) pada Arduino.
Voila! Rangkaian fisik Anda sudah siap. Sekarang, saatnya memberinya "nyawa" melalui kode.
Langkah 2: Memahami Kode Program Arduino
Kode adalah sekumpulan instruksi yang memberi tahu Arduino apa yang harus dilakukan. Berikut adalah kode lengkap untuk proyek kita, beserta penjelasannya yang super mudah.
// --- Bagian 1: Definisi Durasi ---
// Lampu hijau menyala selama 5 detik (5000 milidetik)
// Lampu kuning menyala selama 1 detik (1000 milidetik)
// Lampu merah menyala selama 5 detik (5000 milidetik)
// --- Bagian 2: Inisialisasi Pin ---
void setup() {
// Bagian ini hanya dijalankan sekali saat Arduino dinyalakan
pinMode(1, OUTPUT); // Mengatur pin 1 sebagai OUTPUT (untuk LED Hijau)
pinMode(2, OUTPUT); // Mengatur pin 2 sebagai OUTPUT (untuk LED Kuning)
pinMode(3, OUTPUT); // Mengatur pin 3 sebagai OUTPUT (untuk LED Merah)
}
// --- Bagian 3: Loop Utama ---
void loop() {
// Bagian ini akan dijalankan berulang-ulang selamanya
// Urutan 1: Lampu Hijau Menyala
digitalWrite(1, HIGH); // Nyalakan LED Hijau (pin 1)
digitalWrite(2, LOW); // Matikan LED Kuning (pin 2)
digitalWrite(3, LOW); // Matikan LED Merah (pin 3)
delay(GREEN_DURATION); // Tunggu selama durasi hijau (5 detik)
// Urutan 2: Lampu Merah Menyala
digitalWrite(1, LOW); // Matikan LED Hijau (pin 1)
digitalWrite(2, LOW); // Matikan LED Kuning (pin 2)
digitalWrite(3, HIGH); // Nyalakan LED Merah (pin 3)
delay(RED_DURATION); // Tunggu selama durasi merah (5 detik)
// Urutan 3: Lampu Kuning Menyala
digitalWrite(1, LOW); // Matikan LED Hijau (pin 1)
digitalWrite(2, HIGH); // Nyalakan LED Kuning (pin 2)
digitalWrite(3, LOW); // Matikan LED Merah (pin 3)
delay(YELLOW_DURATION); // Tunggu selama durasi kuning (1 detik)
}Penjelasan Detail Kode:
Bagian 1:
#defineDi sini kita memberi "nama" pada sebuah angka.
#define GREEN_DURATION 5000berarti setiap kali kita menulisGREEN_DURATION, Arduino akan menggantinya dengan angka5000. Ini membuat kode lebih rapi dan mudah diubah. Misalnya, jika ingin lampu hijau menyala 10 detik, kita hanya perlu mengubah satu baris ini saja.
Bagian 2:
void setup()Fungsi ini dijalankan hanya sekali saat Arduino pertama kali mendapat daya. Di sinilah kita memberitahu Arduino bahwa pin 1, 2, dan 3 akan digunakan sebagai OUTPUT (keluaran), karena kita akan mengirimkan sinyal untuk menyalakan (
HIGH) dan mematikan (LOW) LED.
Bagian 3:
void loop()Ini adalah jantung program kita. Kode di dalam fungsi
loop()akan dijalankan secara berulang-ulang dari atas ke bawah, selamanya.digitalWrite(pin, HIGH): Perintah untuk mengalirkan listrik ke pin tertentu, yang akan menyalakan LED.digitalWrite(pin, LOW): Perintah untuk menghentikan aliran listrik, yang akan mematikan LED.delay(waktu): Perintah untuk membuat Arduino "berhenti sejenak" selama waktu tertentu (dalam milidetik) sebelum melanjutkan ke baris berikutnya.
Tantangan Kecil: Perbaiki Urutan Lampu!
Jika Anda perhatikan, urutan lampu pada kode di atas adalah Hijau -> Merah -> Kuning. Ini sedikit berbeda dengan lampu lalu lintas pada umumnya, bukan?
Urutan yang benar seharusnya: Hijau -> Kuning -> Merah.
Ini adalah kesempatan bagus untuk berlatih! Coba ubah kode di bagian void loop() agar mengikuti urutan yang benar. Petunjuknya, Anda hanya perlu memindahkan blok kode untuk lampu kuning dan merah. Selamat mencoba!
Kesimpulan
Selamat! Anda telah berhasil membuat proyek Arduino pertama Anda: sebuah simulator lampu lalu lintas. Melalui proyek sederhana ini, Anda telah mempelajari konsep dasar yang sangat penting:
Cara merangkai rangkaian elektronika sederhana di breadboard.
Fungsi
pinMode()untuk mengatur pin input/output.Fungsi
digitalWrite()untuk mengendalikan komponen.Fungsi
delay()untuk mengatur waktu.Pentingnya menggunakan
#defineuntuk kode yang lebih bersih.
Proyek ini adalah gerbang menuju dunia elektronika dan IoT (Internet of Things) yang lebih luas. Teruslah bereksperimen, ubah-ubah durasi, tambahkan LED lain, atau coba buat pola berkedip yang berbeda. Satu-satunya batas adalah imajinasi Anda!
