Anzeige:
THEMA: Entwicklungsfrage Modellbahnsteuerung
ich entwickle gerade eine eigene Weichen, Signal und Lichtsteuerung auf Basis von avr mikrocontrollern. Bis jetzt habe ich einen Zweidraht-Bus programmiert, über den ein Master-Controller (attiny13) Befehle an die Slaves (attiny13) sendet. Der Befehl entspricht im Grunde einer Zahl zwischen 1 und 255, die als Byte über den Bus geschickt wird. (Die Kommunikation ist so aufgebaut, dass der Master einen Takt vorgibt, sodass keine externen Quarze benötigt werden.) Der Slave fragt dann ab, ob er auf dieses Byte programmiert ist und schaltet dann eine Led für eine halbe Sekunde an. Programmiert ist das ganze in Basic.
Nun geht es an die Entwicklung des Prototypen eines ersten Slaves, der mittels Relais die Weichen stellt. Hierzu bräuchte ich eine Einschätzung von euch, da ich bei der Bauteildimensionierung unsicher bin:
Ich möchte vorerst, da ich nur einige Segmente (40x15cm) zu versorgen habe mit nur einem Netzteil für alles (außer Fahrstrom) auskommen. Dieses muss natürlich so stark sein, dass es Fleischmann Weichen (ohne Schotterbett) sicher schalten kann. Ich dachte an ein Schaltnetzteil mit 16 bis 18 Volt DC und 3 - 5 A. An dieses Netzteil müssten dann die AVRs über einen L7805 angeschlossen werden. Das heißt schon einmal hohe Verlustwärme im Spannungsregler! Meine Berechung dazu:
benötigter Strom der angeschlossenen Bauteile beim Slave:
1x Attiny13 = 2mA
2x BC338-40 zum Ansteuern der Relais (Verstärkungsfaktor 100) = unter 1 mA
2x Relais 5V, 125ohm = 80mA
Gesamtstrom = 83 mA
Daraus folgt, für den L7805 eine Verlustleistung von:
(18V - 5V) * 0,083A = 1,1 W
Sofern ein Kühlkörper von 44K/W am Spannungsregler hängt, würde bei dieser Belastung die Sperrschichttemperatur des Spannungsreglers bei moderaten 80 °C warm liegen. (Werte in Rechner eingegeben auf: http://www.alutronic.de/service/rthk-rechner )
Liege ich mit der Berechnung richtig?
Reichen 16 V DC und 3A, um auch mal zwei Weichen gleichzeitig zu schalten?
Für eure Erfahrungswerte bin ich sehr dankbar. Wenn die Steuerung rudimentär funktioniert, nehme ich auch gerne Erweiterungswünsche aus dem Forum an. Sofern ein Interesse am Nachbau besteht, stelle ich meine bisherigen Fortschritte mit Quellcode und co gerne bereit.
Viele Grüße
Matthias
edit: Wert Gesamtstrom, Verlustleistung Kühlkörper korrigiert
hört sich interessant an. Ich denke, dass 16V und 3A für gleichzeitiges Schalten von 2 Weichen OK ist. Ich kenne diese Sache allerdings nicht so gut. Trotzdem folgende Info:
1. Fleischmann Weichen scheinen sich laut Info hier auf dem Forum besser mit etwas mehr Power zu schalten. Also selbst 18V sind denkbar. Gerade im Alter scheinen die Motoren aus verschiedenen Gründen etwas Probleme zu bringen, wobei mehr Power wenigstens zeitweise hilft!
2. Gleichzeitiges Schalten von Weichen: wenn Du schon selbst programmierst, was Dir wohl dann auch Spass macht, dann programmiere eine ganz kurze Pause zwischen jeder Schaltung. Das hat den Vorteil, dass Du nicht überlastest und für die Liebhaber vom Klickgeräusch hat man auch akustisch die Info, dass alle Weichen, so wie gewünscht, geschaltet haben. Erstaunlich, wie wichtig dass Hören einer Weiche sein kann, gerade wenn man mit alten Weichen arbeitet, die auch ab und zu…nicht schalten!
Alles Gute,
Frank
PS: Ich habe übrigens noch nie Probleme mit den alten Fleischmann Motoren gehabt, aber mit meinen nagelneuen! Die Qualität scheint nicht besser geworden zu sein...
Ich möchte folgendes Ergänzen:
Die Weiche schaltet ja eigentlich innerhalb weniger Millisekunden um. Faktisch dürfte bei ausreichender Spannung der aktive Schaltvorgang bis zum Erreichen der Endabschaltung kaum mehr als 100ms dauern, wenn überhaupt.
Somit macht auch eine wesentlich längere Ansteuerung nicht wirklich Sinn, denn eine hängende Weiche schaltet dann auch nach längerer Zeit nicht zuverlässig um.
Daraus folgt: Neben der Wärmeableitung am Kühlkörper sollte man auch die Schaltzeiten berücksichtigen. Werden die Relais nur vielleicht 200ms angezogen und der Regler nebst Kühlkörper hat ja auch eine Wärmekapazität, so ergeben sich deutlich geringere Temperaturen, respektive kann man auch ganz drauf verzichten, wenn man statt L Type gleich einen "normalen" 1A Typ verwendet.
Aber jetzt kommt das große aber
Beim Umschalten von Weichen mit Endabschaltung passieren "unschöne" Dinge. Die Endabschaltung macht aus der noch "geladenen" Spule eine Zündspule und es fliegen ziemlich die Fetzen. Da kommen sehr ordentlich Spannungsspitzen zustande, die es gilt möglichst nah an der Weiche schon zu eliminieren, wenn man sich nicht das ganze "Netz" versauen will.
Ich würde auch keine Relais aus der 5 Volt Logik-Spannung versorgen, sondern ungeregelte "Grobspannung" nehmen und zwischen AVR und Grobspannung einfach einen Transistor packen, natürlich mit Vorwiderstand. Und wenn man das sowieso macht, dann kann man auch gleich den Spulenantrieb schalten, anstatt ein Relais, welches dann wieder die Spule des Antriebs schaltet. Spart Kosten! Zudem kann man auch rückwärts aus der ggf. abgeschalteten Spule ( Endabschaltung ) auslesen, welche Stellung die Weiche hat, respektive damit auch, ob das Schalten funktioniert hat.
Das braucht nicht mal einen Portpin mehr. Für die ganze Platine würde ein einziger Transistor und ein Pin ausreichen, zwischen Meß- und Prüfstrom zu schalten. Und damit kann man mit einem einzigen weiteren Port direkt die Stellung aller Weichen einlesen.
Bringt man das noch in eine Matrix, bei der man z.B. 8 Plus und 8 Minus-Transistoren schaltet und dann einen Meß- und einen Leistungsstrom-Ein-Pin hat, also 18 Pins, dann kann man 32 Weichen schalten und ausmessen, welche Lage sie haben.
Ich habe hier noch so ein Board liegen, welches ich seinerzeit noch mit einem 8515er benutzt habe. Hat eigentlich super funktioniert. Nur bin ich mittlerweile auf Servos umgestiegen
Zum Schalten von mehreren Weichen gleichzeitig:
Wozu? Wenn es mal wirklich 200ms zum Schalten braucht, dann sind es immer noch 5 Weichen pro Sekunde. Beim Vorbild geht das sicher nicht so schnell ( Weichenlaufkette! )
Soviel von mir dazu.... und wichtig: Viele Wege führen nach Rom und der eigene erscheint immer kürzer. Am Ende zählt die gemachte Erfahrung und der Spaß bei der Arbeit! Lernen kann man nur selber und die Erfahrung der anderen ist erst mal nicht viel für einen selber wert.
In diesem Sinne: Viel Spaß bei der Bastelei!
Gruß
Klaus
vielen Dank schon einmal für die Anmerkungen. Sie haben mich bereits sehr weitergebracht. Ich habe mir überlegt zur Schaltung der Weichen einen ULN2003A zu nutzen. Habe die Schaltung jetzt mal zu Papier gebracht. Da ich aber nicht der große Lötmeister bin und mich im Bereich der Schaltungsentwicklung als Anfänger bezeichnen würde , möchte ich euch bitten zu überprüfen, ob der ULN2003A so richtig beschaltet ist.
Viele Grüße und vielen Dank vorab!
Matthias
Die von MatthiasB zu diesem Beitrag angefügten Bilder können nur von registrierten Usern gesehen werden - Login
die Beschaltung des ULN2003 ist richtig, aber:
1. Bitte vergiss nicht, dass beim Datenbus eine Masseleitung benötigt wird.
2. C1 ist mit 0,33 uF zu klein. Ich würde hier mind. 1 uF, besser 10 uF vorsehen.
Dazu noch ein paar Überlegungen:
A. Warum programmierst Du einen 2-Draht Bus auf dem Tiny auf irgendwelchen Pins aus (Bit-Banging), wo der doch SPI und TWI in Hardware kann?
B. Die Transistoren im Ausgangsposting kannst Du sparen, die 40 mA pro Ausgang kann der AVR direkt treiben, dafür sind diese Relais doch gemacht!
Grüße, Peter W.
ein ULN Port kann nur 500mA schalten. Das reicht für Minitrix zum Beispiel nicht! Die Kanäle kann man aber parallel schalten, der ULN ist dafür gemacht. Normale Transistoren können das ja erst mal nicht. Wenn man aber schon ULNs doppelt verbraucht, kann man auch gleich "normale" 2 oder 4 Ampere Transistoren verwenden. Da ist man auf der sicheren Seite.
Bezüglich der internen Verbindung der 0Volt/GND ist extreme Aufmerksamkeit gefordert:
Hier laufen große Ströme, ein kleiner Querschnitt führt zu Spannungsabfall. Da auch der Logikpegel der ULN Eingänge auf GND bezogen ist, kann es hier Probleme geben.
Des weiteren muß man schauen, ob bei den hohen Strömen nicht auch die AVR Spannungsversorgung mit "weggezogen" wird.
Man muß also sehr genau schauen, wo man die GND Leitungen verbindet und welche man wo trennt.
Das Thema Endabschaltung mit dem Spannungspuls ( Zündspulen-Effekt ) mußt Du noch berücksichtigen. Die Freilaufdioden im ULN reichen definitiv nicht aus.
Wenn Du mit 14Volt schaltest, werden einige Antriebe nicht sauber laufen. Viessmann geht da definitiv nicht, vor allem, weil im ULN gute 2 Volt hängen bleiben. Ein normaler Transistor macht ja vielleicht 0.2 Volt, aber der doppelte Spannungsfolger im ULN haut Dir 2 Volt runter!
Spannungsversorgung:
Die Weiche zieht Dir den Elko vor dem Spannungsregler des AVR leer! Das endet ziemlich sicher im Reset des Controllers Bau mal eine Diode vor den Kondensator!
Und noch was:
Beim Programmieren des Bausteins werden die MOSI/MISO Pins verwendet. Die steuern bei Dir aber die Weichen an. Das ist solange kein Problem, wie beim Programmieren die Weichen nicht angesteckt sind. Wenn Du aber nicht jedesmal die Weichen abbauen willst, wenn neue Software rein soll, dann solltest Du die Pins anders belegen. Sonst zucken die Weichen beim programmieren rum und versauen Dir ggf. die Spannung oder zerkloppen Dir ggf. sogar das Programmierinterface wegen der hohen Ströme/Spannungshub auf der GND Leitung ( siehe oben ).
Gruß
Klaus
ich verwende bei meinen Selbstbaudecodern abweichend vom Standard (7805 Linearregler) Schaltreglermodule. Gibt es in beispielhaft
- klein: http://www.ebay.de/itm/10PCS-Mini-360-DC-DC-4-...5:g:USoAAOSw7hRWQ3Gs
- mittel: http://www.ebay.de/itm/5x-LM2596S-DC-DC-Step-D...9:g:lyoAAOSwkNZUhUu3
- groß: http://www.ebay.de/itm/XL4015-step-down-modul-...3:g:454AAOSwHQ9WZBSG
Ich habe bei mir meist welche der Größe "mittel" (direkt aus CHina) im Einsatz . Sollte nur der ATTiny versorgt werden, dürften die kleinen reichen.
Die ULNs soll man auch stapeln können: http://www.roboternetz.de/community/threads/31...ttmotorenansteuerung
Bei 0,10€/Stk verkraftbar http://www.ebay.de/itm/40-Stk-ULN-2803A-/18185...9:g:ZYoAAOSwMmBV6ZFz
Beste Grüße
Bahnstadt
@Peter
Zitat - Antwort-Nr.: | Name:
1. Bitte vergiss nicht, dass beim Datenbus eine Masseleitung benötigt wird.
Der Datenbus besteht aus Taktsignal PB0 und Signal PB1. Meinst du, dass ich beide Leitungen mittels 10k Widerstand gegen GND ziehe?
Zitat - Antwort-Nr.: | Name:
Warum programmierst Du einen 2-Draht Bus auf dem Tiny auf irgendwelchen Pins aus (Bit-Banging), wo der doch SPI und TWI in Hardware kann?
Dies hängt damit zusammen, dass ich mit einem attiny13 angefangen habe. Dieser hat meines Wissens nur SPI und benötigt dann zur Kommunikation 4 Pins. Zwei Pins wollte damals einsparen. Außerdem hat es mich gereizt auszuprobieren, einen BUS in Software zu implementieren.
@Klaus
Zitat - Antwort-Nr.: | Name:
Man muß also sehr genau schauen, wo man die GND Leitungen verbindet und welche man wo trennt.
Hier bin ich noch völlig unbeholfen. Wie sollte ich die GND voneinader trennen. Eine Verbindung besteht ja zwangsläufig, da ich Mikrocontroller und Weichen über ein Netzteil speise. Einzige Lösung, die mir einfiele (aber auch nicht gefällt) wäre, zwei Netzteile getrennt für Mikrocontroller und Schaltspannung zu nutzen und mittels Optokoppler zwischen Mikrocontroller und ULN trennen.
Das heißt ich müsste je eine schnelle Diode von VCC+ in Sperrrichtung zu den jeweiligen Weichenanschlüssen schalten?
Zitat - Antwort-Nr.: | Name:
Wenn Du mit 14Volt schaltest, werden einige Antriebe nicht sauber laufen. Viessmann geht da definitiv nicht, vor allem, weil im ULN gute 2 Volt hängen bleiben. Ein normaler Transistor macht ja vielleicht 0.2 Volt, aber der doppelte Spannungsfolger im ULN haut Dir 2 Volt runter!
Das ist ein wichtiger Hinweis. Ich sollte dann wohl besser mit einem 16 -18 Volt Netzteil arbeiten.
Zitat - Antwort-Nr.: | Name:
Spannungsversorgung:
Die Weiche zieht Dir den Elko vor dem Spannungsregler des AVR leer! Das endet ziemlich sicher im Reset des Controllers Bau mal eine Diode vor den Kondensator!
Das heißt eine 1N4xxx von VCC+ in Sperrichtung zu C1?
@Namensvetter: Danke für die Links, schaue ich mir mal an.
Vielen Dank für die Hilfe und viele Grüße
Matthias
Zitat
Wie sollte ich die GND voneinader trennen
Es kommt drauf an, wie man die Leitung über die Platine zieht. Natürlich geht das mit einem Netzteil und zwangsläufig sind die irgendwo verbunden. Wichtig ist aber, daß alle Leitungen von einem Punkt ausgehen und es niemals einen Ring gibt. Und die GND vom Controller sollte eben vom zentralen Punkt einzeln zum Controller geführt sein, auch wenn es ggf. vom Layout einfacher erscheint "mal eben" die Masse des ULN mit dran zu knoten. Solche Dinge machen hinterher einfach nur Ärger.
Zitat
Das heißt eine 1N4xxx von VCC+ in Sperrichtung zu C1?
Ja, von der Stromversorgung in Durchlaßrichtung zum Elko und dann zum Spannungsregler. Damit ist dann auch ein Verpolungsschutz automatisch mit eingebaut!
Zitat
Das heißt ich müsste je eine schnelle Diode von VCC+ in Sperrrichtung zu den jeweiligen Weichenanschlüssen schalten?
Erst mal würde ich halt Überspannungsschutzdioden nehmen, die gibt es auch bipolar. Zum zweiten würde ich 100nF möglichst nah an den Antrieb bringen. Ansonsten baust Du eine sehr große Antenne, weil die hohe Spannung dann einen großen Strom durch die lange Leitung mit Kurzschluß über die Überspannungsschutzdioden zum Bezugspunkt macht. Damit sind dann alle Bedingungen ( Leistung, Antenne, Masse ) für eine hohe Sendeleistung gegeben
Also direkt an der Weiche über einen ausreichend spannungsfesten Kondensator wegbügeln. Bringt deutlich mehr als alle Schutzbeschaltungen die dann ggf. Meter weit weg sind.
Zitat
Das ist ein wichtiger Hinweis. Ich sollte dann wohl besser mit einem 16 -18 Volt Netzteil arbeiten.
Es gab mal irgendwo einen Hinweis von Viessmann irgendwo 16 oder gar 18 Volt effektiv an die Spule zu packen. bei 2 Volt Offset wäre das also knapp drunter. Probier es einfach erst mal aus. Wenn ab und zu die Antriebe nicht durchziehen, dann weißt Du ja warum Ich finde die Mail von Viessmann, die in irgendeinem Forum ( hier? ) mal veröffentlicht wurde, gerade nicht...
Gruß
Klaus
Viele Grüße
Matthias
Die von MatthiasB zu diesem Beitrag angefügten Bilder können nur von registrierten Usern gesehen werden - Login
Zitat
oder können die Schutzdioden jeden beliebigen Wert über meiner Betriebsspannung haben?
je näher dran, desto besser. Ansonsten steigt die Spannung ja bis zu diesem Punkt an bevor der Ableitstrom einsetzt. Nach meiner Erfahrung reichen aber auch erst mal die 100nF direkt an der Weiche. Gemessen habe ich das nicht mehr, aber die Schaltung lief bei mir dann stabil. Mit Suppressordiode ist dann ggf. doppelt gemoppelt. Probier es einfach aus und meß mal mit dem Scope nach ( ACHTUNG: Nimm nenn Eingangstrennverstärker, den falls da doch "Hochspannung" kommt, ist sonst der Eingangsverstärker des Scopes hin )
Berücksichtigt hast Du aber noch nicht die 500mA Maximalstrom. Also mal mindestens 2 ULNs übereinander löten
Der Spannungsregler kann ja nun wieder ein L Typ sein, denn er versorgt ja nur noch den uC.
Die Geschichte mit Miso/Mosi war auch noch da
Gruß
Klaus
Zitat - Antwort-Nr.: | Name:
Der Datenbus besteht aus Taktsignal PB0 und Signal PB1. Meinst du, dass ich beide Leitungen mittels 10k Widerstand gegen GND ziehe?
Der Datenbus besteht aus PB0, PB1 und GND. Wenn GND sowieso verbunden ist, fällt das weg. Habe ich nur angemerkt, da ich das bei uns im Verein schon mal diskutiert habe weil ein Kollege meinte, dass ein Two-Wire nur 2 Drähte und ein One-Wire nur 1 Draht braucht. Das trifft nur dann zu, wenn eine gemeinsame Systemmasse vorhanden ist, z.B. das Chassis in einem Auto oder einem Fernseher.
Grüße, Peter W.
die Freilaufdioden sind doch im ULN bereits enthalten!
Übrigens gibt es von Texas Instruments einen pinkompatiblen neuen Treiberbaustein mit FET Ausgängen, der ist niederohmiger (das ist besser für Wumms bei MTX) und auch IMHO lieferbar . Bei Interesse sehe ich mal die Typenbezeichnung nach.
Grüße, Peter W.
die Typbezeichnung interessiert mich. Schau doch bitte mal nach! Danke!
Zitat
die Freilaufdioden sind doch im ULN bereits enthalten!
Siehe meinen Beitrag oben:
Dadurch, daß die Dinger dann dafür sorgen, daß der Strom erst mal durch die lange Leitung von der Weiche bis zum Treiber läuft, bis er da für ordentliche Sendeleistung auch noch schön geerdet wird, ist das eher kontraproduktiv. Zudem gehen die auch nur in eine Richtung. Da aber die Weiche nicht nur eine normale induktive Last ist, sondern durch die Endabschaltung schön Hochspannung macht, braucht es entweder noch eine Diode in die andere Richtung oder einen "Energiefresser" in Form eines Kondensators möglichst nah am Ort der Störung.
Alternativ kann man natürlich auch die Endabschaltung lahmlegen und die Spulen sauber direkt anschließen. Dann hat man die ganze primitive Schleppschieber-Gemurkse auch gleich entsorgt und elektrisch ist alles viel besser.
Auch bei Viessmann Antrieben ist das ja eine hier schon an anderer Stelle empfohlene Methode, da die Dinger ja gerne mal sauber in Mittelstellung stehen bleiben und dann nur noch mechanisch wiederzubeleben sind.
Gruß
Klaus
Zitat - Antwort-Nr.: 12 | Name:
Übrigens gibt es von Texas Instruments einen pinkompatiblen neuen Treiberbaustein mit FET Ausgängen, der ist niederohmiger (das ist besser für Wumms bei MTX) und auch IMHO lieferbar . Bei Interesse sehe ich mal die Typenbezeichnung nach.
Das würde mich auch interessieren...
Hast Du die Bezeichnung parat?
Fragende Grüße
SX1-Norbert
Ich habe meine Schaltung mit Erfolg erprobt und bereits auf meiner Anlage genutzt. Nun ist es dazu gekommen, dass ich auch Module mit Kato unitrack Gleisen baue. Hier haben die Weichen ja bekannterweise einen Einspulenantrieb. Daher die Frage, ob jemand eine Kato Weiche bereits mittels AVR uC geschaltet hat. Mir würde nur ein 2*Wechselrelais einfallen um die Weiche zu stellen. 1 Port steuert das Relais an, welches die Spannung umpolt. 1 weiterer Port schaltet mittels Transistor für ein paar ms die Stromversorgung zu.
Hat hier schon jemand Erfahrungen gemacht?
Ich würde meine Eigenbaulösung auch gerne mit Katoantrieben verwenden.
Danke vorab schon einmal
Matthias
Katoantriebe waren hier schon mehrfach Thema. Das geht per Vierquadrantensteller (H-Brücke) oder Du erzeugst aus Deiner Wechselspannung eine positive und eine negative Gleichspannung. Ein Anschluss der Weichenspule liegt fest auf 0V, den anderen verbindest Du zum Schalten kurz entweder mit der positiven oder mit der negativen Spannung. Schalten kannst Du per Kleinrelais, gesteuert von Deiner Elektronik oder auch per Halbleiter. Ich würde die H-Brücke vorziehen. Z.B. http://www.st.com/content/st_com/en/products/m...or-drivers/l298.html für zwei Weichen. Es gibt auch kleinere Steller, auch mit nur einer Schaltung pro IC.
Grüße
Zwengelmann
Nur registrierte und eingeloggte User können Antworten schreiben.
Einloggen ->
Noch nicht registriert? Hier können Sie Ihren kostenlosen Account anlegen: Neuer N-Liste Account
Zum Seitenanfang
© by 1zu160.net;