Start

Experimente

Grundlagen

Produkte
LED-Controller 
- - WR64

Neues

Impressum

Das digitale Interface WR64



Das digitale Interface WR64 besitzt 64 Ausgänge (offener Kollektor). Die Ausgangsspannung beträgt 12 V. Jeder Ausgang kann bis 200 mA belastet werden. Die Gesamtbelastung aller Ausgänge sollte 2 A nicht überschreiten. Das Interface eignet sich zur Steuerung von Relais, Lämpchen oder LEDs mit passenden Vorwiderständen. Bis zu 256 Interfaces können an einem gemeinsamen Bus über eine einzelne Schnittstelle angesteuert werden. Das Mastergerät hat die Busadresse1, für die folgenden Geräte wird eine Adresse bis 255 vergeben. Jeder Ausgang ist mit einem Widerstand von 10 Ω gegen kurzzeitige Kurzschlüsse geschützt. Auf Wunsch kann das Gerät mit anderen Widerständen als Vorwiderstände für die direkte LED-Steuerung geliefert werden. Ein Beispiel für eine typische Anwendung ist die Steuerung von 64 20-mA-LEDs z.B. in Anzeigetafeln. Aber auch Anwendungen in Modelleisenbahnanlagen oder in der Maschinensteuerung sind möglich.




Download (Update 7.2.13): VB-Quelltext und Exe


Das kleine Demoprogramm zeigt die Ansteuerung der 64 Ausgänge für ein Gerät mit der Geräteadresse 1.  Die Übertragungsparameter sind 9600,N,8,1. Beim Start des Controllers sind alle Ausgabedaten Null. Für die Steuerung durch den PC wurde ein einfaches Protokoll mit drei Bytes definiert: Geräteadresse, Gruppenadresse, Datenbyte zur Ansteuerung von jeweils acht Ausgängen. 

Zusätzlich wurde ein neuntes Kommando für die Ausgabe einer Lauflicht-Funktion definiert. Dabei wird die erste LED eingeschaltet und dann um jeweils eine Position weiter geschoben. Als zusätzlicher Parameter wird eine Wartezeit in Millisekunden übergeben, die es erlaubt, die Geschwindigkeit des Lauflichts zu wählen. Das Protokoll lautet: Geräteadresse, 9, Wartezeit.

Private Sub Lauflicht_Click()
  SENDBYTE Adr
  SENDBYTE 9
  SENDBYTE Delaytime
End Sub

Private Sub Ausgabe_Click()
  For n = 1 To 8
    SENDBYTE 
Adr
    SENDBYTE n
    d = Val(Text1(n - 1))
    SENDBYTE d
  Next n
  Timer1.Interval = HScroll1.Value

End Sub

Private Sub Timer1_Timer()
  For n = 1 To 8
    SENDBYTE Adr
    SENDBYTE n
    d = 255 * Rnd
    SENDBYTE d
  Next n
  Timer1.Interval = HScroll1.Value

End Sub

 




In einer typischen Anwendung sollten ca. 50 Interfaces an einem gemeinsamen Bus in der Lauflichtfunktion verwendet werden. Jeder Ausgang steuerte zwei weiße LEDs in Reihe gemeinsam mit einem Strom von 25 mA an. Da an einem Interface jeweils nur ein Ausgang zu einer Zeit eingeschaltet war, war der maximale Gesamtstrom auf 750 mA begrenzt. Es reichte daher ein einzelnes Netzteil mit 12 V/1A für die gesamte Installation.  

Jeder Ausgang auf der Platine besitzt bereits einen Vorwiderstand von 10 Ω, in erster Linie als Schutzwiderstand. Eine 20-mA-LED benötigt einen zusätzlichen Vorwiderstand. Bei Bedarf können jedoch auch andere Widerstände auf der Steuerplatine verwendet werden. Um 20-mA-LEDs ohne zusätzlichen Vorwiderstand zu steuern sind Widerstände mit 330 Ω geeignet.





Das Interface besitzt einen Mikrocontroller ATmega8 und steuert eine Gruppe von 64 Ausgängen über insgesamt acht Schieberegister 4094 und Open-Kollektor-Treiber ULN2803 für einen maximalen Strom von 500 mA pro Kanal. Vier Gruppen zu 16 Ausgängen werden über ein Flachbandkabel angeschlossen. Die gesamte Belastung pro Interfaceplatine soll 2 A nicht überschreiten.

Der RS232-Leitungsempfänger mit dem Transistor T1 wird nur auf dem Master-Gerät bestückt. Alle weiteren Interfaces werden über BU1 und ein zehnpoliges Flachbandkabel angeschlossen, das bei Bedarf auch die Betriebsspannung weiter reicht. Die Datenleitung zu allen RXD-Eingängen der weiteren Mikrocontroller ist relativ niederohmig und führt TTL-Pegel. Bis zu einer gesamten Buslänge von 10 Metern ist damit eine hohe Datensicherheit gegeben.