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 LongDim temp1 As Longhwdc = capCreateCaptureWindow(“Dixanta Vision System”, ws_child Or ws_visible, 0, 0, 320, 240, Picture1.hWnd, 0)If (hwdc <> 0) Thentemp = 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 = TrueElseMsgBox “kamera takılı değil veya Bulunamadı”, vbCritical, “UYARI”End IfEnd Sub Private Sub cmdClose_Click()Dim temp As LongIf startcap = True Thentemp = SendMessage(hwdc, WM_CAP_DRIVER_DISCONNECT, 0&, 0&)startcap = FalseEnd IfEnd Sub Private Sub cmdVideoFormat_Click()Dim temp As LongIf startcap = True Thentemp = SendMessage(hwdc, WM_CAP_DLG_VIDEOFORMAT, 0&, 0&)End IfEnd Sub Private Sub Command1_Click()MSComm1.RTSEnable = TrueLabel1.BackColor = &H80FF80Label1.Caption = “LED YANIYOR”End Sub Private Sub Command2_Click()Timer1.Enabled = TrueEnd Sub Private Sub Command3_Click()MSComm1.RTSEnable = FalseTimer1.Enabled = FalseLabel1.BackColor = &HFF&Label1.Caption = “LED SÖNÜK”End Sub Private Sub Command4_Click()hy = hy – 100Text1.Text = hyIf Text1.Text <= 100 ThenText1.Text = 100End IfEnd Sub Private Sub Command5_Click()If Text1.Text <= 100 Thenhy = 100End Ifhy = hy + 100Text1.Text = hyEnd Sub Private Sub Command6_Click()EndEnd Sub Private Sub Form_Load()Caption = "serialhy3000"hy = 1000MSComm1.PortOpen = TrueEnd SubPrivate Sub Form_Unload(Cancel As Integer)MSComm1.PortOpen = FalseEnd Sub Private Sub Timer1_Timer()Dim cTimer1.Interval = Text1.Textc = MSComm1.RTSEnable = TrueMSComm1.RTSEnable = True = MSComm1.RTSEnable = FalseMSComm1.RTSEnable = False = cEnd Sub
İbrahim Erkutlu internet portalı içersinde aramak istediğiniz anahtar kelimeleri veya ifadeleri yazın.