6 Ekim 2012 Cumartesi

Visual Basic 6 seri port kullanımı led yakma devresi


Visual Basic 6 seri port kullanımı led yakma devresi
Hazırlayan: H. Yakupoğlu – Visual Basic 6 ile seri port kullanımı hakkında faydalı bir çalışma ayrıca program kaynak kodları ve seri port üzerinden led yakma hakkında bilgiler bulunuyor. Emeği geçen hazırlayan kişilere teşekkürler.
Program kodları,.exe dosyası, modül .bas dosyaları: visual-basic-seri-port-led.rar
Açıklama: Program vb 6.0 da yazılmıştır Basit bir uygulama gibi görünüyor ancak seri portun çalışma mantığının anlama bakımından çok yararlı bence . Vb te seri portu kullanmak için 2 seçenek var. bunun ilkiAPI ile bunun için modül oluşturmamız gerekiyor buda baya bi uğraş gerekiyor.
İkinci yol ise bizim kullandığımız yol bu özellik vb6 nın bize sağladığı avantaj Microsoft Comm Controlnesnesini ile seri portla kolayca iletişim kurulabiliyor. Bunu eklemek için resimleri izlemek yeterli.
Microsoft Comm Control api modul
Microsoft Comm Control api modul vb6 seri port
Visual Basic api modul vb6 seri port
Şimdide cam görüntüsü almak için modül ekleyelim..
Visual Basic webcam goruntusu almak icin modul
Visual Basic cam goruntusu almak icin modul
Modüle gerekli kodları yazdıktan sonra modül penceresini kapatıyoruz.
Visual Basic modul kapatma bitti
Şimdide seri port çıkışı için devre şeması
Visual Basic seri poart cikisi devre semasi
Zenerin amacı hepinizin bildiği gibi led üzerindeki gerilimi 12V tan zener gerilimi olan 5.1V a düşürmek. Aslında şekildeki kırmızı renki pinlerin hepsi çıkış pini ben tercih olarak 7. pini tercih ettim çıkış pinlerinin hepsi ilk durumda -12V değerindedir.
Programı çalıştırıp 7 .pine çıkışp verdiğimizde +12V a yükselir. Seri portun 5. bacağı şekildeki gibi 5. bacaktır.akımı sınırlamak için bir dirençte kullanılmıştır.Bununla beraber seri port çıkışı iletişim halinde 49 mA seviysindedir.
!!!! Dikkat etmesi gereken bir husus burada led kullanıldığı için led enerjisini direk seri porttan almıştır .Motor kontrolü gibi uygulamalarda seri port çıkışı doğrudan motora bağlamamak gerekir.Motor kalkış anında fazla akım çekmek istediğinden seri port bunu karşılayamaz ve motor dönmez .En kötü ihtimal seri port yanar :D ama korkmayın ben denedim bir şey olmuyor bende sadece motor hareket etmedi o kadar :D
Motor kullanacaksanız transistorle sürmeniz daha mantıklı H- köprüsüyle akımı yükseltirsiniz çok daha güzel olur bunun için tabi dışarıdan bir beleme gerekli.
Neyse kodlar aşağıda size kolay gelsin unutmayın “BİLGİLER PAYLAŞTIKÇA ÇOĞALIR”
H. Yakupoğlu
SAÜ EEM
Program Kodları
[sourcecode lang='vb']
Dim hy As Long
Private Sub cmdCapture_Click()
Dim temp As Long
Dim temp1 As Long
hwdc = capCreateCaptureWindow(“Dixanta Vision System”, ws_child Or ws_visible, 0, 0, 320, 240, Picture1.hWnd, 0)
If (hwdc <> 0) Then
temp = SendMessage(hwdc, wm_cap_driver_connect, 0, 0)
temp = SendMessage(hwdc, wm_cap_set_preview, 1, 0)
temp = SendMessage(hwdc, WM_CAP_SET_PREVIEWRATE, 30, 0)
startcap = True
Else
MsgBox “kamera takılı değil veya Bulunamadı”, vbCritical, “UYARI”
End If
End Sub
Private Sub cmdClose_Click()
Dim temp As Long
If startcap = True Then
temp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&)
startcap = False
End If
End Sub
Private Sub cmdVideoFormat_Click()
Dim temp As Long
If startcap = True Then
temp = SendMessage(hwdc, WM_CAP_DLG_VIDEOFORMAT, 0&, 0&)
End If
End Sub
Private Sub Command1_Click()
MSComm1.RTSEnable = True
Label1.BackColor = &H80FF80
Label1.Caption = “LED YANIYOR”
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
End Sub
Private Sub Command3_Click()
MSComm1.RTSEnable = False
Timer1.Enabled = False
Label1.BackColor = &HFF&
Label1.Caption = “LED SÖNÜK”
End Sub
Private Sub Command4_Click()
hy = hy – 100
Text1.Text = hy
If Text1.Text <= 100 Then
Text1.Text = 100
End If
End Sub
Private Sub Command5_Click()
If Text1.Text <= 100 Then
hy = 100
End If
hy = hy + 100
Text1.Text = hy
End Sub
Private Sub Command6_Click()
End
End Sub
Private Sub Form_Load()
Caption = "serialhy3000"
hy = 1000
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub Timer1_Timer()
Dim c
Timer1.Interval = Text1.Text
c = MSComm1.RTSEnable = True
MSComm1.RTSEnable = True = MSComm1.RTSEnable = False
MSComm1.RTSEnable = False = c
End Sub

Hiç yorum yok: