Kehrschleife für Wechselstrom-Bahnen

Einleitung   Hardware Lichtschrankenmodul   Hardware Steuermodul   Software   Bibliographie
Der Aufbau einer Kehrschleife ist mechanisch kein Problem. Allerdings hat dieser Aufbau den kleinen Nachteil, prinzipbedingt einen Kurzschluß in der Anlage zu verursachen, was dem Spieltrieb wenig förderlich ist. Deshalb muß eine intelligente Elektronik her, die diesem Problem abhilft. Die hier vorgestellte Lösungsmöglichkeit ist für Wechselstrombahnen geeignet, auch wenn sie mit einem Digital- oder Delta-System gesteuert werden.

Einleitung

Wechselstrom hat dem Gleichstrom einen sehr großen Vorteil voraus: es ist im Prinzip egal, welchen Leiter man als Masse betrachtet und welchen als Phase, solange dieses systemweit gilt. Da eine Modelleisenbahn ein kleines, in sich abgeschlossenes System ist, welches höchstens an einer Stelle - dem Trafo - geerdet ist, kann man also mit einem 2fach-Wechslerrelais im Betrieb, bei fahrender Lok, ohne Einschränkungen mal eben die Versorgungsspannung auf einem Gleisabschnitt umpolen. Weil die verbreiteten Delta- oder Digitalsysteme für Wechselstrombahnen ebenfalls nur Wechselstrom darstellen, arbeiten auch diese Systeme trotz einer Umpolung problemlos weiter.
Damit ist die Grundidee einer Kehrschleifenschaltung sehr einfach: es wird einfach ein kurzes Gleisstück vom Rest der Anlage vollständig isoliert. Fährt eine Lok in den Gleisabschnitt ein, so muß das isolierte Gleisstück die selbe Spannung aufweisen wie der Abschnitt, aus dem die Lok kommt, weil die Lok Stromabnehmer an allen Radsätzen besitzt und deswegen die Trennstelle im Gleiskörper überbrückt. Ist die Lok nun bis zur zweiten Trennstelle gekommen, so muß der isolierte Gleisabschnitt umgepolt werden, damit das Gleis, aus dem die Bahn kommt, wieder die selbe Spannung besitzt wie das, in das sie einfährt.
Kurzschluß!
mit Trennstellen
Damit das Gleisstück auch abhängig von der Zugbewegung geschaltet werden kann und nicht manuell bedient werden muß, sind an den Trennstellen entsprechende Sensoren notwendig. Diese müssen einige Bedingungen erfüllen: sie müssen leicht zu verbergen sein, dürfen nicht oxydieren, damit sie auch im Freiland eingesetzt werden können, und sollten berührungslos arbeiten. Alle Bedigungen erfüllen Infrarot-Lichtschranken, da sie bei gute Ausrichtung durchaus 50cm von ihrem Einsatzort entfernt untergebracht werden können, unsichtbar sind, auf rein optischer Basis als Wartung höchstens gelegentliches Linsenputzen verlangen und zudem sehr preiswert zu implementieren sind, wenn man ein wenig mit dem Lötkolben umgehen kann. Zum Steuern der Gleisumschaltung ist eigentlich kein Microcontroller notwendig - ein einfaches Flipflop könnte den selben Zweck erfüllen. Allerdings gibt es ein Problem, daß sich nicht so leicht mit diskreten Bauteilen lösen läßt: was passiert, wenn der Zug länger ist als das isolierte Gleisstück, oder von beiden Seiten gleichzeitig ein Zug einfährt? Wenn beide Lichtschranken gleichzeitig durchbrochen sind, schaltet der Flipflop unkontrolliert hin und her - per Software hingegen läßt sich dabei ein kontrolliertes Verhalten erreichen. Zudem wäre der Controller in der Lage, auch die Weiche mit zu steuern, wenn der letzte Wagen durch die Einfahrt-Lichtschranke gekommen ist. Und wenn man schon einen programmierbaren Baustein in der Nähe hat, der nicht ganz ausgelastet ist, kann man auch diverse Signale und Ampeln gleich mit steuern.
zurück zum Anfang

Hardware Lichtschrankenmodul

Die hier vorgestellte Schaltung wurde hauptsächlich aus Vorräten der Bastelkiste gebaut, die anders nicht zu gebrauchen waren. Immerhin fanden dadurch die längst veralteten uA741 ein neues Zuhause. Um das Optimum an Reichweite aus der Schaltung herauszuholen ist noch Feintuning notwendig - aber für eine Lichtschranke über kurze Distanzen ist die Schaltung durchaus brauchbar.
Die Schaltung selbst besteht aus zwei Modulen. Das eine beherbergt die Ansteuerelektronik für 2 Lichtschranken, die andere den Controller, die Spannungsversorgung und das Umschaltrelais.
Platine IR-Lichtschranke

Ansteuerung der IR-LED's

Um beim Empfänger das Signal der IR-Leuchtdioden von anderen Infrarotquellen unterscheiden zu können, muß das auszusendende Licht gepulst werden. Als Frequenz wurde einigermaßen willkürlich rund 40kHz gewählt. Zur Erzeugung dieser Frequenz dient ein Timer-Baustein 555. Um mit einem Ausgangssignal gleich mehrere LED's betreiben zu können, dient ein Transistor als Verstärker. Als Vorwiderstand dienen 180 Ohm - bei der verwendeten gepulsten Ansteuerung kann aber auch ein signifikant kleinerer Widerstandswert eingesetzt werden, um die Reichweite zu erhöhen.
Schaltplan IR-Sender

Signalaufnahme und -auswertung

Als IR-Detektor wird in dieser Schaltung ein einfacher Fototransistor BP103B verwendet, es geht aber im Prinzip für diese einfache Anwendung alles, was preiswert zu haben ist. Dieser Fototransistor im LED-Gehäuse wird so angeschlossen, daß das kurze Beinchen mit der Versorgungsspannung verbunden wird und am langen Bein das Signal abgenommen werden kann. Um schwache Störströme zu unterdrücken wird zunächst ein Widerstand nach Masse geschaltet. Dann entfernt ein Kondensator im weiteren Signalweg niederfrequente Gleichspannungsanteile, die durch Sonnenlicht, Glühbirnen oder ähnliche Einstrahlungen hervorgerufen werden. Damit das daraus resultierende Signal im Arbeitspunkt des Operationsverstärkers liegt, wird durch zwei als Spannungsteiler zwischen GND und der Versorgungsspannung geschaltete Widerstände eine Gleichspannung aufgeprägt, die Hälfte der Versorgungsspannung beträgt. Der Operationsverstärker ist als Differenzverstärker verdrahtet, wobei ein weiterer Spannungsteiler einen festen Referenzpunkt bildet. Liegt das Eingangssignal über diesem Referenzpunkt, so wird der Operationsverstärker bis seinem höchstmöglichen Spannungswert geöffnet, liegt es darunter, bleibt er geschlossen. (Die maximale Reichweite wird erziehlt, wenn dieser Referenzpunkt möglichst knapp über dem des Eingangsspannungsteilers liegen.) Die beiden sich daran anschließenden Dioden und der Widerstand dienen dazu, den Ausgangspegel des Operationsverstärkers in TTL-konforme Pegel zu überführen, indem der konstante Spannungsabfall von ca. 0,6V über jeder normalen Diode ausgenutzt wird.
Da für jede Trennstelle eine Lichtschranke benötigt wird, sind selbstverständlich zwei dieser Schaltungen aufzubauen.
Damit ist das Ausgangssignal also ein Rechteck mit 40kHz bei freier Sichtlinie oder GND bei unterbrochenem Lichtstrahl.
Schaltplan Empfänger

Hardware Steuermodul

In diesem Modul ist die eigentliche Logik des Systems, der AT89C2051, untergebracht - ebenso wie alle direkt benötigten Komponenten wie die Spannungsversorgung, die übrigends das Lichtschrankenmodul mitversorgt, sowie Relais und Relaistreiberschaltung.
Der AT89C2051 wird wie üblich beschaltet - mit Ausnahme einer intelligenten Resetschaltung statt der üblichen RC-Kombination. Bis auf die IO-Line zum Relais und ein paar LED's zu Debuggingzwecken werden alle freien IO's über Lötstifte nach außen geführt.
Platine Kehrschleifensteuerung

Spannungsversorgung

Wie schon weiter oben bemerkt arbeitet ein Digital- oder Delta-System mit auf der Versorgungswechselspannung aufmodulierten Digitalsignalen. Das bedeutet, daß die eigentliche Fahrspannung immer auf dem Gleis liegt - Benutzer dieser Systeme können also einfach die Schiene zur Spannungsversorgung benutzen und müssen kein extra Kabel legen.
Selbstverständlich arbeitet der Controller nicht mit Wechselstrom. Deswegen ist das erste Bauteil der Spannungsversorgung ein Brückengleichrichter. Daran schließt sich zur groben Glättung ein großkapazitativer Elektrolyt-Kondensator an. Die 5V erzeugt ein Festspannungsregler 78L05. Dieser muß vereinfacht gesagt die Spannung von 24V bis 5V in Wärme umsetzen
und nur 5V durchlassen, was zu einer starken Erhitzung des Bauteiles führt. Um diesen Effekt zu verringern, wurde in dieser Schaltung ein großvolumiger Widerstand mit 220 Ohm in Serie mit dem Eingang des 7805 geschaltet, der so mit der gesamten Schaltung einen Spannungsteiler bildet und daher die Eingangsspannung für den Regler herabsetzt. Weil sich nun dieser Widerstand statt des Reglers erwärmt, erhöht sich die Lebensdauer von letzterem. Natürlich würde ein 1/4W-Widerstand diese Last auch nicht allzulange überleben, deshalb ist ein 4W-Widerstand vorzusehen, der am besten an langen Beinchen über der Schaltung frei steht um die Wärme ungehindert abgeben zu können.
Schaltplan Versorgung

Relaisansteuerung

Als Relaistyp wird ein 2fach-Umschalter benötigt. Da sowieso 24V zur Verfügung stehen, kann das Relais damit arbeiten. Dies ist von Vorteil, da für die gleiche Leistung bei höherer Spannung ein geringerer Strom benötigt wird - wobei die Stromstärke hauptsächlich zur Erwärmung beiträgt. Daher kann also bei einer 24V-Ansteuerung mit kleiner dimensionierten Bauteilen gearbeitet werden.
Die Ansteuerung des Relais geschieht durch einen Transistor mit einem Vorwiderstand, um den Basisstrom sicherheitshalber zu begrenzen. Beim Abschalten des Relais entsteht durch Selbstinduktion in der Relaisspule ein der Einschaltspannung entgegengerichteter Ausschaltpuls, der einen Transistor nach einigen Schaltspielen zerstören kann. Deswegen wird dieser Ausschaltpuls mit einer Diode abgeleitet.
Weiterhin benötigt ein Relais viel Kraft, um anzuziehen, aber nur relativ wenig, um die angezogene Postition auch zu halten. Deswegen kann der Stromverbrauch und die Erwärmung des Spulenkörpers vom Relais reduziert werden, wenn man einen Widerstand in Reihe zur Relaisspule schaltet, der nur genug Strom zum Halten hindurchläßt. Damit das Relais auch schaltet, wird dieser Widerstand durch einen Kondensator überbrückt, der nur einen Puls durchläßt, bis er voll geladen ist. Die genauen Werte von Widerstand und Kondensator sind vom verwendeten Relais abhängig und müssen jeweils ausprobiert werden.
Schaltplan Relaistreiber

Resetschaltung

Wenn ein Microcontroller unter so rauhen Umgebungsbedingungen eingesetzt werden soll, genügt eine einfache RC-Kombination als Resetauslöser nicht mehr - eine Spannungsüberwachung muß her, die beim Abfall der Versorgungsspannung und beim Einschalten einen definierten Reset auslöst. Ansonsten kann es passieren, daß die Versorgungsspannung einbricht und das Programm abstürzt und nicht wieder anläuft.
Der meines Wissens preiswerteste beschaffbare Spannungsüberwacher ist der TL7705 von TI oder ST. Es gibt auch kleinere IC's, die diesen Zweck erfüllen, beispielsweise in einem kleinen Transistorgehäuse T092. Aber diese sind leider kaum zu beschaffen oder nur zu Apothekerpreisen.
Die genaue Beschaltung kann man sehr gut dem Datenblatt des TL7705 entnehmen.
Schaltplan Resetschaltkreis

zurück zum Anfang

Software

Die Software kümmert sich um die Auswertung der Signale vom Sensor und stellt das Relais entsprechend. Dabei ist zu bedenken, daß auf eine Demodulation der Eingangssignale in der Hardware verzichtet wurde - die Software muß also selbst mit dem 40kHz-Signal klarkommen. Außerdem muß sie auch bei gleichzeitiger Auslösung beider Lichtschranken eine eindeutige Relaisstellung halten und nicht etwa ständig hin- und herschalten.
Das Demodulieren des Eingangssignals ist leicht: Timer 0 wird dazu genutzt, in bestimmten Abständen eine Programmroutine aufzurufen, die einen Zähler auf 0 setzt, wenn ein High-Signal anliegt, und den Zähler
bei Low incrementiert. So kann das höchstwertige Bit im Zähler nur gesetzt sein, wenn ein Puls ausblieb und demnach die Lichtschranke durchbrochen ist. Ein ähnliches Konstrukt wird nun noch einmal eingesetzt, um sicherzustellen, daß eine durchbrochene Lichtschranke das Relais nur einmal auslöst und danach erst einmal längere Zeit offen ist. Falls ansonsten ein Zug, der länger als das isolierte Gleisstück ist, beide Lichtschranken auslöst, was zudem nicht dauerhaft passiert, sondern für jeden Wagen bzw. für jeden Radsatz extra, würde das Relais pausenlos umschalten. Der Zähler für diese Funktion wird im Hauptprogramm heruntergezählt.
; Startadresse des Codes:
	org 0h
	ajmp start
	
; Input
	LS1	BIT 	P1.7
	LS2	BIT 	P1.6
; Output
	LED1	BIT	P1.2
	LED2	BIT	P1.3
	RELAIS	BIT	P3.7
; Zwischenspeicher	
	LS1_C	DATA	21h
	LS1_Z	DATA	23h	
	LS2_C	DATA	22h
	LS2_Z	DATA	24h	
	

; Adresse für die Interruptserviceroutine von Timer0
	org 00Bh
	push ACC

; Lichtschranke 1 testen	
	jb LS1,isr0_01
	inc LS1_C
	
	jb LS1_C.7,isr0_03
	ajmp isr0_04
isr0_03:
; Lichtschranke  1 durchbrochen!

; wenn LS1_Z=0 dann umschalten, sonst nicht reagieren
	mov a,LS1_Z
	jnz isr0_24
	

; umschalten
	mov LS1_Z,#0FFh
	setb RELAIS
	setb LED1
	clr LED2
	ajmp isr0_04
	
isr0_01:
; Lichtschranke 1 frei
	mov LS1_C,#0

	ajmp isr0_04

; dafür sorgen, daß die Lichtschranke erst wieder öffnet, bevor sie wieder
; auslösen kann
isr0_24:
	mov LS1_Z,#255

; Lichtschranke 2 testen	
isr0_04:
	jb LS2,isr0_11
	inc LS2_C
	
	jb LS2_C.7,isr0_13
	pop ACC
	reti
isr0_13:
; Lichtschranke  2 durchbrochen!
; wenn LS2_Z=0 dann umschalten, sonst nicht reagieren
	mov a,LS2_Z
	jnz isr0_25

; umschalten
	mov LS2_Z,#0FFh
	clr RELAIS
	clr LED1
	setb LED2
	pop ACC
	reti
	
isr0_11:
; Lichtschranke 2 frei
	mov LS2_C,#0

	pop ACC
	reti	

; dafür sorgen, daß die Lichtschranke erst wieder öffnet, bevor sie wieder
; auslösen kann
isr0_25:
	mov LS2_Z,#255
	pop ACC
	reti	

;----------------------------------------------------------------------------
; Initialisierung
	
; Stack auf 30h hinter Registerbänke und Bit-Area setzen
start:
	clr RELAIS
	mov sp,#37h
	
;   Timer 0 initialisieren, 8 bit autoreload
	mov TL0, #255-5
	mov TH0, #255-5
	
	mov TMOD,#00000010b
	mov TCON,#00010000b
	
;   ein bisschen warten, damit sich der Elko aufladen kann
	mov a,#255
	call F_wait_m
	call F_wait_m
	
	mov IE,#10000010b
	
	setb LED1
	setb LED2

	clr LED1

;----------------------------------------------------------------------------
; Schleife des Hauptprogramms
main:
	mov a,#255
	acall F_wait_u

; LS2_Z herunterzählen bis 0
	mov a,LS2_Z
	jz main_01
	dec LS2_Z
main_01:
; LS1_Z herunterzählen bis 0
	mov a,LS1_Z
	jz main
	dec LS1_Z

	ajmp main
	

;----------------------------------------------------------------------------

F_wait_m:
        push ACC
F04_wait:
; die in A angegebene Zeit in ms vertrödeln
        push ACC
        mov a,#200	; 200 Durchläufe sind 1ms

F04_wait2:		; ein Durchlauf dieser Schleife dauert 5µs
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
        djnz ACC, F04_wait2

        pop ACC
        djnz ACC, F04_wait

        pop ACC
        ret
;----------------------------------------------------------------------------
F_wait_u:
; die in A angegebene Zeit in us warten
        subb a,#3
        nop
F03_wait:
        djnz ACC, F03_wait
        ret

END 


zurück zum Anfang

Bibliographie

Hier finden sich die im Text verstreuten Literaturquellen und Links zum Thema noch einmal zum Nachschlagen und Wiederfinden
http://www.national.com/ds/LM/LM555.pdf Timer-Baustein 555
http://www-s.ti.com/sc/psheets/slvae04/slvae04.pdf Datenblatt des TL7705

zurück zum Anfang

Startseite Seite vor
Erik Buchmann
EMail an: Owner@ErikBuchmann.de