Kamis, 04 April 2013

Membuat Program Traffic Light Atmega16

Waktu di jalan raya di perempatan lampu lalu lintas, waktu lampu lalu lintas sedang merah dan menunggu hijau, di situ muncul ide bagaimana membuat control lampu lalu lintas dengan mikrokontroler Atmega16, ada 4 lampu lalu lintas dengan masing-masing lampu lalu lintas terdapat display 7Segmen besar... gak yakin bisa buatnya, soalnya control lampu lalu lintas tersebut menggunakan PLC (Programmable Logic Control), setelah di coba simulasi (proteus), hasilnya berhasil, dan ini gambar rangkaian simulasinya..



dan berikut coding program Traffic Light dengan bascom-Avr :

$regfile = "m16def.dat"
$crystal = 8000000

Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output

Dim O(8) As Integer                                         'output 7segmen
Dim N(4) As Integer                                         'counter
Dim U As Byte                                               'perulangan
Dim W As Integer                                            'perulangan untuk waktu

N(4) = 80
N(3) = 60
N(2) = 40
N(1) = 20

Porta = Lookup(0 , Traffic)
Portb = Lookup(4 , Traffic)

Do

For U = 1 To 4                                              'counter 7 segmen
Decr N(u)
If N(u) = -1 Then N(u) = 79
Next U

'proses
O(1) = N(1) Mod 100
O(1) = O(1) / 10
O(2) = N(1) Mod 10

O(3) = N(2) Mod 100
O(3) = O(3) / 10
O(4) = N(2) Mod 10

O(5) = N(3) Mod 100
O(5) = O(5) / 10
O(6) = N(3) Mod 10

O(7) = N(4) Mod 100
O(7) = O(7) / 10
O(8) = N(4) Mod 10

For W = 1 To 50                                             'delay
For U = 1 To 8                                              'out 7segmen
Portd = Lookup(u , Modes)
Portc = Lookup(o(u) , Segmen)
Waitms 1
Next U
Next W

If N(1) = 6 Then Porta = Lookup(1 , Traffic)
If N(1) = 1 Then Porta = Lookup(2 , Traffic)
If N(2) = 6 Then Porta = Lookup(3 , Traffic)
If N(2) = 1 Then Porta = Lookup(4 , Traffic)
If N(2) = 1 Then Portb = Lookup(0 , Traffic)

If N(3) = 6 Then Portb = Lookup(1 , Traffic)
If N(3) = 1 Then Portb = Lookup(2 , Traffic)
If N(4) = 6 Then Portb = Lookup(3 , Traffic)
If N(4) = 1 Then Portb = Lookup(4 , Traffic)
If N(4) = 1 Then Porta = Lookup(0 , Traffic)

Loop

Modes:                                                      'pengaktifan 7segmen
Data 0 , 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128

Traffic:                                                    'out traffic
Data 12 , 10 , 33 , 17 , 9

Segmen:
Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90

download: Simulasi Proteus Traffic Light dan Script Bascom-Avr
Password Rar: ganyang-angkara.blogspot.com

moga bermanfaat bagi agan-agan yang ingin mencobanya,
moga berhasil mencobanya..

*..sesama blogger harus saling menghargai, jika agan-agan ingin mengcopas harap cantumkan alamat urlnya, Terimakasih..*

5 komentar:

  1. mas bisa minta source codenya untuk program nya yang pakkek code vision?
    terimakasih

    BalasHapus
    Balasan
    1. Terima kasih sudah berkunjung di blog saya..

      maaf gan, saya belum bisa untuk bahasa C, saya hanya mengembangkan apa yang saya pelajari di smk .. khususnya menggunakan bahasa BASCOM,

      Hapus
  2. assalamualaikum
    mas, ana mnta penjelasan program nya dari awal,$regfile, dst mkasih
    ini email ana osd_kool@ymail.com
    klo bsa kirim ya mas,makasih

    BalasHapus
    Balasan
    1. waalaikumsalam
      sudah saya kirimkan gan.
      maaf saya baru sempet membalesnya, di karenakan kesibukan yg ada..

      dan saya mohon maaf jika penjelasan saya masih terbilang rumit untuk untuk di mengerti, karena saya masih dalam tahap belajar, sulit untuk merangkai kata..

      dan terimakasih sudah berkunjung, jika ada yg kurang jelas di tanyakan saja, kita saling berbagi ilmu, dan saya mohon saran dan kritiknya jika da kesalahan

      Hapus