Forum: Mikrocontroller und Digitale Elektronik Motor mit PWM langsam anfahren


von Stephan M. (multimeter90)


Lesenswert?

Hallo Leute,

ich habe einen Motor, der mit einer PWM angesteuert wird. Die PWM ist 
veränderlich. Ich muss nun eine Schaltung entwerfen, die zwischen Motor 
und PWM-Quelle eingeschliffen wird. Diese soll dann bei einem 
STOP-Signal den Motor langsam zum Stillstand bringen und wenn das 
STOP-Signal nicht mehr anliegt, dann wieder langsam anfahren lassen.
Realiseren möchte ich das mit einem kleinen µC mit Timer realisieren. 
Meine Frage ist nun nur, wie ich die "reinkommende" PWM so verändere, 
dass der Motor langsamer wird. Ist es möglich, die PWM wieder mit einer 
PWM zu überlagern? Aber wie bekomme ich es hin, dass ich die ON-Time der 
PWM finde?

von PWM (Gast)


Lesenswert?

Stephan Meter schrieb:
> Die PWM ist
> veränderlich

Wodurch?

Stephan Meter schrieb:
> Meine Frage ist nun nur, wie ich die "reinkommende" PWM so verändere,
> dass der Motor langsamer wird.

Du sagtest doch, die PWM sei veränderlich. Dann mach das doch!

von Udo S. (urschmitt)


Lesenswert?

Mit dem µC die eingehende PWM messen, die ausgehende PWM generieren und 
dabei eine maximale Änderungsgeschwindigkeit vorgeben (Rampe).
Siehe Grundlagenartikel hier im Forum

von Stephan M. (multimeter90)


Lesenswert?

Mit "die PWM ist veränderlich" meine ich, dass die reinkommende PWM 
durch den Benutzer verändert werden kann. Ich kann also die Nenndrehzahl 
des Motors einstellen. Allerdings kann die Schaltung die ich hier 
versuche zu realisieren die PWM-Quelle nicht verändern.


Quelle ---> PWM (0-100% bei Us=15V) +--> Schaltung 1 ---> Motor 1
                                    +--> Schaltung 2 ---> Motor 2
                                    +--> Schaltung 3 ---> Motor 3

Die Quelle speißt mehrere Motoren (max. 10). Für jeden Motor brauche ich 
nun eine extra Platine die nachträglich dazwischen geschaltet werden 
kann.

Ich müsste also die PWM messen und nach dieser Messung dann die PWM mit 
einem FET "pwmen"?

von RonnyRoster (Gast)


Lesenswert?

Hallo,

du musst also nicht nur eine PWM verändern sondern eigentlich deinen 
Motor, also eine Last treiben. Vielleicht solltest du wenn die 
vorhandene PWM schon in der Lage ist den Motor zu treiben die eingänge 
des PWM Erzeugers so zu verändern, dass er eine Rampe erzeugt. Ansonsten 
kannst du ja auch gleich die Benutzereingaben auswerten um dann eine 
eigene PWM + Leistungsteil zu erzeugen.

von Jobst M. (jobstens-de)


Lesenswert?

Einfach die PWM mit einem retriggerbaren Monoflop ver-und-en.

Ist die Zeit vom Monoflop länger, als die aktive Phase der PWM, 
verändert sich die PWM nicht. Ist die Zeit kürzer, wird die aktive Zeit 
der PWM auf die vom MF begrenzt.

Jeder Motor benötigt natürlich seinen eigenen Leistungsteil.


Gruß

Jobst

von Wolfgang (Gast)


Lesenswert?

Stephan Meter schrieb:
> Ich müsste also die PWM messen und nach dieser Messung dann die PWM mit
> einem FET "pwmen"?

Wie kommst du auf einen FET. Wenn dir das Prinzip klar ist, also was für 
Signale reinkommen und was genau zum Motortreiber raus geht, ist es 
völlig egal, wie das umgesetzt wird. Du kannst einfach die Länge der von 
der Steuerung kommenden Pulse mit einem Timer ausmessen, rechnest anhand 
des Zustandes von deinem Steuersignal (STOP) und der Dauer dieses und 
des vorherigen Pulses aus, was der Motor als neue Pulsdauer bekommen 
soll und generierst einen entsprechenden Puls für den Motor.

von Stephan M. (multimeter90)


Lesenswert?

Anfangs entstand die Idee die ganze Sache nur mit einem Kondensator und 
einem Transistor zu machen und so die Spannung langsam über dem 
Transistor abfallen zu lassen. Allerdings verliere ich ja so die 
Vorteile der PWM, wenn ich bei dieser einfach nur Uspitze verringere und 
nicht das Tastverhältnis.

Die Sache mit dem retriggerbaren Monoflop hört sich ganz gut an. Da 
könnte sich doch der NE555 ganz gut gebrauchen lassen, oder?

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Die Sache mit dem retriggerbaren Monoflop hört sich ganz gut an. Da
> könnte sich doch der NE555 ganz gut gebrauchen lassen, oder?

und wie veränderst du die Triggerzeit langsam abhängig von einer 
Schalterstellung?

von Stephan M. (multimeter90)


Lesenswert?

Eine gute Frage. Im Anhang habe ich jetzt erst einmal den ne555 mit 
retriggerbaren eingang. Das Input Signal würde ich vorher negieren, 
damit der ne555 bei einer steigenden flanke meiner pwm einschaltet (der 
ne wird ja auf eine negative flanke getriggert)

Jetz müsste ich nur das Laden des Kondensators so manipulieren, dass 
dieser nach einer von mir festgelegten Zeit die Schwellspannung von 
2/3Ub erreicht und den Ausgang auf low setzt. Wie manipuliere ich aber 
mit µC die Ladezeit?

Ideen: Digitales Potentiometer
       Ub zum Kondensator über Transi mit PWM regeln

Am Rand: Die ganze Sache ginge sicher auch nur mit µC und einem 
PinChange Interrupt und Timer. Hat jemand eine Meinung dazu wie 
ausgelastet der µC dann bei einer PWM von 20kHz ist? Nebenbei sollte er 
noch drei IO Pins abfragen können und über I2C kommunizieren.

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Jetz müsste ich nur das Laden des Kondensators so manipulieren, dass
> dieser nach einer von mir festgelegten Zeit die Schwellspannung von
> 2/3Ub erreicht und den Ausgang auf low setzt. Wie manipuliere ich aber
> mit µC die Ladezeit?

Du willst also mit einem µC und Digitalpoti einen 555 so ansteuern, dass 
er als retriggerbares Monoflop arbeitet um ein PWM-Signal so zu 
beschneiden, dass sich eine Anfahr-/Bresmrampe ergibt?

Eventuell könnte man jetzt noch eine zusätzliche Komplikation einbauen, 
nur damit du dir die Programmierung ersparst.

> Am Rand: Die ganze Sache ginge sicher auch nur mit µC und einem
> PinChange Interrupt und Timer.

Nicht Pin-Change. Capture Interrupt.
Das ist das MIttel der Wahl, wenn es darum geht Pulslängen auszumessen.

> Hat jemand eine Meinung dazu wie
> ausgelastet der µC dann bei einer PWM von 20kHz ist?

Macht doch der Timer mehr oder weniger ganz von alleine.

> Nebenbei sollte er
> noch drei IO Pins abfragen können und über I2C kommunizieren.

Kauf dem µC noch ein paar Aufputschtabletten, sonst schläft er dir wegen 
Unterforderung ein.

von Stephan M. (multimeter90)


Lesenswert?

Sehr bildlich gesprochen.Wo bekomme ich die Tabletten?

Okay also macht es das mit dem ne nur noch komplizierter. Ich dachte es 
würde einfacher, aber naja. Danke für klaren Worte.

Also neuer Weg:

Bei jeder steigenden Flanke der PWM steuert der µC einen Transistor 
durch und gibt die PWM weiter. Nach einer gewissen Zeit (mit Timer 
Interrupt) beschneidet er die PWM. Um zu wissen wann er abschneiden muss 
misst er vorher das aktuelle Tastverhältnis/Periodendauer mit dem 
Capture-Modul.

Kann also alles von Interrupts übernommen werden. Nebenbei errechnet der 
µC die neuen Werte für den Timer. Fertig.

Jetzt noch etwas zur Hardware. Wie erfasse ich das PWM Signal 
(Spanngsteiler und dann eventuell noch Opv?) Und wie trenne ich die 
ganze Sache am besten noch galvanisch? Via Optokoppler?

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Also neuer Weg:
>
> Bei jeder steigenden Flanke der PWM steuert der µC einen Transistor
> durch und gibt die PWM weiter. Nach einer gewissen Zeit (mit Timer
> Interrupt) beschneidet er die PWM. Um zu wissen wann er abschneiden muss
> misst er vorher das aktuelle Tastverhältnis/Periodendauer mit dem
> Capture-Modul.

Dein bester Ansatz ist es, das Eingangs-PWM Signal als Steuersignal 
aufzufassen.

D.h. der µC erzeugt sein eigenes PWM Signal und versucht gar nicht erst 
das Originalsignal zu manipulieren. Ist doch viel einfacher solange die 
PWM nicht phasensychron mit anderen Stufen laufen muss.

Diese, am µC generierte PWM wird gesteuert durch
* die Pulslänge bzw. PWM-Prozent eines Inputsignals
* Schalterstellung bzw. zugehörige Rampe, welche den Wert begrenzen.

von Stephan M. (multimeter90)


Lesenswert?

Allerdings muss meine vom µC erzeugte PWM zum selben Zeitpunkt starten, 
wie die Vorgabe-PWM. Angenommen meine PWM hat eine Periodendauer von 1ms 
und ein Tastverhältnis von 30%. Sieht so aus

PWM-Rein
|----|             |----|             |----|             |----|
|    |             |    |             |    |             |    |
|    |-------------|    |-------------|    |-------------|    |---

Und angenommen mein Signal würde nicht synchron starten, könnte es 
passieren, dass der Motor nicht nach den gewollten 5s angehalten hat, 
sondern bereits nach 0,1s.

PWM-Erzeugt
       |------|           |------|           |------|           |------|
       |      |           |      |           |      |           |      |
-------|      |-----------|      |-----------|      |-----------| 
|---

Obwohl die Vorgabe ist, dass der Motor zu diesem Zeitpunkt noch drehen 
soll, so habe ich dennoch bereits den Stillstand erreicht. Also müssen 
beide Signale synchron starten.

von digitaler fritz (Gast)


Lesenswert?

Du brauchst neben PWM auch einen Encoder, der die sagt ob der Motor 
ueberhaupt dreht und wo er ist.
Mit kleinen PWM_Werten steht der Motor ja bekanntlich.

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:
> Allerdings muss meine vom µC erzeugte PWM zum selben Zeitpunkt starten,
> wie die Vorgabe-PWM.

Immer diese Nebenbedingungen, die erst nach 2 Tagen Diskussion mal kurz 
erwähnt werden :-)

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Und angenommen mein Signal würde nicht synchron starten, könnte es
> passieren, dass der Motor nicht nach den gewollten 5s angehalten hat,
> sondern bereits nach 0,1s.

Bist du dir sicher, dass du weißt, wie PWM funktioniert.

Bei einem 20kHz PWM Signal, hinkt dein Motor mit dem generierten 
PWM-Signal maximal 1/20000 Sekunde hinter dem Eingangssignal nach. Ich 
denke, das ist zu verschmerzen.

von Stephan M. (multimeter90)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Bei einem 20kHz PWM Signal, hinkt dein Motor mit dem generierten
> PWM-Signal maximal 1/20000 Sekunde hinter dem Eingangssignal nach.

Allerdings wäre das resultierende Signal, das mein Motor zu sehen 
bekommt eine UND-Verknüpfung von beiden oben aufgezeichneten 
PWM-Signalen. Und wenn beide nicht synchron laufen, dann habe ich im 
ungünstigen Fall 0% obwohl ich eigentlich 30% anstrebe.

von Udo S. (urschmitt)


Lesenswert?

Welchen Motor steuert man mit einer 20kHz PWM an?

von Stephan M. (multimeter90)


Lesenswert?

Im Moment sind es 8kHz. Ein Modellbahnmotor.

von Udo S. (urschmitt)


Lesenswert?

Was willst du wirklich?
Ist das eine Hausaufgabe?
Normalerweise haben bessere Digitalsteuerungen für Modellbahnen die 
Möglichkeit Rampen zu fahren.
Rück mal raus mit der Sprache was willst du erreichen, das ist hier doch 
wieder die übliche 'drum herum reden' Taktik, ja nicht zu viel verraten, 
es könnte ja jemand sonst eine grundsätzlich andere bessere Lösung 
haben.

von Stephan M. (multimeter90)


Lesenswert?

Das hat nichts mit besseren Ideen zu tun. Ich habe nur versucht die 
Problematik zu abstrahieren.

Es geht darum: Meine Modellbahnanlage fährt mit PWM (im Moment 8kHz). 
Ich habe einen Streckenabschnitt, der von einem µC via CNY70 (Optischen 
Reflexionssensoren) überwacht wird ob ein Zug einfährt. Für den Fall, 
dass ein Zug einfährt und der µC über I2C gesagt bekommt, dass das 
Signal in diesem Abschnitt rot ist, soll er den Zug langsam zum stehen 
bringen und dann punktgenau (via zweitem CNY70) vor dem Signal anhalten. 
Bei grünem Signal soll der Zug durchfahren. Wenn das Signal von rot auf 
grün wechselt soll der Zug wieder langsam losfahren.

An meiner PWM-Quelle, also meinem Fahrregler, hängen gleichzeitig 
mehrere Loks, aber es befindet sich immer nur eine Lok ist in dem zu 
überwachenden Abschnitt.

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Allerdings wäre das resultierende Signal, das mein Motor zu sehen
> bekommt eine UND-Verknüpfung von beiden oben aufgezeichneten
> PWM-Signalen.

Wo kommt da eine UND Verknüpfung her?

Der µC erzeugt sein eigens PWM Signal. Dessen Länge wird errechnet aus
* der Pulslänge des eingehenden Signals
* der Schalterstellung (bzw. Rampe)

Ich sehe da keine UND Verknüpfung.

von Stephan M. (multimeter90)


Lesenswert?

Wenn ich die PWM von der Quelle über einen Transistor mit meiner PWM 
schalte, dann schon.

von Karl H. (kbuchegg)


Lesenswert?

> Für den Fall, dass ein Zug einfährt und der µC über I2C gesagt
> bekommt, dass das Signal in diesem Abschnitt rot ist, soll er
> den Zug langsam zum stehen bringen und dann punktgenau (via
> zweitem CNY70) vor dem Signal anhalten.

