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.
|
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. |
|
|
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 |
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. |
|
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. |
| |
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. |
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. |
|
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. |
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. |
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. |
zurück zum Anfang |
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 |
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 |