Forum: Mikrocontroller und Digitale Elektronik L298D, Arduino Nano und Modellbahn


von Ma S. (mspw)


Lesenswert?

Hallo zusammen,

habe mal wieder etwas Zeit gefunden und wollt meine Modellbahn weiter 
aufbauen. Habe dazu mir gedacht, wäre ja genau das richtige die 
Modellbahn mit einem Smartphone zu steuern. Also ruckzuck ein paar L298D 
geordert, paar Arduino Nano dazu und ab gehts (war der Plan).

Funktionsweise:
Also habe ich mir Software für die Arduino(s) geschrieben, welche dann 
über die serielle Schnittstelle miteinander kommunizieren und die PWM 
Ausgänge für die Steuerung einzelner Gleisabschnitte nutzen. Steuerbar 
alles dann vom Smartphone aus, geht alles soweit.

Problem:
Beim Übergang einer Lok von einem Gleisabschnitt in den anderen, welcher 
am selben Arduino hängt läuft alles gut. Beim Übergang zwischen zwei 
unterschiedlichen Arduinos fährt die Lok ganz langsam. Vermutung ist das 
die Frequenzen vom PWM (zwar gleich) aber in unterschiedlicher Zeit 
ablaufen und es eine Art Kurzschluss oder so etwas gibt. Könnte das 
stimmen?

Gruss und Dank.
mspw

von Vancouver (Gast)


Lesenswert?

"Könnte das stimmen?"

Ja, das ist die wahrscheinlichste Erklärung, Phasendifferenz zwischen 
den PWMs. Keine Ahnung ob man die PWMs mehrerer ATMegas synchronisieren 
kann, vermutlich eher nicht.

Nur so eine dumme Idee: Die L298 bestehen doch aus High- und 
Lowside-Treibern. Eigentlich wird der Lowside aber doch garnicht 
benötigt, oder? Du willst ja kein Digitalsignal über die Schiene 
übertragen, sondern nur Power, d.h. statt zwischen 1 und 0 könnte der 
Treiber auch zwischen 1 und hochohmig schalten. Damit würde das 
Phasenproblem verschwinden. Aber keine Ahnung ob das geht mit dem L298D.

von Thomas E. (thomase)


Lesenswert?

Marc S. schrieb:
> Könnte das stimmen?

Hundertprozentig.

Du musst die Timer synchronisieren und alle müssen den selben Takt 
haben.

D.h. du musst über eine gemeinsame Leitung alle Timer gleichzeitig 
starten. Da sie aber nicht den selben, sondern nur den gleichen Takt 
haben, wirst du trotzdem noch eine, wenn auch geringe, Verzerrung drin 
haben. Zu Anfang. Im Laufe der Zeit wird die dann immer größer, sodaß du 
die Synchronisierung wiederholen musst.

Eine andere Möglichkeit wäre es, wenn die Lok in den nächsten Stromkreis 
einfährt, den vorherigen abzuschalten. Dafür kann man auch den 
Kurzschluß auswerten. Das Umschalten erfolgt so schnell, daß die Lok 
davon gar nichts mitbekommt. Macht man bei Kehrschleifen auf DCC-Anlagen 
ähnlich. Dafür brauchst du natürlich irgendeine Rückmeldesensorik, die 
das auch erkennt.

: Bearbeitet durch User
von Ma S. (mspw)


Lesenswert?

Danke.

Ich hatte da wohl schon die richtige Idee. Schön.

Also ist wohl die Lösung nur einen Taktgeber (PWM Signal) zu erzeugen 
und dies auf die einzelnen L298D zu verteilen. Vielleicht mittels 
AND-Gatter?

Was meint ihr?

Gruss
mspw

von Manfred (Gast)


Lesenswert?

Vancouver schrieb:
> Nur so eine dumme Idee: Die L298 bestehen doch aus High- und
> Lowside-Treibern. Eigentlich wird der Lowside aber doch garnicht

Thomas E. schrieb:
> Hundertprozentig.

Aber nur, weil der Low-Side-Treiber die Spannung umbringt, bis er selber 
abfliegt. Bei reinen High-Side würden sich die Pulse addieren und die 
Lok zufallsbedingt Vollgas geben!

von Thomas E. (thomase)


Lesenswert?

Ma S. schrieb:
> Also ist wohl die Lösung nur einen Taktgeber (PWM Signal) zu erzeugen
> und dies auf die einzelnen L298D zu verteilen. Vielleicht mittels
> AND-Gatter?

Das nennt sich Z-Steuerung. Z wie Zuordnung. Ist ein alter Hut aus der 
Vor-DCC-Zeit. Das macht es natürlich nicht per se schlecht. Allerdings 
ist es ein Riesenaufwand, sodaß du mit einer Erstausstattung für DCC aus 
der Gebrauchtabteilung eines bekannten Auktionshauses sehr schnell 
günstiger fährst.

Um wieviele Stromkreise und Züge geht es denn?

von Mspw (Gast)


Lesenswert?

Hallo,

da es sich um mehrere zusammenhängende Module für eine größere Modul 
Anlage handelt, wo analog gefahren wird, ist digital erst einmal keine 
Option. Ich denke zSchaltung geht dann in meine Richtung.

