JOB 5
Traffic Light
Di susun oleh :
I. Tujuan :
1. Mengetahui pemanfaatan mikrokontroler untuk pengontrol traffic light
2. Mengetahui fungsi interrupt dan bagaimana interrupt bekerja.
II. Teori :
Traffic light adalah perangkat penting dalam sebuah system lalulintas yang
berfungsi mengatur arus kendaraan pada persimpangan-persimpangan jalan. Untuk
menghindari kecelakaan, pengaturan nyala lampu harus dilakukan secara teliti dan
tepat. Kesalahan dalam mengatur nyala lampu dapat mengakibatkan kekacauan
lalulintas bahkan kecelakaan.
Urutan nyala lampu lalulintas pada umumnya adalah merah, hijau, kuning,
merah, dan seterusnya. Lampu kuning diperlukan untuk menyala selama 3 detik di
antara matinya lampu merah dan menyalanya lampu hijau. Tujuannya adalah untuk
memberi peringatan bagi pengendara agar menurunkan kecepatan kendaraanya untuk
bersiap-siap berhenti. Sementara itu, perpindahan dari lampu merah ke lampu hijau
tidak memerlukan lampu kuning.
Selain itu, juga terdapat kondisi di mana seluruh lampu merah menyala.
Fungsinya adalah untuk mengosongkan persimpangan. Keadaan ini terjadi ketika
lampu pada satu jalan berganti dari kuning ke merah, maka lampu merah pada jalan
lain tetap menyala selama 3 detik.
Pada percobaan ini, modul traffic light yang akan dijadikan bahan percobaan
ditjunjukkan dalam Gambar 1. Nomor 1 dan 3 merupakan nomor jalan yang juga
menunjukkan posisi traffic light 3 lampu (Merah, Kuning, Hijau). Nyala dan mati
ketiga lampu tersebut diatur pada terminal yang terdapat pada kotak nomor 1 dan 3 di
sebelah kiri panel. Nomor 2, 4, dan 5 menunjukkan lokasi dari penyeberangan (zebra
cross) dan lampu penyeberag jalannya. Nyala dan mati lampu merah dan hijau
penyeberang jalan diatur pada terminal 2, 4, dan 5. Tombol-tombol pada jalan 1, 3,
dan 5 merupakan tombol untuk penyeberang jalan. Terminal tombol terletak pada sisi
kanan atas modul.
Jalan simpang tiga yang terdapat dalam Gambar 1 hanya mempunyai satu arah.
Kendaraan pada 1 hanya bisa mengarah ke 5. Demikian juga dengan kendaraan pada
jalan 3. Agar kendaraan pada jalan 1 dan 3 dapat menuju ke jalan 5, traffic light 1 dan
3 harus diatur sedemikian rupa sehingga arus lalulintas dari jalan 1 dan 2 dapat
mengalir bergantian.
void setup() {
// Inisialisasi pinB sebagai input
pinMode(pinBut, INPUT);
attachInterrupt (0, fungsiInterrupt, CHANGE);
void fungsiInterrupt () {
digitalWrite(pinR1, HIGH);
digitalWrite(pinY1, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinR3, HIGH);
digitalWrite(pinY3, LOW);
digitalWrite(pinG3, LOW);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, HIGH);
}
void loop() {
digitalWrite(pinR1, HIGH);
digitalWrite(pinY1, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinR3, LOW);
digitalWrite(pinY3, LOW);
digitalWrite(pinG3, HIGH);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, LOW);
delay (10000);
digitalWrite(pinR1, HIGH);
digitalWrite(pinY1, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinR3, LOW);
digitalWrite(pinY3, HIGH);
digitalWrite(pinG3, LOW);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, LOW);
delay (5000);
digitalWrite(pinR1, HIGH);
digitalWrite(pinY1, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinR3, HIGH);
digitalWrite(pinY3, LOW);
digitalWrite(pinG3, LOW);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, LOW);
delay (3000);
digitalWrite(pinR1, LOW);
digitalWrite(pinY1, LOW);
digitalWrite(pinG1, HIGH);
digitalWrite(pinR3, HIGH);
digitalWrite(pinY3, LOW);
digitalWrite(pinG3, LOW);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, LOW);
delay (10000);
digitalWrite(pinR1, LOW);
digitalWrite(pinY1, HIGH);
digitalWrite(pinG1, LOW);
digitalWrite(pinR3, HIGH);
digitalWrite(pinY3, LOW);
digitalWrite(pinG3, LOW);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, LOW);
delay (5000);
digitalWrite(pinR1, HIGH);
digitalWrite(pinY1, LOW);
digitalWrite(pinG1, LOW);
digitalWrite(pinR3, HIGH);
digitalWrite(pinY3, LOW);
digitalWrite(pinG3, LOW);
digitalWrite(pinR5, HIGH);
digitalWrite(pinG5, LOW);
delay (3000);
5. Lampu pada titik 1 dan 3 bergantian menyala, apabila lampu pada titk 1 berwarna
hijau kemudian menjadi kuning maka lampu pada titik 3 berwarna merah, ketika
lampu pada titik 1 berwarna merah lampu pada titik 3 berubah menjadi hijau
kemudian berwarna kuning dan menjadi merah, kemudian berulang pada titik 1
menjadi berwarna hijau.
6. Apabila tombol pada titik 5 di tekan maka lampu penyebrangan pada titik 5
berubah menjadi warna hijau dan lampu pada titik 3 dan 1 menjadi berwarna merah.
8. Fungsi Interrupt pada Arduino adalah suatu fungsi untuk memicu program lain
secara eksternal atau internal. Singkatnya, dengan memberi masukan atau sebuah
keluaran, akan bisa memproses program lain. Secara sederhana arduino sudah
menyediakan fungsi khusus untuk penggunaan interupt yaitu dengan attachInterrupt
(interrupt, function, mode) .
Khusus untuk Arduino Uno, hanya memiliki 2 pin interrupt yaitu INT0 pada pin 2
digital dan INT1 pada pin 3 digital. Pada bagian fungsi bisa ditulis program fungsi
yang dimaksud. Contoh untuk program fungsi void variasi() .
Mode LOW. Pada mode ini interrupt akan diaktifkan saat pin int memiliki logika low
dan akan aktif selama masih berlogika low. Artinya bila tidak ada trigger awal,
intterupt dapat bekerja menjalankan program fungsi.
Mode CHANGE. Interrupt akan diaktifkan saat terjadi perubahan logika baik dari low
ke high ataupun high ke low.
Mode RISING. Pengaktifan interrupt akan terjadi jika pin mengalami perubahan
logika dari low ke high. Bedanya dengan CHANGE, ketika dari high ke low interrupt
tidak akan aktif.
Mode FALLING. Perubahan logika pada pin int dari high ke low akan mengaktifkan
fungsi interrupt. Ini menjadi kebalikan dari metode RISING.
9.