Jumat, 25 Juni 2010

Simulasi Lampu Lalulintas dengan VB 6.0 dan Port Pararel



Cara membuat simulasinya adalah sebagai berikut :
  1.  sediakan komponen-komponen yang dibutuhkan antara lain :
  • Papan PCB 
  • lampu LED warna merah, kuning dan hijau
  • kabel kecil panjang kira-kira 1 meter
  • port pararel
  • serta peralatan elektronika dasar seperti solder, timah, guntimg kabel dll.
      Rangkailah LED dan port pararel seperti dibawah ini :

      
      2.  Jika sudah memastikan semua lampu, kabel dan port pararel terpasang dengan baik dan benar. buatlah       
           form seperti dibawah ini untuk tampilan pengontrolnya:

                      Timer1 namanya anda ganti menjadi Timerlampu dan intervalnya bernilai 0
                      Timer2 namanya diganti menjadi Timerkedip dan intervalnya bernilai 0

       3. Buatlah sebuah modul. lalu tulis listing berikut :
           Public Declare Sub PortOut Lib "io.dll" (ByVal nPort As Integer, ByVal nData As Byte)
           Public Declare Function PortIn Lib "io.dll" (ByVal nPort As Integer) As Byte

        4.masukkan Listing berikut untuk form pengontrol lampu lalulintasnya :
Private Sub Cmdhatihati_Click()
lampumati
timerlampu.Enabled = False
timerkedip.Enabled = True
timerkedip.Interval = 1
TXTMERAH = "0"
TXTKUNING = "2"
TXTHIJAU = "2"
End Sub

Private Sub cmdkeluar_Click()
MsgBox "Terima kasih telah menggunakan program sederhana ini! - Fadly.Rafly2010", vbInformation,"Informasi"
End
End Sub

Private Sub cmdrun_Click()
If TXTMERAH = "" Then: MsgBox "Isi dulu waktu nyala lampu merah!": TXTMERAH.SetFocus: Exit Sub
If TXTKUNING = "" Then: MsgBox "Isi dulu waktu nyala lampu kuning!": TXTKUNING.SetFocus: ExitSub
If TXTHIJAU = "" Then: MsgBox "isi dulu waktu nyala lampu hijau!": TXTHIJAU.SetFocus: Exit Sub
lampumati
timerkedip.Enabled = False
timerlampu.Enabled = True
timerlampu.Interval = 1
End Sub

Sub lampumati()
    Empty_Bit 888, 0
    Empty_Bit 888, 1
    Empty_Bit 888, 2
    hijau.BackColor = &H4000&    'hijau tua
    kuning.BackColor = &H4040&   'kuning tua
    merah.BackColor = &H40&      'merah tua
End Sub

Sub hijaunyala()
    Out_Bit 888, 0
    hijau.BackColor = vbGreen
End Sub

Sub kuningnyala()
    Out_Bit 888, 1
    kuning.BackColor = vbYellow
End Sub

Sub merahnyala()
    Out_Bit 888, 2
    merah.BackColor = vbRed
End Sub

Sub hijaumati()
    Empty_Bit 888, 0
    hijau.BackColor = &H4000&
End Sub

Sub kuningmati()
    Empty_Bit 888, 1
    kuning.BackColor = &H4040&
End Sub

Sub merahmati()
    'Empty_Bit 888, 11
    merah.BackColor = &H40&
End Sub

Private Sub Cmdstop_Click()
    Out_Bit 888, 3
    timerlampu.Enabled = False
    timerkedip.Enabled = False
    TXTMERAH = ""
    TXTKUNING = ""
    TXTHIJAU = ""
    TXTMERAH.SetFocus
    hijau.BackColor = &H4000&    'hijau tua
    kuning.BackColor = &H4040&   'kuning tua
    merah.BackColor = &H40&      'merah tua  
End Sub

Private Sub Form_Activate()
MsgBox " Assalamu Alaikum! Selamat datang diprogram simulasi lampu lalulintas. Program simulasi ini dibuat sebagai bahan ajar untuk Teknik Komputer oleh Fadly Okfianto Muin. Selamat Mencoba!", vbInformation, "Salam"
TXTMERAH.SetFocus
End Sub


Private Sub timerkedip_Timer()
Static intLampu1 As Integer
    Select Case intLampu1
    Case 0 'Hijau
        lampumati
        timerkedip.Interval = Val(TXTHIJAU.Text) * 1000
        hijaunyala
        intLampu1 = 1
    Case 1 'kuning
        lampumati
        timerkedip.Interval = Val(TXTKUNING.Text) * 1000
        kuningnyala
        intLampu1 = 0
    End Select
End Sub

Private Sub timerlampu_Timer()
   Static intLampu As Integer
    Select Case intLampu
    Case 0 'Hijau
        lampumati
        timerlampu.Interval = Val(TXTHIJAU.Text) * 1000
        hijaunyala
        intLampu = 2
    Case 1 'merah
        lampumati
        timerlampu.Interval = Val(TXTMERAH.Text) * 1000
        merahnyala
        intLampu = 0
    Case Else 'kuning
        lampumati
        timerlampu.Interval = Val(TXTKUNING.Text) * 1000
        kuningnyala
        intLampu = 1
    End Select
End Sub

Private Sub TXTHIJAU_Change()
    With TXTHIJAU
        If IsNumeric(.Text) = False Then SendKeys vbBack: Exit Sub
    End With
End Sub

Private Sub TXTKUNING_Change()
    With TXTKUNING
        If IsNumeric(.Text) = False Then SendKeys vbBack: Exit Sub
    End With
End Sub

Private Sub TXTMERAH_Change()
    With TXTMERAH
        If IsNumeric(.Text) = False Then SendKeys vbBack: Exit Sub
    End With
End Sub

Sub Empty_Bit(Alamat_Port, Nomor_Bit)
Dim Nilai, Status_Port, Nilai_Baru As Byte
Select Case Nomor_Bit
Case 0: Nilai = 134  ' 1
Case 1: Nilai = 133  '2
Case 2: Nilai = 131  '4
'Case 3: Nilai = 128 'matikan lampu 123 -136
Case Else
GoTo out_range
End Select
Status_Port = PortIn(Alamat_Port)
Nilai_Baru = Status_Port Or Nilai
PortOut Alamat_Port, Nilai_Baru
out_range:
End Sub

Sub Out_Bit(Alamat_Port, Nomor_Bit)
Dim Nilai, Status_Port, Nilai_Baru As Byte
Select Case Nomor_Bit
Case 0: Nilai = 129 'Nyalakan Hijau
Case 1: Nilai = 130 'Nyalakan Kuning
Case 2: Nilai = 132 'Nyalakan Merah
Case 3: Nilai = 136 'nyalakan lampu ke8 dan matikan lampu 123
Case Else
GoTo out_range
End Select
Status_Port = PortIn(Alamat_Port)
Nilai_Baru = Status_Port And Nilai
PortOut Alamat_Port, Nilai_Baru
out_range:
End Sub

Untuk menjalankannya, masukkan angka pada masing-masing teks untuk mengontrol lamanya lampu. maka InsyaAllah lampu hijau, merah dan kuning akan menyala sesuai waktu yang kita masukkan dalam teks tadi ketika tombol RUN dijalankan. sedangkan tombol hati-hati adalah menjalankan lampu hijau dan kuning saja dengan durasi masing-masing 2 detik. 

SELAMAT MENCOBA!
Untuk mengunduh dan melihat program aslinya silahkan gabung di Grup Bengkel IT Mamuju - 
BIT-MAMUJU di :
                    







0 komentar:

Posting Komentar