Proyek lampu lalu lintas simpang empat (traffic light) adalah salah satu proyek Arduino yang menarik dan bermanfaat untuk dipelajari oleh pemula maupun tingkat menengah. Pada proyek ini, kita akan membuat sistem lampu lalu lintas yang mengatur kendaraan di simpang empat menggunakan Arduino Uno dan beberapa LED. Proyek ini akan mensimulasikan lampu lalu lintas dengan urutan lampu merah, kuning, dan hijau pada setiap jalur di persimpangan.
Alat dan Bahan yang Dibutuhkan
- 1 x Arduino Uno (atau tipe Arduino lainnya)
- 12 x LED (4 merah, 4 kuning, 4 hijau)
- 12 x Resistor 220Ω
- Breadboard
- Kabel jumper
- Sumber daya untuk Arduino (kabel USB atau baterai)
Cara Kerja Proyek
Sistem lampu lalu lintas mengontrol empat arah di persimpangan menggunakan tiga warna LED untuk setiap arah (merah, kuning, hijau). Urutannya adalah:
- Lampu hijau menyala di satu jalur, yang berarti kendaraan dapat melintas.
- Lampu kuning menyala sebagai peringatan bahwa lampu akan segera berubah.
- Lampu merah menyala, menghentikan kendaraan di jalur tersebut, sementara jalur lain mendapatkan lampu hijau.
Proses ini berulang untuk setiap arah.
Prinsip Kerja:
- Merah: Kendaraan berhenti.
- Kuning: Peringatan bahwa lampu akan berubah.
- Hijau: Kendaraan dapat melaju.
Diagram Rangkaian
Langkah-langkah Rangkaian:

