Hoşgeldiniz, Giriş Yapın veya Kayıt Olun.
VB te seri portu kullanmak için 2 seçenek var. Bunun ilki API ile olup bunun için modül oluşturmamız gerekiyor. İkinci yol ise bizim kullandığımız yol bu özellik VB6 nın bize sağladığı avantaj Microsoft COMM Control nesnesi ile seri portla kolayca iletişim kurulabiliyor. Bunu eklemek için resimleri izlemek yeterli.
Devrenin bağlantıları PC nin seri portu ile aşağıdaki şemada görülmektedir.
Buradaki Zener diyotun amacı led üzerindeki gerilimi 12 Volttan zener gerilimi olan 5.1 Volta düşürmektir. Aslında şekildeki kırmızı renki pinlerin hepsi çıkış pini olarak kullanılabilir fakat burada 7. pin tercih edilmiştir. Çıkış pinlerinin hepsi ilk durumda yani doğal durumlarında -12 Volt değerini taşırlar. Programı çalıştırıp 7.pine çıkış verdiğimizde ise bu pinin voltaj değeri +12 Volta kadar yükselir. Ani seri portta peak to peak voltaj değeri 24 volttur. Seri portun 5. bacağı şekildeki gibi toprak/GND bacağıdır. Bu arada LED akımını sınırlamak için bir 330 ohm luk direnç kullanılmıştır. Bu arada seri port çıkışlarınd iletişim halinde iken akım 49 mA seviyesindedir. Bu akım düzeyi bir LED için yeterlidir. LED yerine motor kontrolü gibi uygulamalarda seri port çıkışını doğrudan motora bağlamak doğru değildir.Motor kalkış anında fazla akım çekmek istediğinden seri port akımı bunu karşılayamaz ve motor dönmez. Hatta seri porta zarar verebilirsiniz. Eğer motor gibi bir yük kullanacaksanız transistörle sürmeniz ve daha mantıklı H-köprüsüyle akımı yükseltmelisiniz. Bu işlem içinde tabiki dışarıdan bir besleme gereklidir.
Programın Kaynak 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
İbrahim Erkutlu internet portalı içersinde aramak istediğiniz anahtar kelimeleri veya ifadeleri yazın.