Table of Contents
MGV84 4-fach Servodecoder
Letzte Neuigkeiten.......
Bitte Gelduld, wenn geplant ist, diese Schnittstelle zu kopieren und zu bauen.
Für Mitte April (2010) wird die neue Baugruppe MGV136 erwartet, die MGV81, MGV84 und MGV84s ersetzten soll.
Für die neue Schnittstelle wird eine fabrikgefertigte Platine verfügbar sein. Die Programmierung mit Rocrail ist auch für MGV84 verwendbar.
Es ermöglicht, den linken und rechten Auslenkwinkel des Servo's, die Laufgeschwindigkeit und die Relaisposition einzustellen.
Das ist alles möglich, während der MGV84 mit dem MGV50 verbunden bleibt.
Es wird keine besondere Verbindung oder irgend etwas sonst benötigt. Nur eine neue Firmware muß in den PIC-Chip programmiert werden.
Die Jumper sind nach Installation der neuen Firmware ohne Funktion.
Die Implementation von Programmierung mit Rocrail wurde mit Rev. 1521 realisiert.
Einleitung
Das Stellen von Weichen in einer Modellbahnanlage ist normalerweise recht teuer und nicht sehr zuverlässig.
Das MGV84 Modul ermöglicht es, 4 preiswerte Servomotoren zu steuern und ist dabei sehr preiswert und zuverlässig.
Es gibt 4 isolierte Eingänge die jeweils durch eine 5V Gleichspannung aktiviert werden. (Höhere Spannungen optional)
4 Relais für das Schalten von Weichen-Herzstücken werden zur Verfügung gestellt.
Das MGV84 Modul bietet auch galvanisch getrennte Ausgänge für Rückmelder, die aktiviert werden, wenn der Servomotor die Endlagen erreicht hat.
Diese Baugruppe ist ein Selbstbauprojekt, für das keine fertigen Platinen verfügbar sind.
Wenn die Herzstückumschaltung nicht benötigt wird, können die vier Relais weggelassen werden. Das reduziert den Preis der Baugruppe um fast 50%.
Die Version V1.2 ist mit zwei selbstrückstellenden Sicherungen und LED's zur Anzeige falscher Relaispositionen erweitert.
Das Bild zeigt, wie MGV84(rechts) mit MGV50(links) verbunden wird. Siehe: Anschlusskabel MGV50 <> Schnittstellen |
Schaltungsbeschreibung
Die mit J5 verbundene Stromversorgung kann irgendetwas zwischen 8 bis 18V AC und 10 bis 18V DC einschließlich digitaler Gleisspannung sein.
Laufende Servo's ziehen hohe Stromspitzen von der Stromversorgung.
Deshalb wird ein zweiter 5V-Regler für den Mikroprozessor verwendet.
Transistor TR1 schaltet erst Spannung zu den Servo's, wenn sich die Stromversorgung stabilisiert hat.
Das verhindert, dass sich die Servo's beim Start 'spastisch' bewegen.
Über J6 (Pin 3 bis 6) kommt ein Signal vom MGV50 oder irgendein anderes Signal.
5V an einem dieser Pin's aktiviert den zugehörigen Optokoppler in U1 und bringt den Eingang an U4 im I2C-Expander(Pin 9 bis 12) auf 0 Volt.
Dieses IC wird ständig vom Mikroprozessor U2 ausgelesen. Damit wird der Servo aktiviert, sich gegen den Uhrzeiger zu bewegen.
Das Programm ist so eingestellt, dass sich der Servo in einem Winkel zwischen 45 und 135 Grad bewegt.
Diese 90 Grad sind normalerweise der max. Winkel für lineare Bewegungen.
Eine Änderung der Zahlen 100 und 200 im Programm zu min. 50 und max. 250 ändert den Winkel auf volle 180 Grad.
Wenn der Servo die mittlere Position passiert, schalten die Relais K1, K2, K3 bzw. K4 und ändern die Herzstück-Polarisierung der Weichen.
Nachdem der Servo seine endgültige Position erreicht hat, erfolgt die Rückmeldung durch U4 zu den Optokopplern U3.
Die Rückmeldeausgänge haben in der Endposition im Uhrzeigersinn logisch "0" und in der Endposition gegen den Uhrzeigersinn logisch "1".
Einstellungen für Bewegungswinkel, Laufzeit und Polarität der Relais sind unter Einstellungen durchführen beschrieben.
Weil die Stromversorgung nur einen Servo bedienen kann, wird auch nur ein Servo aktiviert.
Mit der Laufzeit von einigen Sekunden, kann es schon eine beträchtlich lange Zeit dauern, bevor alle Servo's sich bewegt haben - wenn das so vorgegeben wird.
In einem Schattenbahnhof kann es passiern, dass Züge aus dem Gleis laufen.
Deshalb beinhalten Rocrail und dieser MGV84 die Rückmeldemöglichkeit. Mit dieser Option starten Züger erst, wenn alle Weichen in der belegten Fahrstraße ihre Position erreicht haben.
Funktionen
Für jede Weiche sind drei individuelle Einstellungen zu machen:
- Geschwindigkeit des Motors.
- Der gesamte Winkel, einstellbar zwischen 10 und 180 Grad.
- Die Relaisposition. (normal oder umgekehrt)
Eigenschaften
- Realis für jedes Herzstück
- bistabile Relais um die Leistungsaufnahme zu reduzieren.
- Rückmeldung für jeden Servo
- Isolierte Eingänge und Rückmeldungen, um Masseschleifen zu vermeiden.
Programmierung des PIC-Chip
Der PIC16F873(A) benötigt ein Programm.
Wegen meiner geringen Kenntnisse der Programmierung, benutze ich einen einfachen und weit verbreitetetn BASIC-Compiler dafür.
Für die Funktionen dieser Baugruppe wird nichts für schnelle Programme benötigt, wie Kommunikation und Echtzeitlösungen.
Der Compiler, den ich verwende nennt sich Pic Simulator IDE und kann bei www.oshonsoft.com heruntergeladen werden.
Das folgende Hex-Programm kann direkt in den PIC-Chip programmiert werden.
Einstellungen durchführen
Zum Setzen dieser Parameter den nächsten Schritten folgen:
Schritt | Maßnahme |
---|---|
1 | Alle erforderlichen Anschlüsse zum MGV84 herstellen |
2 | Stromversorgung zum MGV84 abschalten |
3 | Alle 4 Eingänge ausschalten (wenn sie EIN waren) |
4 | Servo's am MGV84 anschließen |
5 | Jumper Jp1 stecken |
6 | Stromversorgung zum MGV84 einschalten |
7 | MGV84 ist nun im Einstellmodus |
8 | Einen der 4 Eingänge aktivieren |
9 | Der entsprechende Servo läuft nun hin und her |
10 | Die Geschwindigkeit des Motors kann durch P1 geändert werden. HINWEIS: Die Geschwindigkeit ändert sich erst, nachdem der Servo in der linken Endlage war |
11 | Der Winkel des Motors kann mit P2 eingestellt werden. HINWEIS: Der Winkel ändert sich erst, nachdem der Servo in der linken Endlage war |
12 | Das Relais für das Herzstück der Weiche schaltet um, wenn der Servo die mittlere Position passiert. Die Relais-Position kann durch stecken/ziehen von Jumper Jp1 umgekehrt werden |
13 | Wenn der Servo zufriedenstellend läuft und die Relais-Position korrekt ist, wird der Eingang deaktiviert |
14 | Die Parameter werden gespeichert und der Servo stoppt in der linken Endlage. |
15 | Wenn erforderlich, wird - beginnend mit Schritt 8 - mit den anderen Servo's fortgefahren |
16 | Bevor ein anderer Eingang aktiviert und bevor die Stromversorgung abgeschaltet wird, muß gewartet werden, bis der zuvor eingestellte Servo zur Ruhe kommt. |
17 | Nachdem alle Servo's eingestellt sind, wird die Versorgung abgeschaltet und - falls gesteckt - der Jumper Jp1 gezogen. |
18 | MGV84 wieder einschalten. |
Der MGV84 ist jetzt betriebsbereit.
MGV84 Dateien für die Baugruppe
SVN
Materialliste MGV84
Bezeichnung | Beschreibung | ||
---|---|---|---|
R1,R2,R3,R4,R7,R25 | 1kΩ | ||
R5,R6,R23,R24 | 3,3kΩ | ||
R8,R10 | 10kΩ | ||
R11,R13,R15,R17 | 4,7kΩ | ||
R12,R14,R16,R18 | 220Ω o. 270Ω | ||
R19,R20,R21,R22 | 560Ω | ||
RP1 | array 8 x 3,3kΩ | ||
P1,P2 | Trimmer pot 10kΩ | ||
C1 | Elko 1000µF 35V radial | ||
C2,C3 | Elko 10µF 35V radial | ||
C4,C7,C8 | 100nF | ||
C5,C6 | 15pF | ||
D1 - D10 | Diode 1N4148 | ||
Led1 - Led3 | LED 3mm | ||
TR1 | Transistor BD678 TO-126 | ||
U1,U3 | LTV847 | ||
U2 | PIC16F873(A) | ||
U4 | PCF8574 | ||
X1 | Quarz 20MHz | ||
GR1 | B80C1500 | www.reichelt.de | B80C1500 RUND |
F1 | Multifuse 0,9A | www.reichelt.de | PFRA 090 |
VR1,VR2 | 7805 | ||
K1..K4 | Relais RALD5W-K | Conrad | 502880-8A |
JP1 | 2Pin-Jumper | ||
J1..J4 | 3pol Stiftleiste | www.reichelt.de | PSS254/3G |
J5 | 2pol Schraubanschluß | www.reichelt.de | AKL012/02 |
J6 | 10pol Stiftleiste | www.reichelt.de | PSS254/10G |
J7 | 6pol Schraubanschluß | www.reichelt.de | 2 x AKL012/03 |
Kabel zum MGV50
Siehe: Anschlusskabel MGV50 <> Schnittstellen
Das PSK- oder Flachkabel kann an J5 oder J6 des MGV50 angeschlossen werden.
Abhängig davon sollte der MGV50 in Rocrail so programmiert werden:
Anschluß | MGV50 I/O # | Eing. o. Ausg. | Funktion |
---|---|---|---|
J5 | 1 | Schalter-Adresse | Befehl Servo 1 |
J5 | 2 | Schalter-Adresse | Befehl Servo 2 |
J5 | 3 | Schalter-Adresse | Befehl Servo 3 |
J5 | 4 | Schalter-Adresse | Befehl Servo 4 |
J5 | 5 | Eingangs-Adresse | Rückmeldung Servo 1 |
J5 | 6 | Eingangs-Adresse | Rückmeldung Servo 2 |
J5 | 7 | Eingangs-Adresse | Rückmeldung Servo 3 |
J5 | 8 | Eingangs-Adresse | Rückmeldung Servo 4 |
J6 | 9 | Schalter-Adresse | Befehl Servo 1 |
J6 | 10 | Schalter-Adresse | Befehl Servo 2 |
J6 | 11 | Schalter-Adresse | Befehl Servo 3 |
J6 | 12 | Schalter-Adresse | Befehl Servo 4 |
J6 | 13 | Eingangs-Adresse | Rückmeldung Servo 1 |
J6 | 14 | Eingangs-Adresse | Rückmeldung Servo 2 |
J6 | 15 | Eingangs-Adresse | Rückmeldung Servo 3 |
J6 | 16 | Eingangs-Adresse | Rückmeldung Servo 4 |
Die Schalter- u. Eingangsadressen sollten nach dem eigenen Plan nummeriert werden.
BEISPIEL:
Angenommen MGV84 ist mit MGV50(J6) verbunden.
Der hier angeschlossene Servo 3 soll mit Portnummer 52 aktiviert werden.
Die Rückmeldung der Weichenposition mit Servo 3 soll Portnummer 121 haben.
Das bedeutet, dass MGV50 I/O #11 als Schalter mit Nummer 52 programmiert werden muß.
MGV50 I/O #15 sollte als Eingang mit Nummer 121 programmiert werden.