BAB III PERANCANGAN
3.2 Perancangan Perangkat Lunak
3.2.1 Program Pengendali Kendali Lampu Lalu Lintas . 18
3.2.1.2 Program Utama Penyalaan Lampu Lalu -
Adanya informasi dari hasil deteksi sensor ini menyebabkan lampu lalu-lintas menyala tidak sesuai dengan siklusnya pada status normal, tetapi akan menyala sesuai informasi ( perintah ) yang ada. Seperti yang ditunjukkan pada Gambar 3.5. Penyalaan lampu lalu-lintas untuk status ter-interupsi sebelumnya dilakukan pengecekan informasi interupsi terlebih dahulu. Pengecekan interupsi dilakukan secara otomatis setiap 1 detik dengan meletakkan intruksi pengecekan setelah rutin tunda 1 detik. Pengecekan ini dilakukan berurutan sesuai dengan urutan prioritas informasi. Adapun prioritas input (masukan) tersebut adalah :
1. Prioritas informasi kereta api
2. Prioritas informasi kendaraan ber-sirine 3. Prioritas informasi antrian panjang kendaraan
Setelah melakukan pengecekan dan prioritasan informasi maka program mikrokontroler akan menjalankan informasi tersebut. Pelaksanaan infromasi dilakukan langsung tanpa harus menunggu intruksi selanjutnya pada program status normal. Sebelum menjalankan informasi mikrokontroler akan menyimpan data dari penyalaan lampu lalu-lintas untuk status normal terlebih dahulu. Hal ini dilakukan agar setelah menjalankan informasi lampu lalu-lintas dapat menyala kembali dalam keadaan terakhir status normal yang telah disimpan. Penyalaan lampu lalu-lintas dilakukan berdasarkan informasi yang didapat. Pelaksanaan informasi penyalaan lampu lalu-lintas adalah sebagai berikut :
1. Pelaksanaan prioritas informasi kereta api
Seperti ditunjukkan pada Gambar 3.6. Apabila P2.0 bernilai 1 maka mikrokontroler akan menyimpan keadaan LL terakhir untuk status normal dan
kemudian mengirim data ke pin-pin lampu merah sehingga semua persimpangan lampu lalu-lintas akan menyala merah. Setelah P.2.0 bernilai 0 maka mikrokontroler akan membaca data keadaan LL terakhir yang disimpan tadi sehingga lampu lalu-lintas akan kembali menyala pada status normal. Untuk diagram alir program dapat dilihat pada Gambar 3.7a dan 3.7b.
Ada KA?
Utara merah persimpangan berfungsi tiga arah Simpan keadaan LL terakhir status normal
Ada KA?
Baca keadaan LL terakhir status normal yang disimpan dan persimpangan kembali seperti semula
Gambar 3.6 Diagram blok pengecekan informasi kereta api Start ya tidak tidak ya Ret Ret
Start
Hidupkan lampu indicator
Sensor KA1 = 1? Sensor KA2 = 1? Sensor kendaraan = 1? Hidupkan alarm
Kirim 1 ke mikro pusat
Turunkan palang
Matikan motor palang
Kereta sudah lewat?
Matikan alarm Kirim 0 ke mikro pusat
Buka palang A
Matikan motor palang B B ya ya ya ya tidak tidak tidak tidak
2. Pelaksanaan prioritas informasi kendaraan bersirine
Seperti yang ditunjukkan oleh Gambar 3.8 dan Tabel 3.4a hingga Tabel 3.4d. Apabila pada P3 terdapat masukan (informasi), maka program akan menyimpan keadaan LL terakhir pada status normal dan kemudian menyalakan lampu hijau sesuai informasi yang diterima. Misalkan informasi yang didapat berasal dari arah persimpangan utara, maka mikrokontroler mengirim data ke port lampu hijau yang ada di persimpangan utara agar menyala. Setelah kendaraan bersirine melewati persimpangan lainnya selain utara, maka mikrokontroler menghapus kembali data yang ada pada port
Sensor KA2 = 1? Sensor KA1 = 1? Sensor kendaraan = 1? Hidupkan alarm
Kirim 1 ke mikro pusat
Turunkan palang
Matikan motor palang
Kereta sudah lewat?
Matikan alarm Kirim 0 ke mikro pusat
Buka palang A
Matikan motor palang B B ya ya ya ya tidak tidak tidak tidak
lampu hijau di utara sehingga lampu mati dan lampu lalu-lintas akan menyala pada status normal kembali. Untuk diagram alir program dapat dilihat pada Gambar 3.9
Sirine sudah lewat jalur lain?
Jalur yang dilewati sirine pertama kali menyala lampu hijau Ada sirine?
Baca keadaan LL terakhir status normal yang disimpan dan persimpangan kembali seperti semula
Gambar 3.8 Diagram pengecekan informasi kendaraan sirine Start ya tidak tidak ya Ret
Simpan keadaan LL terakhir status normal
Jalur yang dilewati sirine pertama kali menyala lampu merah Ret
Start
Gambar 3.9 Diagram alir program pengecekan informasi kendaraaan bersirine Ada Sirine? Isi alamat deteksi sensor = 1? Inc alamat deteksi sensor Isi alamat deteksi sensor = 1? Jml simpang = 1? Inc alamat deteksi sensor Dec jml simpang Sensor = 0 Sensor = 1 Inc alamat deteksi sensor
Pengecekan informasi lain
Sudah simpan keadaan LL
terakhir? Simpan keadaan LL terakhir status normal
LL semua menyala merah Nyalakan LL hijau pada simpang
LL semua menyala merah Baca simpan keadaan LL terakhir
status normal Tunda waktu
Sudah menyala LL hijau pada simpang ini? Set sirine, sensor, alamat deteksi sensor, jml simpang = 4
Tabel 3.4.a Input/output prioritas informasi kendaraan sirine untuk simpang utara Simpang Sensor Lampu Keterangan
Hijau Kuning Merah Utara Mendeteksi Hidup Mati Mati
Kendaraan sirine datang ke arah utara, maka lampu utara menyala hijau.
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Hidup Mati
Kendaraan sirine telah melewati arah utara, maka lampu utara menyala kuning
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Hidup K Kendaraan sirine telah melewati simpang lainnya setelah utara, keadaan kembali ke status normal
Timur Mendeteksi Mati Mati Hidup
Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Hidup Kendaraan sirine telah melewati simpang lainnya setelah utara, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Mendeteksi Mati Mati Hidup
Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Hidup Kendaraan sirine telah melewati simpang lainnya setelah utara, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup
Tabel 3.4.b Input/output prioritas informasi kendaraan sirine untuk simpang timur Simpang Sensor Lampu Keterangan
Hijau Kuning Merah Utara Tidak
mendeteksi Mati Mati Hidup
Kendaraan sirine datang ke arah timur, maka lampu timur menyala hijau.
Timur Mendeteksi Hidup Mati Mati Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Mati
Kendaraan sirine telah melewati arah timur, maka lampu timur menyala kuning
Timur Tidak
mendeteksi Mati Hidup Mati Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup
Utara Mendeteksi Mati Mati Hidup
Kendaraan sirine telah melewati simpang lainnya setelah timur, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Hidup Mati Mati Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Hidup Kendaraan sirine telah melewati simpang lainnya setelah timur, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Mendeteksi Hidup Mati Mati
Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Hidup Kendaraan sirine telah melewati simpang lainnya setelah timur, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Hidup Mati Mati
Tabel 3.4.c Input/output prioritas informasi kendaraan sirine untuk simpang selatan Simpang Sensor Lampu Keterangan
Hijau Kuning Merah Utara Tidak
mendeteksi Mati Mati Hidup
Kendaraan sirine datang ke arah selatan, maka lampu selatan menyala hijau.
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Mendeteksi Hidup Mati Mati
Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Mati Mati Hidup
Kendaraan sirine telah melewati arah selatan, maka lampu selatan menyala kuning.
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Hidup Mati Barat Tidak
mendeteksi Mati Mati Hidup
Utara Mendeteksi Mati Mati Hidup
Kendaraan sirine telah melewati simpang lainnya setelah selatan, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Hidup Mati Mati Utara Tidak
mendeteksi Mati Mati Hidup Kendaraan sirine telah melewati simpang lainnya setelah selatan, keadaan kembali ke status normal
Timur Mendeteksi Mati Mati Hidup
Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Hidup Mati Mati Utara Tidak
mendeteksi Mati Mati Hidup Kendaraan sirine telah melewati simpang lainnya setelah selatan, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Mendeteksi Hidup Mati Mati
Tabel 3.4.d Input/output prioritas informasi kendaraan sirine untuk simpang barat Lampu
Hijau Kuning Merah Utara Tidak
mendeteksi Mati Mati Hidup
Kendaraan sirine datang ke arah barat, maka lampu barat menyala hijau.
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Mendeteksi Hidup Mati Mati Utara Tidak
mendeteksi Mati Mati Hidup
Kendaraan sirine telah melewati arah barat, maka lampu barat menyala kuning.
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Hidup Mati Utara Mendeteksi Hidup Mati Mati
Kendaraan sirine telah melewati simpang lainnya setelah barat, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Hidup Mati Mati Kendaraan sirine telah melewati simpang lainnya setelah barat, keadaan kembali ke status normal
Timur Mendeteksi Mati Mati Hidup
Selatan Tidak
mendeteksi Mati Mati Hidup Barat Tidak
mendeteksi Mati Mati Hidup Utara Tidak
mendeteksi Hidup Mati Mati Kendaraan sirine telah melewati simpang lainnya setelah barat, keadaan kembali ke status normal
Timur Tidak
mendeteksi Mati Mati Hidup Selatan Mendeteksi Mati Mati Hidup
Barat Tidak
3. Pelaksanaan prioritas informasi antrian kendaraan
Seperti yang ditunjukkan pada Gambar 3.10 dan Tabel 3.5. Apabila pada P1 terdapat masukan (infomasi), maka program akan memberi waktu tambahan untuk lampu hijau sesuai informasi yang diterima. Misalkan pada persimpangan jalan bagian selatan antrian kendaraan lebih panjang dari persimpangan lainnya maka persimpangan jalan dari arah selatan yang lebih diprioritaskan untuk menyala lampu hijau. Selain itu lampu hijau yang menyala bisa mendapatkan waktu tunda yang lebih lama dibandingkan waktu tunda dari status normal. Waktu tunda tambahan ini terjadi jika seiring dengan pendeteksian antrian kendaraan pada persimpangan tersebut. Untuk diagram alir program dapat dilihat pada gambar 3.11.
Sensor1?
Gambar 3.10 Diagram pengecekan informasi antrian kendaraan Start
ya
tidak
Ret
Tunda waktu 5 detik
Sensor2?
Sensor3? ya
ya
tidak Tunda waktu 5 detik
tidak Tunda waktu 10detik
Sensor3? ya
tidak
Tunda waktu 15 detik
Tunda waktu 20 detik
Ret Ret Ret Ret
Ada Antrian? Start Isi alamat simpang =1?
Simpan keadaan LL terakhir LL semua menyala merah Nyalakan LL hijau pada simpang
Isi alamat tambah waktu = 1?
Inc alamat tambah waktu Inc alamat simpang
Isi alamat tambah waktu = 1? Inc alamat tambah waktu
Isi alamat tambah waktu = 1? + tunda waktu 5 detik + tunda waktu 10 detik + tunda waktu 15 detik + tunda waktu 20 detik
Set antrian, alamat simpang, alamat tambah waktu
ya
Pengecekan informasi lain tidak tidak tidak tidak tidak ya ya ya ya
Gambar 3.11 Diagram alir program informasi antrian kendaraan End
Tabel 3.5 Input/output prioritas informasi antrian kendaraan
Simpang
Sensor
(ya = mendeteksi, tidak = tidak mendeteksi)
Keterangan penyalaan waktu tunda lampu hijau
1 2 3 4
Utara
Tidak Tidak Tidak Tidak 5 detik
Ya Tidak Tidak Tidak 5 detik
Ya Ya Tidak Tidak 10 detik
Ya Ya Ya Tidak 15 detik
Ya Ya Ya Ya 20 detik
Timur
Tidak Tidak Tidak Tidak 5 detik
Ya Tidak Tidak Tidak 5 detik
Ya Ya Tidak Tidak 10 detik
Ya Ya Ya Tidak 15 detik
Ya Ya Ya Ya 20 detik
Selatan
Tidak Tidak Tidak Tidak 5 detik
Ya Tidak Tidak Tidak 5 detik
Ya Ya Tidak Tidak 10 detik
Ya Ya Ya Tidak 15 detik
Ya Ya Ya Ya 20 detik
Barat
Tidak Tidak Tidak Tidak 5 detik
Ya Tidak Tidak Tidak 5 detik
Ya Ya Tidak Tidak 10 detik
Ya Ya Ya Tidak 15 detik
Ya Ya Ya Ya 20 detik
Sewaktu sedang menjalankan prioritas informasi apabila ada prioritas informasi yang lebih tinggi maka program akan menghentikan prioritas informasi yang lebih rendah dan menjalankan prioritas informasi yang lebih tinggi. Setelah menjalankan prioritas informasi program akan mengambil data penyalaan lampu status normal yang disimpan sebelum melakukan prioritas informasi tadi untuk dijalankan kembali seperti keadaan terakhir dari penyalaan lampu pada status normal tersebut.