Danke
Mspw

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Und wenn Du 'digitalisierst'?
Die Arduinos kommen in die Loks, die Versorgung und die Kommunikation 
kommt vom Gleis - denke Da an eine Art RS485, differenzielle Pegel, die 
Spannung zwischen beiden Polen ist konstant.
Wenn nur der Master sendet - Der wird vom Smartphone befehligt, müssen 
die Einzel-Loks 'nur noch' am Rad/Gleis mitlesen, gleichzeitig die 
Spannung für den Antrieb und den Arduino gleich richten und per PWM den 
Antrieb mit der gewünschten Geschwindigkeit in die gewünschte Richtung 
ansteuern.

MfG

von Thomas E. (thomase)


Lesenswert?

Ma S. schrieb:
> Vielleicht mittels AND-Gatter?

Nimm Multiplexer. Z.B. 74HC4051.

von mspw (Gast)


Lesenswert?

Hallo,

aber mit Multiplexern kann man doch nur einen Ausgang schalten, nicht 
mehrere parallel. Ich müsste mehrere parallel auf die L298d verteilen.

Gruss
mspw

von Ma S. (mspw)


Lesenswert?

Hallo nochmal,

wäre dieser vielleicht besser TB6612FNG?

Der scheint doch einen extra pwm Anschluss zu haben? Und dann noch mit 
einem Multiplexer?

Gruss
mspw

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

mspw schrieb:
> aber mit Multiplexern kann man doch nur einen Ausgang schalten, nicht
> mehrere parallel. Ich müsste mehrere parallel auf die L298d verteilen.

Mit Gattern müsstest du das gleiche machen. Nur diskreter aufgebaut und 
noch aufwendiger.

Ma S. schrieb:
> Der scheint doch einen extra pwm Anschluss zu haben?

Den hat der 298 auch, heisst nur nicht so. Das PWM-Signal musst du bei 
beiden extern erzeugen.

Es gibt aber auch noch eine elegantere Lösung mit Schieberegistern und 
nur einem Steuercontroller. Dann brauchst du für jeweils 8 
Fahrabschnitte nur einen 74HC595. Den Rest erledigt die Software.

von Ma S. (mspw)


Lesenswert?

Hallo,

habe gestern mal versucht das PWM Signal unter verschiedenen Controllern 
zu synchronisieren, leider ohne Erfolg. Hat immer noch nicht 
funktioniert wie es sollte.
Kurze Erklärung: Ich habe einen Controller benutzt um das PWM Signal zu 
erzeugen, bei anderen Controllern (2 Stück) an einen Pin einen Interrupt 
gesetzt und an einen digitalen Ausgang ausgegeben zur 
Weiterverarbeitung.

Wenn Zeit sein sollte werde ich das ganze mal it &-Gattern testen. 
Vielleicht ist es ja ein ganz anderes Problem.

Ich habe im übrigen gestern mal den L298n getestet, indem ich an einen 
Enable-Anschluss das PWM Signal angelegt habe. Es wurde nicht beachtet, 
als ob direkt 5 Volt anliegen, auch sehr merkwürdig.

Gruss
mspw

von M. K. (sylaina)


Lesenswert?

Ma S. schrieb:
> Ich habe im übrigen gestern mal den L298n getestet, indem ich an einen
> Enable-Anschluss das PWM Signal angelegt habe

Die PWM gibt man ja auch auf einen Input und nicht auf den Enable. ?

von Jim M. (turboj)


Lesenswert?

Ma S. schrieb:
> habe gestern mal versucht das PWM Signal unter verschiedenen Controllern
> zu synchronisieren, leider ohne Erfolg. Hat immer noch nicht
> funktioniert wie es sollte.

Das auf ein paar µs zu synchronisieren ist irre auwändig und bräuchte 
u.a. eine zentrale Takleitung.

Einfacher wäre eine Art Wendeschleifen Schaltung: Per Relais den 
Übergang zwischen 2 Controllern umschalten. Der zu schaltende Block muss 
allerdings länger als der längste Zug sein.

Alternativ baut man die Anlage auf DCC um, da hängen dann alle Booster 
am selben Datensignal. Nachteil: In die Loks müssen Dekoder Platinchen 
rein.

von Freddy B. (n-spurer)


Lesenswert?

Ist die Modellbahn immer noch in Planung?
Ich selber baue an einer N-Spur anlage, die auch analog bleiben soll und 
trotzdem vom Pc aus gesteuert werden soll. Ich nutze für die 
Spannungsversorgung der einzelnen Blöcke eine schaltung die aus einem LM 
324 ein paar Widerständen einem Kleisttransistor und aus 
Schaltdarlingtons TIC 122 + 127 besteht. Um die Signale der einzelnen 
Fahrregler zuzuordnen bräuchte man Schieberegister und für die Logische 
Zuordnung Und Gatter.
Meine Platinen für 4 Blöcke und je 5 Fahrregler haben 10 IC´s Und mit 2 
Eingängen 4 x LM 324 je 4x TIC 122 + 127 eine große Anzahl an 
widerständen und Dioden.
Die Grundschaltung ist in der Mitte des Beitrags:
Beitrag "OPV mit DAC ansteuern"

funktioniert sehr gut.

von Msp (Gast)


Lesenswert?

Hallo,

baue auf digital um. Habe jetzt eine dr5000 zentrale und schon Loks 
umgerüstet.

Gruss
Msp

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.