Visual Basic Seri port Kontrolü Ve Led Yakma

kopuk2

Üye
2 Eyl 2011
234
0
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 ilki API 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 Control nesnesini ile seri portla kolayca iletişim kurulabiliyor. Bunu eklemek için resimleri izlemek yeterli.







Şimdide cam görüntüsü almak için modül ekleyelim..





Modüle gerekli kodları yazdıktan sonra modül penceresini kapatıyoruz.



Şimdide seri port çıkışı için devre şeması



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
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.