- Hubungkan LED merah untuk setiap arah ke pin digital (pin 2, 5, 8, 11).
- Hubungkan LED kuning untuk setiap arah ke pin digital lainnya (pin 3, 6, 9, 12).
- Hubungkan LED hijau untuk setiap arah ke pin digital (pin 4, 7, 10, 13).
- Hubungkan setiap kaki anoda (kaki panjang) LED ke pin yang sesuai di Arduino melalui resistor 220Ω.
- Hubungkan semua kaki katoda (kaki pendek) LED ke GND pada Arduino.
Diagram Koneksi:
- Pin 2, 5, 8, 11 → LED merah
- Pin 3, 6, 9, 12 → LED kuning
- Pin 4, 7, 10, 13 → LED hijau
- GND (Arduino) → katoda semua LED melalui jalur GND di breadboard.
Kode Program untuk Lampu Lalu Lintas Simpang Empat
Setelah rangkaian selesai, kita akan membuat kode untuk mengatur urutan lampu lalu lintas. Setiap jalur akan mendapatkan waktu tertentu untuk lampu hijau, kuning, dan merah. Berikut adalah contoh kode untuk proyek ini:
// Deklarasi pin untuk setiap LED
int red1 = 2, yellow1 = 3, green1 = 4; // Arah 1
int red2 = 5, yellow2 = 6, green2 = 7; // Arah 2
int red3 = 8, yellow3 = 9, green3 = 10; // Arah 3
int red4 = 11, yellow4 = 12, green4 = 13; // Arah 4
void setup() {
// Mengatur semua pin sebagai output
pinMode(red1, OUTPUT);
pinMode(yellow1, OUTPUT);
pinMode(green1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(yellow2, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(yellow3, OUTPUT);
pinMode(green3, OUTPUT);
pinMode(red4, OUTPUT);
pinMode(yellow4, OUTPUT);
pinMode(green4, OUTPUT);
}
void loop() {
// Urutan Lampu Lalu Lintas untuk Arah 1
lampuLaluLintas(green1, yellow1, red1, red2, red3, red4);
// Urutan Lampu Lalu Lintas untuk Arah 2
lampuLaluLintas(green2, yellow2, red2, red1, red3, red4);
// Urutan Lampu Lalu Lintas untuk Arah 3
lampuLaluLintas(green3, yellow3, red3, red1, red2, red4);
// Urutan Lampu Lalu Lintas untuk Arah 4
lampuLaluLintas(green4, yellow4, red4, red1, red2, red3);
}
// Fungsi untuk mengontrol lampu lalu lintas
void lampuLaluLintas(int green, int yellow, int red, int redOther1, int redOther2, int redOther3) {
// Nyalakan lampu hijau untuk jalur yang aktif, dan lampu merah untuk jalur lainnya
digitalWrite(green, HIGH); // Hijau menyala
digitalWrite(redOther1, HIGH);
digitalWrite(redOther2, HIGH);
digitalWrite(redOther3, HIGH);
delay(5000); // Hijau menyala selama 5 detik
// Ganti ke kuning
digitalWrite(green, LOW);
digitalWrite(yellow, HIGH); // Kuning menyala
delay(2000); // Kuning menyala selama 2 detik
digitalWrite(yellow, LOW);
// Ganti ke merah
digitalWrite(red, HIGH); // Merah menyala
delay(5000); // Merah menyala selama 5 detik
digitalWrite(redOther1, LOW);
digitalWrite(redOther2, LOW);
digitalWrite(redOther3, LOW);
}
Penjelasan Kode:
- int red1, yellow1, green1: Mendeklarasikan pin untuk LED merah, kuning, dan hijau di setiap arah.
- pinMode(): Mengatur setiap pin LED sebagai output.
- lampuLaluLintas(): Fungsi ini mengatur urutan menyala/mati setiap lampu (hijau, kuning, merah) dan memastikan bahwa lampu merah menyala di jalur lain.
- digitalWrite(pin, HIGH/LOW): Menyalakan atau mematikan LED yang terhubung ke pin yang ditentukan.
Urutan Operasi:
- Lampu Hijau untuk satu jalur menyala selama 5 detik, sementara lampu merah untuk jalur lainnya menyala.
- Setelah itu, Lampu Kuning menyala selama 2 detik, memberikan peringatan bahwa lampu akan segera berubah.
- Lalu, Lampu Merah menyala selama 5 detik di jalur tersebut, dan siklus dilanjutkan ke jalur lain.
Mengunggah Program ke Arduino
- Sambungkan Arduino ke komputer menggunakan kabel USB.
- Buka Arduino IDE dan salin kode di atas.
- Pilih port dan board yang sesuai (Tools → Board → Arduino Uno, Tools → Port → pilih port yang sesuai).
- Klik Upload untuk mengunggah program ke Arduino.
- Setelah program berhasil diunggah, sistem lampu lalu lintas akan mulai bekerja sesuai dengan urutan yang telah ditentukan.
Modifikasi dan Pengembangan Proyek
Proyek lampu lalu lintas ini dapat dikembangkan lebih lanjut dengan beberapa fitur tambahan, seperti:
- Menambahkan tombol tekan (push button) untuk mensimulasikan pejalan kaki yang menyeberang jalan.
- Menghubungkan buzzer untuk memberikan suara saat lampu kuning menyala sebagai peringatan.
- Menggunakan sensor ultrasonik untuk mendeteksi kendaraan dan mengatur waktu lampu hijau berdasarkan antrian kendaraan.
Kesimpulan
Proyek lampu lalu lintas simpang empat dengan Arduino adalah cara yang bagus untuk belajar tentang kontrol logika, penggunaan pin output digital, serta pemrograman mikrokontroler. Proyek ini memberikan pemahaman dasar tentang bagaimana sistem lampu lalu lintas bekerja di dunia nyata, dan bagaimana Arduino dapat digunakan untuk mengontrol berbagai perangkat elektronik. Semakin kompleks proyek yang kamu buat, semakin banyak pemahaman yang bisa kamu dapatkan tentang cara kerja mikrokontroler dan sistem otomatisasi.
Simulasi Proyek Lampu Lalu Lintas Simpang Empat dengan Arduino – Wokwi ESP32, STM32, Arduino Simulator