Penduhuluan
Simulasi kali ini menyajikan contoh simulasi Lalu Lintas Sederhana berbasis Arduino Menggunakan Proteus. Tujuannya adalah untuk menggunakan digital output Arduino untuk program aplikasi lampu lalu lintas atau prinsip kerja seperti yang umumnya digunakan pada lampu lalu lintas yang kita lihat di jalan raya. Di sini, lampu merah akan menyala beberapa detik sebagai tanda berhenti kemudian padam, seiring dengan padamnya lampu merah, lampu kuning menyala sesaat kemudian padam, seiring dengan padamnya lampu kuning, lampu hijau menyala beberapa saat kemudian padam. Seiring dengan padamnya lampu hijau, lampu kuning menyala dan seterusnya sampai pada lampu merah kembali.
Secara lebih detil, prinsip dan urutan kerja dari program lampu lalu lintas yang akan dibuat adalah sebagai berikut:
- Awalnya lampu merah diatur menyala selama 1 detik kemudian padam.
- Seiring dengan padamnya lampu merah tersebut, lampu kuning menyala selama 0,5 detik kemudian padam.
- Seiring dengan padamnya lampu kuning, lampu hijau yang menyala selama 1 detik kemudian padam.
- Seiring dengan padamnya lampu hijau, lampu kuning menyala kembali selama 0,5 detik, kemudian padam.
- Seiring dengan padamnya lampu kuning, kembali lampu merah menyala selama 1 detik. Begitu terus prosesnya berlulang-ulang.
Kode Program/Sketch
Kode program untuk Simulasi Lampu Lalu Lintas Sederhana berbasis Arduino Menggunakan Proteus adalah sebagai berikut.
int LampuMerah = 4;
int LampuKuning = 3;
int LampuHijau = 2;
void setup() {
pinMode(LampuMerah, OUTPUT);
pinMode(LampuKuning, OUTPUT);
pinMode(LampuHijau, OUTPUT);
}
void loop() {
digitalWrite(LampuMerah, HIGH);
delay(1000);
digitalWrite(LampuMerah, LOW);
digitalWrite(LampuKuning, HIGH);
delay(500);
digitalWrite(LampuKuning, LOW);
digitalWrite(LampuHijau, HIGH);
delay(1000);
digitalWrite(LampuHijau, LOW);
digitalWrite(LampuKuning, HIGH);
delay(500);
digitalWrite(LampuKuning, LOW);
}
Penjelasan Program
Penjelasan kode program Lampu Lalu Lintas sederhana di atas adalah sebagai berikut:
- Mendeklarasikan atau mendefinisikan variabel integer dengan menempatkan pin-pin lampu. Dalam hal ini lampu merah ditempatkan pada pin 3, lampu kuning ditempatkan pada pin 2, dan lampu hijau ditempatkan pada pin 1 arduino. Instruksi yang digunakan seperti ini:
int LampuMerah = 3;
int LampuKuning = 2;
int LampuHijau = 1;
- Tambahkan fungsi setup dengan mengatur semua pin lampu (merah, kuning, hijau) sebagai OUTPUT, sehingga gunakanlah instrukSi seperti ini:
void setup() {
pinMode(LampuMerah, OUTPUT);
pinMode(LampuKuning, OUTPUT);
pinMode(LampuHijau, OUTPUT);
}
- Selanjutnya adalah inti program di mana kita membuat fungsi loop yang akan dieksekusi secara berulang-ulang sesuai dengan prinsip kerja lampu lalu lintas sederhana yang diinginkan. Pada bagian ini kita akan menyalakan dan mematikan lampu merah, kuning, dan hijau sesuai dengan prinsip lampu lalu lintas dengan mengatur waktu suatu lampu akan menyala/hidup atau mati. Instruksi yang digunakan adalah sebagai berikut:
void loop() {
digitalWrite(LampuMerah, HIGH);
delay(1000);
digitalWrite(LampuMerah, LOW);
digitalWrite(LampuKuning, HIGH);
delay(500);
digitalWrite(LampuKuning, LOW);
digitalWrite(LampuHijau, HIGH);
delay(1000);
digitalWrite(LampuHijau, LOW);
digitalWrite(LampuKuning, HIGH);
delay(500);
digitalWrite(LampuKuning, LOW);
}
Fungsi dengan kode digitalWrite(pin, value) merupakan fungsi atau instruksi digital output dari pemrograman Arduino. Artinya ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (5 Volt) atau LOW (0 Volt). Dengan demikian, digitalWrite(LampuMerah, HIGH); menyatakan bahwa pin output lampu merah dijadikan HIGH (5Volt) sehingga lampu merah menyala. Selanjutnya kode, delay(1000); mengatur lampu merah agar menyala selama 1000 ms atau 1 detik. Sedangkan digitalWrite(LampuMerah, LOW); berfungsi untuk mematikan atau memadamkan lampu merah. Urutan eksekusi kode pemrograman Arduino dijalankan dari baris atas ke baris bawah, sehingga pengaturan nyala atau padamnya lampu dan pengaturan waktunya disesuaikan dengan prinsip kerja lampu lalu lintas yang dijelaskan sebelumnya. Pengaturan waktu pada kode program tersebut hanya simulasi, untuk waktu yang sesungguhnya dapat diubah sesuai dengan keinginan.
Simulasi dengan Proteus
- Jalankan software Proteus, kemudian buat file project baru dan beri nama, misalnya LampuLaluLintas. Langkah-langkah membuat project di proteus dapat dibaca pada artikel Langkah-langkah Membuat Project Baru di Proteus.
- Buat rangkaian seperti gambar di bawah ini.
Komponen simulasi yang digunakan adalah Arduino Simulino dan Traffic Lights. Untuk mencari komponen Traffic Lights gunakan kata kunci “Traffic Lights” pada jendela Pick Device.
- Selanjutnya tulis kode program pada IDE Arduino, lalu jalankan verifikasi dan pastikan tidak terjadi error saat verifikasi. Copy file .hex kemudian paste ke papan simulasi Arduino dalam software Proteus. Mengenai cara menjalankan verifikasi, menyalin file .hex, dan menjalankan simulasi dapat dibaca pada artikel Simulasi Arduino dengan Ouput LED Berkedip Menggunakan Proteus. Lalu jalankan simulasi Proteus dan akan diperoleh hasil seperti berikut: