Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

haschenk

RCLine User

Beruf: Dipl. Ing.

  • Nachricht senden

21

Sonntag, 23. Oktober 2016, 19:25

Danke !
Das war's....

Gruß,
Helmut

22

Sonntag, 23. Oktober 2016, 19:31

Klaus, Helmut,
das macht ein Forum aus. Einer hat ein Problem und kriegt Tipps und Ideen. :w

Klaus,
das laeuft ja nun vorwaerts und rueckwaerts absolut perfekt. :ok:
Gruss
Thomas
🖖

Vielleicht ist Wissen doch nicht die Antwort auf alles


23

Sonntag, 23. Oktober 2016, 20:48

Kann mich dem nur anschließen, das Teil läuft sehr sauber :applause:

Kannst du mal den Code posten?

@Thoma: WIe darf man deine neue (?) Signatur verstehen?

Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

24

Sonntag, 23. Oktober 2016, 21:11

Der Code ist schon dafür vorbereitet auch Funktionen für die Steuerung der Gesamtanlage (Gelände ...) zu übernehmen.
Deswegen kann der auf den ersten Blick etwas umständlich aussehen.
Auf dem Treiber-IC sind ja auch noch 7 Eingänge frei.
Bei Bedarf einfach fragen.

Das Display ist ein eigenes Projekt mit einem eigenen Arduino Pro Mini und wird über die serielle Schnittstelle angesteuert. Der Code ist nicht enthalten.

Gruß, Klaus
»Klaus(i)« hat folgende Datei angehängt:
  • kSi_railway.zip (6,41 kB - 8 mal heruntergeladen - zuletzt: 17. September 2018, 11:49)

haschenk

RCLine User

Beruf: Dipl. Ing.

  • Nachricht senden

25

Sonntag, 23. Oktober 2016, 21:19

Hallo,

so, jetzt hab' ich mich schlau gemacht und verstehe die beiden Schaltungen.

Thomas:
Es kann ja schon sein, daß die Modellbahner das als "Halbwellen- bzw. Vollwellensteuerung" bezeichnen, aber etwas irritierend ist das schon. Ich würde sagen: Gemischte PWM- und Linear-Ansteuerung des Leistungsteils (wobei die PWM von der positiven Halbwelle der Betriebsspannung abgeleitet wird). Daß dabei der Leistungstransistor bärig warm wird, ist klar. Technisch gesehen ist das der Entwicklungsstand der Flug-ESCs (für Bürstis) vor Jahrzehnten, als man noch die PWM von der frame rate des Servo-Signals abgeleitet hat.

Klaus:
Der Peter Rachow macht die Linear-Ansteuerung auch deshalb, weil er mit der "Halbwellen-PWM" nicht mehr als 50% ED erreichen kann. Er sagt, daß damit auch das Brummen des Lok-Motors reduziert wird (was sicher stimmt), und hat damit das Notwendige mit dem Angenehmen verbunden.

Da drängt sich mir aber die Frage auf: Warum machst du das einfach auch so, ohne die viel größeren Möglichkeiten des µPs (Arduino) zu nutzen ?
Du könntest damit problemlos eine PWM von 0 bis 100% ED erzeugen, und du könntest eine (mindestens) 100fache PWM-Frequenz wählen, irgendwo im kHz-Bereich. Dann würde die Endstufe im reinen Schaltbetrieb laufen und nicht mehr warm werden, und brummen würde auch nichts mehr; abgesehen mal von der Vereinfachung der Schaltung. Und du würdest einen I/O (zur anderweitigen Verwendung) einsparen.
Gibt's irgendeinen Grund (den ich vielleicht nicht kenne), das nicht so zu machen ?

Ich habe selbst vor Jahren, als Slow Flyer noch solche waren und u.a. auch kleine Glockenanker-Motörchen mit Getriebe (Faulhaber) zum Antrieb verwendet wurden, kleine PWM-Regler (mit Tiny 15) gebaut und verwendet; die wurden mit irgendwo zwischen 10 und 15 kHz (weiß es nicht mehr genau) getaktet, und das ging prima. Walter Scholl hat damals die Regler von Piednoir vertrieben, die wurden mit 50 kHz getaktet; deren Schaltungstechnik war aber ziemlich "tricky", und diese Regler waren recht teuer. Für die nieder-induktiven Glockenanker-Motörchen (genauer: deren Bürsten) ist die hohe Taktfrequenz viel schonender als eine niedrige; es gibt keine hohen Spitzenströme.
Bei den Flug-ESCs hat man die niedrige PWM-Taktfrequenz (ca. 50Hz) schnell wieder aufgegeben, weil die daraus entstehenden hohen Stromspitzen im Teillastbereich die damals verbreiteten Ferritmagnete in den Motoren abmagnetisiert haben. Für die Glockenankermotoren gilt das nicht, da verschleißen nur Bürsten und Kollektor schneller.

Noch ein Tip:
Ich hab' mal eine IR-Fernsteuerung entwickelt (auch für Indoor-Slow Flyer); damit konnte man sehr kleine und leichte Empfänger realisieren. Dabei gibt's aber gewisse Einschränkungen in der Impulstelegrammlänge (Details führen hier zu weit), und es zählt jedes Bit, das man einsparen kann. Daher hatte ich die Stufenzahl in der Motoransteuerung auf 64 bzw. sogar auf 32 reduziert. Bei nur 6 Bit Auflösung hat man davon noch garnichts bemerkt, bei 5 Bit nur minimal, und wenn man's gewusst hat.... Wenn es bei dir in der Software irgendwo "eng" wird, wäre das auch eine Möglichkeit.

Und noch einer:
Wenn du den µC die PWM-ED nicht über Formeln berechnen lässt, sondern diese aus einer "look-up"-Tabelle (Im EEPROM, bei der Initialisierung ins RAM holen) holst, hast du große "Freiheiten" in der Gestaltung der "Steuerkurve" Drehknopf-> Lok-Verhalten. Je nach Inhalt der Tabelle kannst du die Wirkung spreizen, einengen, auch nur bereichsweise (ähnlich wie bei den Helis die "Gaskurve").

Zu deiner letzten Erweiterung (Umpol-Relais, vom Arduino gesteuert):
Ein einfacher Transistor statt ULN2803 tut's auch, Basis-Vorwiderstand (ca. 10 KOhm) dann nicht vergessen. Und eine Freilauf-Diode über die Relais-Wicklung, wie beim Motor.

Wenn du den Lok-Antrieb nicht genügend leichtläufig hinkriegst, kannst du mal den schon erwähnten "Vor- oder Grundstrom" (mit Widerstand über den Endtransistor) versuchen. Wert kann ich dir nicht sagen; ich schätze mal, daß man da etwa 50-100 mA fließen lassen muß. Halt so viel, daß der Motor damit kurz vor dem Anlaufen ist. Die PWM-Impulse haben's dann etwas leichter.
Vergleichbar habe ich diesen Trick mal bei einem Miniatur-Flügelrad-Anemometer (mit Glockenankermotor als Tachogenerator) angewendet, um das Anlaufen bei ganz niederen Windgeschwindigkeiten zu erreichen.


Das sind jetzt alles nur Vorschläge, die du vielleicht nützlich findest.

Gruß,
Helmut

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »haschenk« (23. Oktober 2016, 21:28)


Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

26

Sonntag, 23. Oktober 2016, 21:43

Hallo Helmut,

ein erneutes Danke für deine Vorschläge.

Warum machst du das einfach auch so

Der Grund ist ganz einfach: Weil mir für diese Art der Ansteuerung das Know How fehlt, habe ich zuerst das nachempfunden, was bei jemand anderem funktioniert und wo ich einen entsprechenden Ansatz für habe.
Wenn Du mit deinem Hintergrundwissen mir sagst, dass für die sogenannte "Halbwelle" eine höhere Frequenz sinnvoller ist, werde ich das gerne mal versuchen.

Wenn du den µC die PWM-ED nicht über Formeln berechnen lässt

Zurzeit wird die ED ganz einfach berechnet und ist limitiert bei 30%. Damit wollte ich wie oben ein funktionierendes System erstmal nachbilden.
Die Steuerung mit dem Arduino lässt zumindest eine sehr einfache Anpassung über die Software zu.

Mir fehlt mangels der Grundlagen eine Strategie zur Optimierung der Steuerung. Ich weiß zum Beispiel nicht, wie so eine Gaskurve aussehen müsste damit die Ansteuerung besser wird.
Ein Problem wird wohl auch sein, dass ich ohne einen anständigen Messpark die optimalen Einstellungen nicht finden werde.
Meine Ausstattung ist da recht einfach (Multimeter, selbst gebautes einfaches Oszi, ...).

Zitat von »haschenk«

Ein einfacher Transistor statt ULN2803 tut's auch

Das ist mir zufällig auch bekannt aber hier habe ich schon die Ansteuerung von diversen LEDs in meinem Diorama im Kopf.

Gruß, Klaus

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Klaus(i)« (23. Oktober 2016, 22:11)


Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

27

Montag, 24. Oktober 2016, 15:26

Ich habe ein paar Parameter in die Config eingebaut und im Code entsprechend berücksichtigt.
Dies sind:

Quellcode

1
2
3
4
//---------------------- Motor Parameter --------------------------
#define MOTOR_DC_TRESHOLD 20      //Schwellenwert für Gleichspannungsanteil / Startwert  (theoretisch 0-255, praktisch eher bis max.50)
#define MOTOR_PWM_TRESHOLD 20   //Schwellenwert für PWM-Anteil / Startwert (theoretisch 0-255, praktisch eher bis max.50)
#define MOTOR_PWM_ED_MAX 100    //ED: maximale ED für PWM (theoretisch 0-255)

Die Parameterwerte muss man selbst für seine Anlage / Lok ermitteln.
Jetzt brauche ich den Fahrregler nicht mehr ganz soweit zu drehen bis die Lok anfährt.

Die beiden PWM-Frequenzen waren schon in der letzten Version konfigurierbar.
Gültige Werte sind in der config dokumentiert.
Den Wert für den Gleichspannungsanteil habe ich auf 4kHz erhöht um eine bessere Glättung zu erhalten.
Eine Erhöhung der PWM-Frequenz für den "Halbwellenanteil" (PWM_5_6) hat sich nachteilig auf das Anfahrverhalten ausgewirkt.

Quellcode

1
2
3
//---------------------- PWM-Frequencies --------------------------
#define PWM_5_6 1024    //Divisor for D5 & D6 --> ~60 Hz
#define PWM_3_11 8    //Divisor for D3 & D11 --> ~4kHz Hz


Ich habe langsam das Gefühl, dass weitere Änderungen keine subjektiv wahrnehmbare Verbesserungen bringen.
Messbar sind sie bestimmt, aber was der Anwender nicht merkt ....

Ich bin jetzt für meinen Teil mit den Eigenschaften des Fahrreglers zufrieden.
Ich würde ja gerne mal eine neue, moderne Lok ausprobieren.

Gruß, Klaus
»Klaus(i)« hat folgende Datei angehängt:

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Klaus(i)« (24. Oktober 2016, 15:48)


28

Montag, 24. Oktober 2016, 16:14

Koenntest auch ein kleines LCD Display und zwei Taster dranhaengen. Dann koenntest du diese Daten im EEPROM speicher und mit einer Setup Routine aendern.
Gruss
Thomas
🖖

Vielleicht ist Wissen doch nicht die Antwort auf alles


Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

29

Montag, 24. Oktober 2016, 17:13

Das wäre dann aber die Luxusversion.

Da lohnt der Aufwand aber nur bei mehr Anwendern.
Bei der Anzahl an Modellbahnern hier ist dies wohl nicht notwendig.
Hat auch noch keiner nach PCB und Stückliste mit Artikel-Nr. gefragt. Nur unter uns: Platinenlayout habe ich nicht :D


Gruß, Klaus

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Klaus(i)« (24. Oktober 2016, 17:20)


Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

30

Montag, 24. Oktober 2016, 22:44

Eine Erhöhung der PWM-Frequenz für den "Halbwellenanteil" (PWM_5_6) hat sich nachteilig auf das Anfahrverhalten ausgewirkt.

Meine Erfahrung deckt sich auch mit dem Angebot von kommerziellen Produkten.
Anfahren mit optimierten Impulsen:
Impuls-Spannung: 8,0V Frequenz A: 16Hz Frequenz B: 58Hz

Dann muss ich es nochmal mit 30 Hz versuchen und ich brauche noch einen Schalter für reinen Gleichstrombetrieb für Glockenankermotoren.

Gruß, Klaus

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Klaus(i)« (24. Oktober 2016, 22:51)


31

Montag, 24. Oktober 2016, 23:17

Also doch Feintunig je Lock.
Also mehrere Locks programmierbar. ;)
Gruss
Thomas
🖖

Vielleicht ist Wissen doch nicht die Antwort auf alles


haschenk

RCLine User

Beruf: Dipl. Ing.

  • Nachricht senden

32

Dienstag, 25. Oktober 2016, 02:23

Hallo,

ich kann's nicht so recht glauben...
wenn ich z.B. an die Spielzeug-Copterchen denke, bei denen die PWM prima funktioniert. Deren Frequenz habe ich noch nicht gemessen, aber dem Pfeifen nach, das man manchmal hören kann, sind es mindestens ein paar Hundert Hz. Die "Endstufen"-Schaltung ist da ganz primitiv, ein kleiner MOSFET (meist nur in SOT 23), der direkt vom µC angesteuert wird- das ist alles. In den Copterchen sind (in etwa) dieselben Motörchen verbaut, dürften aber wegen der höheren Betriebsspannung mehr Windungen, einen höheren Widerstand und ein kleineres kv haben. Bei den Copterchen ist der Innenwiderstand der Stromquelle (Lipo) vergleichsweise niedrig; das spielt wahrscheinlich auch eine Rolle.

Könnte es bei Klaus an der Stromversorgung liegen, die keine steilen Impulsflanken zulässt ? Oder gibt's sonst eine Stelle, die "Impuls-abträglich" ist ?

Es ist halt sehr schwierig, ohne "vernünftige" Messmöglichkeiten die Ursache zu finden. Ich würde mir dazu mal den Strom(-verlauf) in den Motorzuleitungen ansehen. Nicht die anliegende Spannung ! Dazu muß man einen Widerstand in die Leitung einfügen und den Spannungsabfall daran ansehen. Als Widerstandswert dafür würde ich mal mit 1 Ohm anfangen; ist er zu groß, beeinflusst er die Funktion, ist er zu klein, dann kriegt man ein schwieriger zu messendes (zu kleines) Signal. Bei einem Selbstbau-Scope ist dabei aber Vorsicht angebracht- dessen Messeingänge könnten nicht potentialfrei sein. Im Idealfall schaut man sich mit einem "Zweistrahler" parallel dazu noch die Spannungen an verschiedenen Stellen der Schaltung an.

Ih würde auch mal versuchen, das Anlaufen nicht mit der Lok auf den Gleisen, sondern "lastfrei" mit in der Lok (am Motor) angelöteten Litzen zu studieren; Spannung und Strom ansehen/messen.

Gruß,
Helmut

PS.
Es ist bei Modellbauern ein häufiger Fehler, daß man sich (mit dem Scope) nur die Spannung ansieht (weil halt einfach) und dann annimmt daß der Strom denselben Verlauf hat. Das ist aber oft nicht der Fall, der Strom kann ganz anders aussehen. Und für alle elektromagnetischen Wirkungen (also auch Motoren) ist immer der Strom maßgebend. Die Spannung ist -salopp gesagt- nur dazu da, daß ein Strom fließt.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »haschenk« (25. Oktober 2016, 02:35)


Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

33

Dienstag, 25. Oktober 2016, 13:56

Jetzt kommts ....

Die 30 Hz sind der Bringer!




Ich habe dann auch gleich den Code und den Schaltplan angepasst.




Die "Halbwelle" kommt jetzt mit 30 Hz aus D9.

Etwas aufgeräumt habe ich auch.




Ich denke mehr ist aus der Set-Lok nicht rauszuholen. :applause:

Gruß, Klaus
»Klaus(i)« hat folgende Datei angehängt:

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Klaus(i)« (25. Oktober 2016, 14:06)


34

Dienstag, 25. Oktober 2016, 16:00

:ok:
Genial wie das jetzt laeuft.

Und du wolltest es damals nicht glauben als ich dir das mit den Halbwellen geschickt habe. ;)
Gruss
Thomas
🖖

Vielleicht ist Wissen doch nicht die Antwort auf alles


35

Dienstag, 25. Oktober 2016, 19:06

:ok: :ok: :ok:

haschenk

RCLine User

Beruf: Dipl. Ing.

  • Nachricht senden

36

Donnerstag, 27. Oktober 2016, 01:22

Hallo.

Klaus,
schön, daß dein Konstrukt jetzt das macht, was du wolltest.
Aber es bleibt die Frage, warum im gegebenen Fall die Taktung so extrem niederfrequent sein muß; entgegen der Erfahrung in ähnlichen Fällen.
Wahrscheinlich wird dich das nicht interessieren, aber ich stelle die Frage einfach mal. Vielleicht liest jemand mit, der die Ursache kennt.

Gruß,
Helmut

Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

37

Donnerstag, 27. Oktober 2016, 06:29

Auf dieser Seite gibt es einen Erklärungsversuch.
http://www.michael-twiste.de/eisenbahn/fahrtregler1.html

Gruß, Klaus

38

Donnerstag, 27. Oktober 2016, 09:10

Der Grund sind die Entstörkondensatoren - und bei der Eisenbahn wohl auch die Schienen (mal nachmessen, was das Teil für eine Kapazität hat):
https://www.mikrocontroller.net/articles…er_PWM-Frequenz

Apropos, ich hab' jetzt auch so einen Regler gebaut, nur glaub' ich nicht an den Gleichspannungsanteil, sondern an den 16-bit Timer1 :)

Klaus(i)

RCLine Team

  • »Klaus(i)« ist der Autor dieses Themas

Wohnort: Achim b. Bremen

Beruf: Mensch

  • Nachricht senden

39

Donnerstag, 27. Oktober 2016, 09:33

sondern an den 16-bit Timer1

mit dem Du dann genau was machst?

Gruß, Klaus

40

Donnerstag, 27. Oktober 2016, 10:32

Der Schieberegler für "Geschwindigkeit" stellt das Tastverhältnis vom PWM von MIN bis MAX ein. Nachdem je nach Motor/Lock/Auto die Werte für MIN und MAX ganz schön nahe beieinander - da reichen 8 Bit nicht aus. Aussedem braucht's ordentlich Expo auf dem Geschwindigkeitsregler:

MIN=Poti_1/1023.0;
MAX=Poti_2/1023.0;
SPEED=Poti_3/1023.0;
SPEED*=SPEED;
PWM=65535*(MIN+(MAX-MIN)*SPEED);

Library stammt von da: https://forum.arduino.cc/index.php?PHPSE…&topic=117425.0