Ein beliebtes Thema in Schulunterricht ist die Steuerung einer Modellampel. Oft wird das CompuLAB mit dem direkt anschließbaren Modell der Kreuzungsampel verwendet. Hinweise auf die didaktische Umsetzung findet man z.B. im Handbuch "Modellversuche" oder im DoIt-Handbuch im Elexs-Software-Archiv. Statt der Win3.1-Software DoIt sollte inzwischen eher Compact verwendet werden, das ebenfalls die Programmierumgebung von DoIt enthält. Damit kann auch das CompuLAB-USB eingesetzt werden.
Vielfach wird auch Excel zur Steuerung des CompuLAB oder anderer Interfaces verwendet. Der Umgang mit Word- und Excel-Makros wird in dem Buch MSR mit Word und Excel erläutert. Aus diesem Buch stammt das folgende Beispiel zur Steuerung einer Ampel in Excel: Ampel.XLS (Ampel.zip, 13 KB)
Will man die gleiche Aufgabe mit dem CompuLAB-USB und Excel lösen, bietet sich der Austausch der DLL an. Die in dem Buch verwendete RSAPI.DLL findet selbständig diverse Interfaces an der seriellen Schnittstelle. Für das CompuLAB-USB gibt es die CLUSB.DLL. Es genügt ein Austauschen der DLL-Funktionen im VB-Programm um die Ampel über die USB-Schnittstelle zu steuern: Ampelusb.XLS (Ampelusb.zip, 13 KB)
Declare Sub INIT Lib "CLUSB" () Declare Sub DOUT Lib "CLUSB" (ByVal Wert%) Declare Function DIN Lib "CLUSB" () As Integer Declare Function AIN Lib "CLUSB" (ByVal Eingang%) As Integer Declare Sub DELAY Lib "RSAPI.DLL" (ByVal ms%)
'rt = 3: ge = 6: gn = 4: gr = 40 Sub Grün(bit) If bit = 0 Then ix = 40 Else ix = 4 ActiveSheet.DrawingObjects("grün").Interior.ColorIndex = ix End Sub Sub Rot(bit) If bit = 0 Then ix = 40 Else ix = 3 ActiveSheet.DrawingObjects("rot").Interior.ColorIndex = ix End Sub Sub Gelb(bit) If bit = 0 Then ix = 40 Else ix = 6 ActiveSheet.DrawingObjects("gelb").Interior.ColorIndex = ix End Sub Sub ampel() INIT 'CompuLAB-USB Blatt$ = "AmpelTAB" ThisWorkbook.Sheets(Blatt$).Activate a$ = "&h0C&h0C&h0C&h0C&h14&h26&h21&h21&h21&h21&h21&h22&h34" Do ix = 1 Do x$ = Mid$(a$, ix, 4) If x$ <> "" Then ix = ix + 4 Dez = Val(x$) Rot (Dez And 4) Gelb (Dez And 2) Grün (Dez And 1) DOUT Dez Calculate DELAY 1000 End If Loop Until x$ = "" Loop Until 3 = 4 End Sub
Dieses EXCEL-VB-Programm verwendet einen String zum Speichern aller Ausgangszustände im Hexadezimalformat. Ein DoIt-Beispiel in Compact zeigt, wie eine Ampel mit Binärzahlen gesteuert werden kann.
In Excel lassen sich die einzelnen Steuerbits und die zugehörigen
Zeiten in eine Tabelle schreiben. So fällt es leichter, einzelne Ampelzustände
zu erkennen und zu ändern.
Die Daten können dann über das VB-Modul ausgelesen und zur Steuerung der Ampel verwendet werden.
AMPELusb2.XLS (AMPELusb2.zip, 10 KB)
Zurück zur Startseite der MB-News
Zurück zur Startseite AK-Modul-Bus