Mit ein Grund, warum der µC grundsätzlich sein eigenes PWM-Signal 
erzeugen muss. Denn die Rampe muss ganz anders aussehen wenn der Zug mit 
Karacho in den Abschnitt einfäht bzw ob sich da ein Güterzug langsam in 
den Bremsabschnitt reinschleicht. D.h. Abhängig von der eingehenden 
PWM-Länge, die in einer bestimmten Entfernung vom Signal anliegt, muss 
die ausgehende PWM schneller oder langsamer abnehmen, damit du beim 
Signal 'punktgenau' auf 0 bist.

Ausserdem brauchst du noch einen zusätzlichen Eingang, der dir sagt, ob 
der Zug jetzt gerade einen bestimmten Punkt passiert hat und somit die 
PWM-Abnahme einsetzen soll oder nicht (wenn das Signal auf rot steht).

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:
> Wenn ich die PWM von der Quelle über einen Transistor mit meiner PWM
> schalte, dann schon.

Sag mal.
Hörst du eigentlich zu, wenn ich dir was erzähle?

Welchen Teil von:
"das eingehende PWM Signal wird lediglich vermessen und hat ansonsten 
keinerlei Bedeutung mehr für das ausgehende PWM Signal"
verstehst du nicht?

Der µC erzeugt die PWM in diesem Abschnitt. Er ganz alleine!
Das eingehende PWM-Signal ist lediglich Berechnungsgrundlage dafür, wie 
die vom µC zu erzeugende PWM auszusehen hat.

Das ist in Summe viel einfacher, als das eingehende PWM Signal irgendwie 
zu beschneiden und weiterzuverwenden.

von Udo S. (urschmitt)


Lesenswert?

Stephan Meter schrieb:
> Ich habe einen Streckenabschnitt, der von einem µC via CNY70 (Optischen
> Reflexionssensoren) überwacht wird ob ein Zug einfährt. Für den Fall,
> dass ein Zug einfährt und der µC über I2C gesagt bekommt, dass das
> Signal in diesem Abschnitt rot ist, soll er den Zug langsam zum stehen
> bringen und dann punktgenau (via zweitem CNY70) vor dem Signal anhalten.

Dann lese dir mal deine Abstraktion durch. Das einzige was abstrahiert 
wurde sind alle konkreten Informationen und inzwischen hat fast keiner 
mehr Lust dir zu antworten.
Die Info mit dem 2. Signal an der der Zug dann halten soll fehlt völlig.
Wir swussten nicht wie zeitkritisch das ist ob es sich um einen 10kW 
Motor handelt etc. pp.

Die Lösung µC seitig wurde schon gesagt per input Capture die 
Impulsdauer ermitteln und dann über eine Rampenfunktion den Impuls 
früher abschalten. Dazu würde für das Gleissegment ein n Kanal Mosfet 
reichen.
Rampe bedeutet jeder Impuls wird etwas kürzer als der vorige bis nach 
einer (programmierbaren) Zeit eine minimale Impulsdauer erreicht ist 
(der zug soll ja langsam rollen).
Ab der 2. Lichtschranke wird dann komplett abgeschaltet.
Sobald das Signal grün wird wird via Rampe wieder durchgesteuert. Da du 
nie schneller fahren willst als vom Steuergerät vorgegeben musst du kein 
PWM Signal völlig neu erzeugen sondern es reicht wenn du den Impuls 
früher beendest, oder falls das Signal grün ist und der Zug beschleunigt 
hat den MOSFET dauerhaft durchschaltest.

von Stephan M. (multimeter90)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Sag mal.
> Hörst du eigentlich zu, wenn ich dir was erzähle?
>
> Welchen Teil von:
> "das eingehende PWM Signal wird lediglich vermessen und hat ansonsten
> keinerlei Bedeutung mehr für das ausgehende PWM Signal"
> verstehst du nicht?
>
> Der µC steuert die PWM in diesem Abschnitt. Er ganz alleine!
> Das eingehende PWM-Signal ist lediglich Berechnungsgrundlage dafür, wie
> die vom µC zu erzeugende PWM auszusehen hat.

Natürlich höre ich zu. Ich bin deiner Lösung nicht gänzlich abgeneigt, 
allerdings denke ich, dass es nicht nötig ist eine völlig neue PWM zu 
erzeugen. Bitte seid mir nicht böse, wenn ich erst jetzt mit den genauen 
Informationen herausrücke, aber ich dachte ich halte das Problem 
allgemein.

Udo Schmitt schrieb:
> Da du
> nie schneller fahren willst als vom Steuergerät vorgegeben musst du kein
> PWM Signal völlig neu erzeugen sondern es reicht wenn du den Impuls
> früher beendest, oder falls das Signal grün ist und der Zug beschleunigt
> hat den MOSFET dauerhaft durchschaltest.

Das würde es einfacher machen, da ich somit die Spannung vom Fahrregler 
nehmen kann.

von Udo S. (urschmitt)


Lesenswert?

