LED-Wechselblinker
von B. Kainka, Auszug aus dem Lernpaket Elektronik-Experimente mit dem PC

Visual Basic kann nicht nur rechnen, sondern auch direkt elektronische Baugruppen steuern. Besonders einfach geht es über die RS232-Schnittstelle. Das hier gezeigte Beispiel verwendet die ELEXS.DLL. Diese Datei muss man in das Verzeichnis C:Windows kopieren. Alle Deklarationen stehen nun im Modul ELEXS.BAS. Diese Datei muss in alle neuen Projekte mit eingebunden werden. Alle Funktionsnamen verwenden ausschließlich Großbuchstaben. Das ist wichtig, weil beim Aufruf ab VB5 die Groß/Kleinschreibung nicht mehr ignoriert wird.
Ganzen Artikel lesen...
Attribute VB_Name = "Module1"
Declare Function OPENCOM Lib "ELEXS" (ByVal OpenString$) As Integer
Declare Sub TIMEOUTS Lib "ELEXS" (ByVal b%)
Declare Sub CLOSECOM Lib "ELEXS" ()
Declare Sub SENDBYTE Lib "ELEXS" (ByVal Dat%)
Declare Function READBYTE Lib "ELEXS" () As Integer
Declare Sub DTR Lib "ELEXS" (ByVal b%)
Declare Sub RTS Lib "ELEXS" (ByVal b%)
Declare Sub TXD Lib "ELEXS" (ByVal b%)
Declare Function CTS Lib "ELEXS" () As Integer
Declare Function DSR Lib "ELEXS" () As Integer
Declare Function RI Lib "ELEXS" () As Integer
Declare Function DCD Lib "ELEXS" () As Integer
Declare Function INPUTS Lib "ELEXS" () As Integer
Declare Sub TIMEINIT Lib "ELEXS" ()
Declare Function TIMEREAD Lib "ELEXS" () As Double
Declare Sub DELAY Lib "ELEXS" (ByVal ms As Double)
Declare Sub REALTIME Lib "ELEXS" ()
Declare Sub NORMALTIME Lib "ELEXS" ()


Das Programm BLINK steuert DTR und RTS gegenphasig an, d.h. immer, wenn DTR angeschaltet ist, ist RTS ausgeschaltet. Sie können daher einen Wechselblinker aufbauen, indem Sie eine rote LED an DTR und eine grüne an RTS anschließen.

Dim Ausgang1 As Integer
Dim Ausgang2 As Integer
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Form_Load()
If App.PrevInstance Then
msg$ = App.EXEName & " wurde bereits gestartet "
MsgBox msg$, 48
End
End If
i = OPENCOM("COM1:")
If i = 0 Then
i = OPENCOM("COM2:")
Option2.Value = True
End If
If i = 0 Then MsgBox ("Schnittstelle nicht verfügbar")
Timer1.Enabled = False
Ausgang1 = 1
Ausgang2 = 1
DTR 0
RTS 0
TXD 1
End Sub
Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub
Private Sub HScroll1_Change()
Timer1.Interval = HScroll1.Value + 10
End Sub
Private Sub Option1_Click()
i = OPENCOM("COM1:")
If i = 0 Then MsgBox ("COM1 nicht verfügbar")
DTR 0
RTS 0
TXD 1
End Sub
Private Sub Option2_Click()
i = OPENCOM("COM2:")
If i = 0 Then MsgBox ("COM2 nicht verfügbar")
DTR 0
RTS 0
TXD 1
End Sub
Private Sub Start_Click()
Timer1.Interval = HScroll1.Value + 10
Ausgang1 = 1
Ausgang2 = 0
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Ausgang1 = (Ausgang1 + 1) And 1
Ausgang2 = (Ausgang2 + 1) And 1
If Ausgang1 = 1 Then DTR 1 Else DTR 0
If Ausgang2 = 1 Then RTS 1 Else RTS 0
End Sub
Ein Wechselblinker lässt sich auch mit einer Ausgangsleitung realisieren, indem beide LEDs antiparallel angeschlossen werden. Eine leuchtet dann während der positiven Phase, die andere während der negativen Phase.


Download: Projekt und Blink.exe (Blinker.zip, 40 KB)

Lernen Sie die ganze Vielfalt vom Franzis Buch- und Softwareverlag kennen