Selasa, 07 Desember 2010

Traffic light 4 jalur + down counter menggunakan ATMEGA16


Traficlight seperti kita ketahui digunakan untuk mengatur lalu lintas pada persimpangan jalan baik pertigaan atau perempatan bahkan simpang lima. Traficlight digunakan untuk menggantikan tugas pak polisi supaya kerjanya lebih ringan dan he he he tinggal tilang aja klo ada yang gak nurut.. cukup sekian basa basinya langsung saja ke konfigurasi hardwarenya. trafic ini terdiri dari tiga buah komponen utama yaitu:

1. Controler
2. Counter display 7 segment
3. 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)

untuk lebih jelasnya bisa download simulasinya (proteus) disini



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 hijau
garis 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.
Untuk lebih jelas nya program bisa didownload disini.

download:
simulator klik disini
program klik disini

wasalam

10 komentar:

  1. masih....... moga bermanfaaat ya... kbtulan ane lagi buat untuk TA, mohon izin Donlot yaaaaaa

    BalasHapus
  2. Klo programnya pake apa ya?????

    BalasHapus
  3. knapa masih ada error ya...........???? tolong dooooonx's....

    BalasHapus
  4. Maaf, errornya disebelah mana ?

    BalasHapus
  5. program yang pake bahasa c ada gak? kalo ada tolong email ke niamaulida89@gmail.com soalnya biasa pake cv avr nich... mohon pencerahannya

    BalasHapus
  6. Ada yang bahasa C apa gak gan?

    BalasHapus
  7. Mungkin kalau pake bahasa C lebih gampang ya gan..??

    BalasHapus
  8. Ada yg pake bahasa C gak?? pasti lebih gampang

    BalasHapus
  9. tlng kasi keterangan si, hasil yang di tampilkan di seven segmen pada kode ini : &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90
    kalo bisa sama cara menghitungnya..

    BalasHapus