Blöde Frage:
reden wir eigentlich von einer (selbstbebauten) PWM Steuerung oder von 
einem digitalen Zugsteuersystem bei dem die digitalen 
Steuerinformationen der einzelnen Loks über die geschaltete Versorgung 
moduliert werden.
Dann funktioniert das nämlich so nicht.

von Stephan M. (multimeter90)


Lesenswert?

Nein wir reden von einer analogen Modellbahn mit selbstgebautem PWM 
Fahrregler. Funktioniert auch super soweit.

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Natürlich höre ich zu. Ich bin deiner Lösung nicht gänzlich abgeneigt,
> allerdings denke ich, dass es nicht nötig ist eine völlig neue PWM zu
> erzeugen.

OK. Dann halt ich mich raus.
Das wäre so schön einfach gewesen.
1
                    PWM     +--------------+
2
     Steuergerät ---------->| per Input    |
3
                            | Capture      |
4
                            | den Tastgrad |
5
                            | feststellen  |
6
                            +--------------+
7
                                   |
8
                                   | Tastgrad
9
                                   | vulgo "Reisegeschwindigkeit"
10
                                   v
11
                          +---------------+
12
    1. Lichtschranke ---->| Verrechnungs- |<----- Zeitgeber
13
    2. Lichtschranke ---->| logik         |
14
    Signalstellung ------>|               |
15
                          +---------------+
16
                                  |
17
                                  | errechneter Tastgrad
18
                                  | vulgo "bereinigte Geschwindigkeit"
19
                                  v
20
                             +---------------+
21
                             | PWM Generator |
22
                             | vulgo Timer   |
23
                             +---------------+
24
                                  |
25
                                  | PWM zur Schiene
26
                                  |
27
                                  v
28
                               Schiene

Nice and simpel. Das Haupthirnschmalz steckt im Teil 
"Verrechnungslogik", in das aus den Einzeleingangsinformationen nach 
einem Zeitschema (daher der Zeitgeber) der jeweils richtige Tastgrad für 
die Abschnittspwm errechnet wird. Die PWM für die Schiene erzeugt ein 
Timer ganz von alleine, damit hast du nichts zu tun. Du musst ihm nur 
sagen welchen Tastgrad (und damit welche Geschwindigkeit) du haben 
willst. Kein Signal muss angeschnitten werden, kein Timing ist besonders 
kritisch, weil die Timer die ganzen zeitkritischen Dinge (fast) 
vollständig in Hardware machen.

von Stephan M. (multimeter90)


Lesenswert?

Bitte halte dich nicht raus. Kompetente Ideen sind immer gut! Dein 
Ansatz unterscheidet sich nicht groß von meinem. Nur nimmst du zur 
Erzeugung der PWM die normale Versorgungsspannung 15V= und erzeugst eine 
neue PWM. Ich nehme mache das (in gedanken) genauso, nur nehme ich nicht 
die 15V=, sondern die 15VPWM.

Deine Variante macht die ganze Sache schön dezentral: Als Steuereinheit 
brauche ich nicht mehr ein Fahrpult, das eine PWM erzeugt, ich könnte 
einfach nur per I2C an alle Schaltungen die aktuelle Tastrate senden und 
jeder Baustein würde eine eigene PWM erzeugen.

von Udo S. (urschmitt)


Lesenswert?

Karl Heinz Buchegger schrieb:
> OK. Dann halt ich mich raus.
> Das wäre so schön einfach gewesen.

Hallo Karl Heinz.
Da er nur langsamer werden will ,kann er einfach einen zusätzlichen 
Schalter einbauen, du hast aber völlig recht es ist eigentlich 
unerheblich, ob der nur früher ausschaltet, oder gleich von der 
Gleichspannung versorgt wird und ohne die Notwendigkeit einer 
Synchronisation ein und ausschaltet.
Die Logik im µC ist trotzdem die ähnliche.
Er muss den Tastgrad erfassen (das kann er ja die ganze zeit) und wenn 
die erste Lichtschranke durchfahren wird UND das Signal auf rot steht 
diese in einer (konfigurierten) Zeit auf einen minimalen Tastgrad 
herunterfahren, so daß alle Loks noch sicher langsam laufen. An der 2. 
Lichschranke dann ein sofortiger Stopp. Wenn das Signal auf Grün springt 
muss er wieder langsam (konfigurierbar) den Tastgrad vom Minimum auf den 
Solltastgrad erhöhen.

Das funktioniert nur bedingt da die Loks unterschiedlich sind. Besser 
wäre da eine digitale Zugsteuerung wo der Decoder in der Lok für genau 
diese Lok eine programmierbare Rampe fährt.

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Deine Variante macht die ganze Sache schön dezentral: Als Steuereinheit
> brauche ich nicht mehr ein Fahrpult, das eine PWM erzeugt, ich könnte
> einfach nur per I2C an alle Schaltungen die aktuelle Tastrate senden und
> jeder Baustein würde eine eigene PWM erzeugen.

Könntest du.
Du könntest aber auch ganz einfach das Signal vor dem Abschnitt 
abgreifen (der Abschnitt muss ja sowieso isoliert werden), die 
Fahrspannung wegfiltern, so dass nur die PWM Pulse übrig bleiben und 
hast damit alles was der Abschnitt braucht um autonom agieren zu können.
Im Abschnitt hast du die reine Fahrspannung (die musst du zuführen) und 
die Abschnittselektronik moduliert da ihre eigenen PWM Signale auf. Da 
du sowas aber im Steuerpult sowieso schon mal gemacht hast, ist das 
elektrisch sicher nicht das Problem.

von Karl H. (kbuchegg)


Lesenswert?

Udo Schmitt schrieb:

> Das funktioniert nur bedingt da die Loks unterschiedlich sind. Besser
> wäre da eine digitale Zugsteuerung wo der Decoder in der Lok für genau
> diese Lok eine programmierbare Rampe fährt.

Das wär natürlich das Optimum und die Sache mit den unterschiedlichen 
Rampen hat mich auch ein wenig verwirrt. Ich finde deinen Lösungsansatz 
mit den 2 Lichtschranken klasse! Der löst das Problem wunderbar. Nach 
Durchfahrt der ersten wird bis auf eine Mindestfahrt runtergedrosselt. 
Mit dieser Mindestfahrt 'schleicht' sich der Zug ans Signal ran und wenn 
eine 2.te Lichtschranke aussagt, dass er unmittelbar davor steht, fährt 
die PWM (meinetwegen nochmal mit einer Rampe) ganz auf 0 runter.

von Stephan M. (multimeter90)


Lesenswert?

Klar hat digital jede Menge Vorteile, aber die Loks sind alle da und 
eben analog. Vielleicht rüste ich ja irgendwann in entfernter Zukunft 
mal um.

Hardware-mäßig wird es auch nicht viel unterschied machen, ob ich nun 
einen Transistor nehme um die PWM zu pwm-en, oder um die Gleichspannung 
zu pwm-en.

von Oliver (Gast)


Lesenswert?

Stephan Meter schrieb:
> Nein wir reden von einer analogen Modellbahn mit selbstgebautem PWM
> Fahrregler. Funktioniert auch super soweit.

Eben. Funktioniert super soweit - genau so weit, bis man die einzelnen 
Loks unabhängig voneinander steuern will. Dafür ist das Konzept schlicht 
nicht geeignet. Und der Ansatz, eine PWM auf der Leistungsseite nochmals 
zu verändern, ist ganz großer Murks.

Wenn du unbedingt bei dem Konzept der abschnittsweisen Steuerung bleiben 
willst, bau dir halt für jeden Gleisabschnitt einen eigenen Fahrtregler, 
und da drüber einen Steuerung mit Mikrocontroller, die die einzelnen 
Fahrtregler koordiniert. Denn auf das läuft das alles sowieso hinaus.

Oliver

von Stephan M. (multimeter90)


Lesenswert?

Hey Oliver,

ja anscheinend wird es genau darauf hinaus laufen. Ist zwar ein riesen 
Aufwand, aber am ende nicht mehr, als würde ich da einen 
Gleisbesetzmelder und eine Anfahr- und Bremsautomatik von Conrad oder 
sonst wem einbauen.
Mit µC habe ich 10% mehr Aufwand und 200% mehr Nutzen.

Vielen Dank soweit.

von Oliver (Gast)


Lesenswert?

Stephan Meter schrieb:
> Ist zwar ein riesen Aufwand,

Vor allem, wenn du mehr Gleisabschnitte als Loks hast, würde ich da 
trotzdem nochmals über das Standardkonzept "Fahrtregler in Lok" 
nachdenken. Und eigentlich auch, wenn es weniger sind...

Oliver

von Stephan M. (multimeter90)


Lesenswert?

Du meinst damit also digital fahren? Ja wäre auch eine Möglichkeit, aber 
meine Loks sind uralt und eigentlich würde es dann auch viel zu einfach. 
Aber eventuell später. Ganz ausschließen will ich das natürlich nicht.

von Udo S. (urschmitt)


Lesenswert?

Stephan Meter schrieb:
> und eigentlich würde es dann auch viel zu einfach.

Warum wird Steuerung (Software) immer so unterschätzt. Beim Apollo 
Programm dachten sie auch der Aufwand für die Steuerungsrechnerprogramme 
wären nur ein paar Wochen....
Von dem neuen Flughafen(terminal?) in USA nicht zu reden, das erst nach 
mehr als einem JAHR! später eröffnet wurde weil der vollautomatische 
Koffertransport nicht funktionierte...

von Stephan M. (multimeter90)


Lesenswert?

Natürlich ist die Entwicklung der Software und der Logik kompliziert und 
nicht an einem Tag erledigt. Aber genau das macht doch Spaß.

Ich habe noch eine Frage, die sich gestern aufgeworfen hat.

Ich habe nun zwei Gleisabschnitte, mit je einem Fahrregler. Beide Regler 
kommunizieren über einen CAN-Bus mit dem Haupt-Controller. Dieser sagt 
nun beiden, dass sie Geschwindigkeit x ausgeben sollen, weil eine Lok 
von Abschnitt A in Abschnitt B fahren soll. Beide Fahrregler geben nun 
also eine PWM mit gleicher Amplitude und gleichem Tastverhältnis aus. 
Kann es zu Problemen bei dem Überfahren der Trennstellen kommen, wenn 
die PWMs nicht synchron laufen, also eventuell um ein paar µs verschoben 
sind?

von Udo S. (urschmitt)


Lesenswert?

Stephan Meter schrieb:
> Kann es zu Problemen bei dem Überfahren der Trennstellen kommen, wenn
> die PWMs nicht synchron laufen, also eventuell um ein paar µs verschoben
> sind?

Nee, das beantwortest du dir jetzt selbst.

von Stephan M. (multimeter90)


Lesenswert?

Wieso habe ich mir das selbst beantwortet?

von Karl H. (kbuchegg)


Lesenswert?

Nicht "du hast", sondern "du sollst".

Ich denke mal, dem Motor wirds wurscht sein, wenn da ein einziger PWM 
Puls mal kurz hüpft. Als mechanisches System mit einer trägen Masse 
steckt der das weg.

Aber: Geh einfach mal davon aus, dass deine Stromabnahme in der Lok 
nicht punktförmig ist. D.h. beim Überfahren der Trennstelle hast du 
kurzzeitig beide PWM Signale am Eingang. Das eine ist schon Low, das 
andere ist schon High ....

von Udo S. (urschmitt)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Das eine ist schon Low, das andere ist schon High ....
Einer der Gründe das die Entstufen kurzschlussfest sein müssen und auch 
entsprechende Gegenspannung am Ausgang vertragen schadlos sollten.

Muss nur mal ein Waggon entgleisen und quer über dem Gleias liegen.

von Stephan M. (multimeter90)


Lesenswert?

Für die Lok sieht es dadurch als, als hätte sie einen etwas längeren 
Puls bekommen. Macht ihr also gar nichts. Meine Schaltung entspricht so 
ziemlich der von 
http://www.christiane-eibeck.de/hobby.php?show=elektronik:fahrregler1
 Eigentlich sollte es auch den Fahrreglern nichts tun, wenn beide kurz 
miteinander verbunden sind, oder?

von Stephan M. (multimeter90)


Lesenswert?

Udo Schmitt schrieb:
> Karl Heinz Buchegger schrieb:
>> Das eine ist schon Low, das andere ist schon High ....
> Einer der Gründe das die Entstufen kurzschlussfest sein müssen und auch
> entsprechende Gegenspannung am Ausgang vertragen schadlos sollten.

Warum muss deswegen die Ausgangsstufe kurzschlussfest sein? Das verstehe 
ich nicht, kann mir das jemand erklären? Wenn Regler A low ausgibt, und 
Regler B high, und beide verbunden sind, passiert doch nichts weiter, 
oder? Der Regler A hat dann halt Fremdspannung anliegen, aber das sollte 
den doch nicht stören, oder?

von Juppi J. (juppiii)


Lesenswert?

Die Idee Analog mit PWM  gefällt mir.
Würde aber mit einem Stromfühler(Gleisbesetztmelder)
arbeiten.
Zug fährt in den Block ein,Signal ist rot.
Jetzt abbremsen,nach dem Bremsblockgleis kommt der Halteblock.
Halteblock wird Spannungführend wenn das Signal auf grün geht

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:

> Warum muss deswegen die Ausgangsstufe kurzschlussfest sein? Das verstehe
> ich nicht, kann mir das jemand erklären? Wenn Regler A low ausgibt, und
> Regler B high, und beide verbunden sind, passiert doch nichts weiter,
> oder?

Sowas nennt man im allgemeinen Sprachgebrauch "Kurzschluss"

von Stephan M. (multimeter90)


Lesenswert?

Stromsensoren sind auch gut, allerdings erkennen sie einen normalen 
Wagon nur, wenn dieser Achsen mit Widerstandslack hat. Außerdem benötigt 
ein Stromsensor eine Hilfsspannung um den Zug auch bei keiner 
anliegenden Fahrspannung zu fühlen. Ich nutze optische 
Reflexionssensoren, da kann ich soviele einbauen wie ich brauche, ohne 
eine extra Trennung im Gleis. So kann ich einen genau da einbauen, ab 
wann der Zug bremsen soll zum Beispiel. Oder Vor und nach einem 
Bahnübergang, falls der Zug da mit Schrittgeschwindigkeit durchfahren 
soll.

von Stephan M. (multimeter90)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Stephan Meter schrieb:
>
>> Warum muss deswegen die Ausgangsstufe kurzschlussfest sein? Das verstehe
>> ich nicht, kann mir das jemand erklären? Wenn Regler A low ausgibt, und
>> Regler B high, und beide verbunden sind, passiert doch nichts weiter,
>> oder?
>
> Sowas nennt man im allgemeinen Sprachgebrauch "Kurzschluss"

