- Controler (ATmega16)
- Counter display 7 segment
- Led merah, kuning dan hijau
Controler pada trafic ini menggunakan atmega16
Counter display menggunakan 7 segment dengan shift register sebagai perantara pengiriman data dari controler Led merah, kuning dan hijau digunakan mengatur lalulintas merah artinya stop, hijau artinya jalan dan kuning artinya jalan ngebut (keburu lampu merahnya nyala)Pada prinsipnya kerja traficlight adalah menyalakan lampu hijau dan lampu kuning secara bergantian, misalnya pada trafic light 4 jalur ini. Pada traficlight ini nyala lampu hijau dan kuning dibuat sama untuk 4 jalurnya yaitu 8 detik untuk lampu hijau dan 2 detik untuk lampu kuning jadi totalnya adalah 11 detik. sedangkan untuk nyala lampu merahnya adalah 3 kali lipat nyala lampu hijau + Kuning, jadi untuk nyala lampu merahnya adalah 11+11+11 = 35. lho kog 35 bukannya 33? eit jangan salah dalam trafic light counter downnya menghitung atau mencacah sampai angka nol (0) bukan 1 untuk lebih jelasnya berikut adalah timeline nya
keterangan
garis hijau = lama nyala lampu hijaugaris kuning = lama nyala lampu kuning
garis merah = lama nyala lampu merah
setelah mengetahui konsepnya maka dapat langsung diimplementasikan pada programnya. disini bahasa pemrogramannya menggunakan Bascomavr. Berikut merupakan inti dari program traficlight diatas:
program utama
Do
Gosub Tampil1
Gosub Tampil2
Gosub Tampil3
Gosub Tampil4
Gosub Trafic1
Gosub Trafic2
Gosub Trafic3
Gosub Trafic4
Decr Sat1
Decr Sat2
Decr Sat3
Decr Sat4
Loop
Sub program ini berfungsi untuk memanggil sub program tampil dan sub program trafic dan juga digunakan untuk men- decrement- menurunkan nila variabel sat.
Sub program tampil
Tampil1:
Reset Oe1
Kodesat1 = Lookup(sat1 , Kode)
Kodepul1 = Lookup(pul1 , Kode)
Shiftout Data1 , Clock1 , Kodesat1 , 1
Shiftout Data1 , Clock1 , Kodepul1 , 1
Waitms 200 Set Oe1
Return
Sub program tersebut digunakan untuk menampilkan data data pada tabel lookup (yang berisi data nilai 0 sampai 9) ke seven segment melalui shift register. berikut merupakan tabel lookup nya:
Kode:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
Sub program trafic
Trafic1:
'lampu
If A1 = 0 And B1 = 0 Then
Merah1 = 0
Kuning1 = 0
Hijau1 = 1
End If
If A1 = 0 And B1 = 1 Then
Merah1 = 1
Kuning1 = 0
Hijau1 = 0
End If
If A1 = 1 And B1 = 0 Then
Merah1 = 0
Kuning1 = 1
Hijau1 = 0
End If
'counter
If Sat1 = 0 And Pul1 = 0 And Flaghijau1 = 0 And Flagkuning1 = 0 Then
Sat1 = 3
Pul1 = 0
Flaghijau1 = 1
A1 = 1
B1 = 0
End If
If Sat1 = 0 And Pul1 = 0 And Flaghijau1 = 1 And Flagkuning1 = 0 Then
Sat1 = 6
Pul1 = 3
Flagkuning1 = 1
A1 = 0
B1 = 1
End If
If Sat1 = 0 And Pul1 = 0 And Flaghijau1 = 1 And Flagkuning1 = 1 Then
A1 = 0
B1 = 0
Flaghijau1 = 0
Flagkuning1 = 0
End If
If Sat1 = 0 And Pul1 = 3 Then
Decr Pul1
Sat1 = 10
End If
If Sat1 = 0 And Pul1 = 2 Then
Decr Pul1
Sat1 = 10
End If
If Sat1 = 0 And Pul1 = 1 Then
Decr Pul1
Sat1 = 10
End If
Return
Sub program ini mempunyai 2 fungsi yaitu: Untuk menyalakan lampu merah, hijau dan kuning, dan untuk mengatur counter down (dengan perintah if...then) supaya bisa mencacah sesuai dengan angka angka pada timeline yang telah ditentukan.
Sumber : allabouthenda.blogspot.com
0 komentar:
Posting Komentar