Wenn Regler A low ausgibt, zieht er ja das Gleis nicht auf Masse, 
sondern trennt nur die Verbindung zu den sagen wir 15V. Damit habe ich 
keinen Kurzschluss, oder sehe ich was falsch?

von Karl H. (kbuchegg)


Lesenswert?

Stephan Meter schrieb:
> Karl Heinz Buchegger schrieb:
>> Stephan Meter schrieb:
>>
>>> Warum muss deswegen die Ausgangsstufe kurzschlussfest sein? Das verstehe
>>> ich nicht, kann mir das jemand erklären? Wenn Regler A low ausgibt, und
>>> Regler B high, und beide verbunden sind, passiert doch nichts weiter,
>>> oder?
>>
>> Sowas nennt man im allgemeinen Sprachgebrauch "Kurzschluss"
>
> Wenn Regler A low ausgibt, zieht er ja das Gleis nicht auf Masse,
> sondern trennt nur die Verbindung zu den sagen wir 15V. Damit habe ich
> keinen Kurzschluss, oder sehe ich was falsch?

Ich denke ja.

Wenn Regler A low ausgibt, zieht er das Gleis auf Masse!

von Stephan M. (multimeter90)


Lesenswert?

Bei meinem Regler nicht. Ich habe

    +15V
     |
Transistor npn
     |
 Diode SB360
     |
-----+----------------- Gleis Anschluss 1
|    |
4k7  Freilaufdiode
|    |
-----+----------------- Gleis Anschluss 2
     |
   Sense
     |
    GND


Wenn jetzt der Transistor sperrt, dann wird Anschluss 1 nur durch den 
Verbraucher (Lok und 4k7 Widerstand) auf Masse gezogen. Wenn da ein 
anderer Regler Fremdspannung einspeist, sollte nix weiter passieren?

von Dietrich L. (dietrichl)


Lesenswert?

Stephan Meter schrieb:
> Der Regler A hat dann halt Fremdspannung anliegen, aber das sollte
> den doch nicht stören, oder?

Sollte nicht, aber ob das tatsächlich nicht stört hängt von der 
Schaltung ab. Diese Eigenschaft muss dem Regler schon extra hinein 
entwickelt werden! Vielleicht tut es Dein Regler ja "zufällig", aber das 
einfach so annehmen würde ich nicht.

Gruß Dietrich

von Stephan M. (multimeter90)


Lesenswert?

Und mit der oben aufgemalten Schaltung? Ich hoffe ich stelle mich nicht 
zu doof an;)

von Dietrich L. (dietrichl)


Lesenswert?

Stephan Meter schrieb:
> Und mit der oben aufgemalten Schaltung?

Das sollte gehen.

von Stephan M. (multimeter90)


Lesenswert?

Ein anderer Prototyp arbeitet mit einer H-Brücke, dabei würde das 
wahrscheinlich nicht funktionieren, da ja ein Transistor den Ausgang auf 
GND legt, wenn ich das richtig verstanden habe.

Vielen Dank für die schnellen und kompetenten Antworten und für eure 
Geduld mit mir.

von Stephan M. (multimeter90)


Lesenswert?

Okay, ich bin mal alles durchgegangen und da ist mir aufgefallen, dass 
ich die PWM meines Fahrreglers im Block B auf die Phase der PWM im Block 
A synchronisieren sollte, da ich ansonsten beim Überfahren der 
Trennstelle unschöne Geschwindigkeitssprünge bekommen kann. Angenommen 
der Tastgrad beträgt 50% und die Phasenverschiebung beträgt auch 50%. 
Damit ergibt sich an der Trennstelle für den Motor eine PWM mit 100% und 
damit springt die ziemlich los.


             A                                     B

--------------------------------||------------------------------------|| 
---
         PWM 1                                 PWM 2
-------------+------------------||-----------------+------------------|| 
---
             |                                     |
             |                                     |
          Regler 1  --PWM zum Synchronisieren->  Regler 2
             |                                     |
15V= --------+-------------------------------------+


So muss also PWM 2 phasensynchron zur PWM 1 laufen, damit am Übergang 
keine unschönen Hüpfer entstehen. Da könnte ich ja einfach das TTL 
Signal vom Regler 1 nehmen und zum nächsten Regler führen. Also eine Art 
Taktsignal für alle angeschlossenen Regler. Was sagt ihr?

von Oliver (Gast)


Lesenswert?

Ähem, mit welcher Frequenz läuft denn deinen PWM?

Oliver

von Stephan M. (multimeter90)


Lesenswert?

Das kann ich dir im Moment nicht mit Genauigkeit sagen, weil ich noch 
die beste Frequenz durch Tests herausfinden muss. Letztens habe ich mit 
8kHz gearbeitet. Es wird irgendetwas im Bereich von 1kHz bis 10kHz sein 
denke ich. Da sollte es doch kein Problem sein das Taktsignal zum 
Synchronisieren von einem zentralen Punkt aus zu versenden.

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.