Zittern Servos mit Arduino Nano

#1 von thagu , 01.01.2022 22:50

Hallo zusammen
auch wenn schon viel über Servos die zittern geschrieben wurde, habe ich hier die Lösung auf mein Problem noch nicht gefunden. Hier mein Setup:
Tams Redbox mit 3 Boostern. Redbox versorgt Anlage mit Steuersignalen, die Booster sind zum Fahren. Direkt an der Redbox habe ich einen selbstgebauten DCC Dekoder angehängt (Kabellänge 15cm) und daran wiederum ein Arduino mit Servo Shield. DCC Dekoder ist gemäss diesem Schema gebaut (Basis von Mynabay.com):
RE: Arduino: Schaltplan Arduino als DCC-Decoder allerdings ohne Ack-Teil.
Das Shield wird über eine DC 12V Spannung versorgt mit ausreichend Spucke. DCC Dekoder ist über Pin 2 mit 5V und GND von Shield verbunden. Code habe ich aus verschiedenen anderen Projekten selbst zusammengetragen und für meine Zwecke optimiert. ich brauch die SErvo library. Code ist im Anhang. Zudem kann ich über das gleiche Shield noch eine PWM Shield ansteuern, ist aber hier irrelevant, weil das Problem auch ohne diesen Bereich auftritt.
Als Servo brauche ich die günstigen, blauen, 9G aus China.
Das funktioniert alles, auch Steuerung mit Rocrail. Nun habe ich in letzter Zeit vermehrt ein häufiges Zittern der Weichenservos an allen diesen Shields (es hat noch weitere davon mit gleichem Setup).
Das Zittern findet nur statt, wenn die Redbox eingeschaltet ist, d.h. wenn Signale von der Redbox kommen (normales Signalrauschen, d.h. keine Befehle von Rocrail, immer die gleichen 4 Befehler im Endlosmodus). Nun habe ich verschiedene Sachen ausprobiert mit folgenden Resultaten:
Die Servos zittern auch, wenn keine Stellkraft angelegt werden muss (d.h. der nackte Servo zittert, auch ohne Stellhebel).
Die Servos zittern auch, wenn sie separat aus einer anderen 5V spannungsquelle (Labornetzteil) versorgt werden, und nur Signalkabel und gemeinsame Masse vom Servo zum Shield gehen.
Die Servos zittern auch, wenn sie separat aus dem labornetzteil mit etwas mehr als 5V versorgt werden, z.B. 5.5V.
Am Shield liegt auch eine stabile 5V Spannung auf den Pins (mit Multimeter gemessen, Oszillograph habe ich nicht).
Die Servos zittern auch, wenn ich im Arduino einen reduzierten Code rauflade, ohne eine Zeile Code im Loop bereich. Es reicht, wenn ich die Servos initiiere über die Setup Routine.
Es zittern auch mittelgrosse, etwas teuereren Servos (Schwarze, etwas grösser als die blauen, steht Corona drauf, Typ meinte ich CS928BB Micro Servo, muss ich aber nochmals prüfen.
Es zittert NICHT der ganz grosse Servo, sowas wie das hier: MG995. Die sind aber ein bisschen zu gross und zu teuer, als dass ich sie massenhaft (ca. 30Stk) verbauen könnte, wenns denn anders geht.
Die Servos zittern auch, wenn ich im DCC Dekoder zwischen 5V und Gnd noch einen 100nF Glättungskondensator dazwischenlöte, wie es auf teils Schemas angegeben ist.
Die Servos zittern auch, wenn alle 3 Fahrbooster spannungslos geschaltet werden; d.h. von den Loks oder sollte es nicht kommen).
Die Servos zittern auch, wenn ich die 5V und GND für den DCC Dekoder aus einer separaten Spannungsquelle hole und nur den Signal Draht (und gemeinsame Masse) mit dem Arduino verbinde.

Ich habe sowohl das Shield wie auch den Nano schon ausgewechselt. Leider nicht viel besser. Gefühlt hat ein neuer Nano am Anfang sehr viel weniger Zittern verursacht, nach einigen Minuten war's aber wieder wie vorher.
Gefühlt hatte ich vor einigen Monaten viel weniger Zittern. Was sich seit da verändert hat, lässt sich nicht mehr evaluieren, haben v.a. umgebaut (musste umziehen).
Nun die Fragen:
Was könnte noch die Ursache für das Zittern sein und wie bringe ich es am einfachsten los?
Aus meiner Sicht regelt der Servo unnötig nach, weil er irgendwelche Signale vom Arduino erhält. Aber warum und welche?
Fehlen noch Infos?
Besten Dank für Ideen.
Grüsse
Guido


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau

Dateianlage:
Sie haben nicht die nötigen Rechte, um die angehängten Dateien zu sehen

thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#2 von JaM , 02.01.2022 00:49

Hallo Guido,

erst einmal Respekt zur ausführlichen Beschreibung und Fehlereingrenzung.

Ein Zittern ohne Stelländerung, wie von Dir beschrieben, kann ich mir nur vorstellen, wenn entweder
1) die Servo-Elektronik "bescheiden" ist oder
2) die Ruhepulse der Ansteuerung nicht ganz konstant sind.

Ich würde mich auf 2) konzentrieren, wenn Du es ausschließen kannst, bleibt wohl nur 1) übrig.

Für 2) spricht, dass es erst anfängt, wenn DCC-Signale empfangen werden, auch wenn sie nicht für den Empfänger gedacht sind. Ich könnte mir vorstellen, dass sich die Interrupts für die Timer der DCC-Decodierung und der Servo-Signal-Generierung gegenseitig leicht stören. Damit würde das Servo-Signal doch nicht immer exakt gleich in der Nutzlänge (1-2ms) sein.

Wenn Du kein Oszilloskop zur Verfügung hast, um den zeitlichen Verlauf der Servo-Ansteuerung zu sehen, würde ich folgendes versuchen:
- Keine Initialisierung der DCC-Bibliothek
- Testprogramm, das mit 2 Tastern/Signalen direkt am Arduino die Endlagen anfährt.

Wenn beides mal kein Zittern zu beobachten ist, spräche sehr viel für 2).

Abhilfe sehe ich durch Trennung in 2 Arduinos (DCC-Decoder und Servoansteuerung), die über einfachere Signale als DCC kommunizieren, oder durch ggf. "Low-Level"-Programmierung des AVR, um der Servo-Timer vor zeitlichen Einflüssen zu schützen (z.B. zu langen Interruptroutinen im DCC-Teil). Servoansteuerung ist leider zeitlich etwas anspruchsvoller als Magnetartikel oder LEDs von Signalen.

Viel Erfolg,
JaM


thagu hat sich bedankt!
JaM  
JaM
InterRegio (IR)
Beiträge: 150
Registriert am: 02.03.2006
Gleise K-Gleise
Steuerung CS2, MS2


RE: Zittern Servos mit Arduino Nano

#3 von thagu , 02.01.2022 09:08

Hallo JaM

super, besten Dank für deine schnelle, ausführliche und verständliche Antwort. ich werde mich mal dran setzen und den Setup ohne DCC durchführen; dann schauen, wie sich die Servos verhalten. Punkt 1) kann durchaus auch einen Einfluss haben, da die Servos ja doch so ziemlich die billigsten sind, was der markt hergibt. Interessant ist ja, dass es nicht immer gleich fest ist. Das mag mit Punkt 2) übereinstimmen, dass die Servosignal Generierung irgendwann mehr oder weniger aus dem Rhythmus kommt, eben weil gestört durch DCC Routine.
Für die Lösung mit Low-Level AVR Programmierung müsste ich mich dann wohl noch ein wenig einlesen. Oder ich versuch's mal mit anderen Servo- oder DCC-Bibliotheken. Hatte ev. jemand schon Versuche in diese Richtung gemacht? Da ich öffentlich Bibliotheken und "normale" Nanos und "gängige" Servos verwende, dürfte dies ev. schon anderswo aufgetaucht sein?

So oder so, ich mach mich mal dran, weiter einzugrenzen :-)

Grüsse,
Guido


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#4 von Domapi , 02.01.2022 09:13

Meine Arduino-Servodekoder funktionieren zitterfrei.

Nach jeder Servobewegung schalte ich das PWM-Signal wahlweise ab. Manche Servotypen zittern auch dann nicht, wenn das PWM-Signal attached bleibt.
Detach ist jedoch der Standardfall.

Die PWM-Leitung habe ich mit 4,7k an +5V gelegt. Das scheint auch zu helfen.

Manchmal liegt es auch am Timing des PWM-Signals. Versuche mal, nur einen einzigen Servo anzusteuern; also alle anderen im Programm auzukommentieren.
Und achte auf die Speichernutzung des Sketches. Evtl. nutzt du zuviel SRAM-Variablenspeicher und es kommt zu Stabilitätsproblemen.
Ggf. Texte und Konstanten in den Programmspeicher verlagern z.B. mit F()-Makro oder PROGMEM-Anweisungen.

Man kann auch den Servo über einen MOSFET separat ein-/ausschalten. Das war bisher bei mir nicht notwendig; kostet ja auch wertvolle Pins …


Viele Grüße
Martin

- Mein Trennungsbahnhof: viewtopic.php?f=64&t=152275
- Drehscheibensteuerung auf Arduinobasis "LocoTurn": https://wiki.mobaledlib.de/anleitungen/b...v10/150_inhalte


thagu hat sich bedankt!
 
Domapi
CityNightLine (CNL)
Beiträge: 1.634
Registriert am: 22.09.2015
Ort: Nämberch
Gleise Ohne Pickel
Spurweite H0
Steuerung Mit Hirn und Verstand
Stromart DC, Digital


RE: Zittern Servos mit Arduino Nano

#5 von thagu , 02.01.2022 09:17

Hallo Martin

auch dir danke für deinen Input. Bei meinem aktuellen Problem geht's primär um Servos, die nicht über PWM sondern direkt mit der Servo8 Bibliothek angesteuert werden (ich hoffe, ich liege mit meiner Interpretation richtig.. oder ist alles sowieso PWM, sobald's mit Arduino zu Servos kommt?). PWM habe ich auch, auch die Zittern teilweise, aber lange nicht so arg wie die anderen und da hilft austauschen des Servos - da gibt's vermutlich Qualitätsunterschiede in der Fertigung.

Grüsse,
Guido


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#6 von thagu , 02.01.2022 09:17

.. was ich aber noch probieren werde, ist die 5V Leitung mit einem Widerstand zu ergänzen. Ev. hilfts ja auch zwischen DCC Dekoder und Arduino Input Pin 2.


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#7 von thagu , 02.01.2022 09:21

Zitat von Domapi im Beitrag #4
Manchmal liegt es auch am Timing des PWM-Signals. Versuche mal, nur einen einzigen Servo anzusteuern; also alle anderen im Programm auzukommentieren.
Und achte auf die Speichernutzung des Sketches. Evtl. nutzt du zuviel SRAM-Variablenspeicher und es kommt zu Stabilitätsproblemen.
Ggf. Texte und Konstanten in den Programmspeicher verlagern z.B. mit F()-Makro oder PROGMEM-Anweisungen.


Hierzu noch:
- 1 Servo alleine zittert auch
- speichernutzung ist relativ intensiv, aber nicht mehr am Limit, nach einigen Optimierungen.:

1
2
 
Sketch uses 21462 bytes (69%) of program storage space. Maximum is 30720 bytes.
Global variables use 800 bytes (39%) of dynamic memory, leaving 1248 bytes for local variables. Maximum is 2048 bytes.
 



- F-Makro verwende ich bereits (teilweise); Beispiel:

1
2
3
4
5
6
7
8
 
 if (myID == 0) // schreibe Spaltenüberschriften
{
Serial.print(F("Servo\t")); Serial.print(F("Pin\t")); Serial.print(F("DCC #\t"));
Serial.print(F("Min\t")); Serial.print(F("Max\t")); Serial.print(F("Mem\t")); Serial.print(F("Akt Winkel\t")); Serial.println(F("Servo Status"));
}
Serial.print(myID); Serial.print("\t"); Serial.print(pinNummer); Serial.print("\t"); Serial.print(DCCaddress); Serial.print("\t");
Serial.print(offAngle); Serial.print("\t"); Serial.print(onAngle); Serial.print("\t"); Serial.print(storedLastPosition); Serial.print("\t"); Serial.print(angle); Serial.print("\t\t");

 


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#8 von Domapi , 02.01.2022 09:27

Servos werden immer mit einem PWM-Signal angesteuert, i.d.R. 50 Hz.

https://dronebotworkshop.com/servo-motors-with-arduino/

Ich selbst nutze die Standard Servo.h Library.


Viele Grüße
Martin

- Mein Trennungsbahnhof: viewtopic.php?f=64&t=152275
- Drehscheibensteuerung auf Arduinobasis "LocoTurn": https://wiki.mobaledlib.de/anleitungen/b...v10/150_inhalte


 
Domapi
CityNightLine (CNL)
Beiträge: 1.634
Registriert am: 22.09.2015
Ort: Nämberch
Gleise Ohne Pickel
Spurweite H0
Steuerung Mit Hirn und Verstand
Stromart DC, Digital


RE: Zittern Servos mit Arduino Nano

#9 von Domapi , 02.01.2022 09:33

Die Speicherausnutzung ist doch recht moderat!

Falls du noch mehr Programmspeicher brauchst, musst du den Bootloader tauschen, Stichwort OPTIBOOT-Bootloader.
Damit bekommst du ca. 1,5 KByte extra.

Ich schaue mit später den Sketch mal an. Geht am iPad nicht …

Verwendest du delays() im Ablauf?

Werfe mal testweise alle Serial.prints und Serial.begin raus. Die sorgen manchmal auch für Unruhe.


Viele Grüße
Martin

- Mein Trennungsbahnhof: viewtopic.php?f=64&t=152275
- Drehscheibensteuerung auf Arduinobasis "LocoTurn": https://wiki.mobaledlib.de/anleitungen/b...v10/150_inhalte


 
Domapi
CityNightLine (CNL)
Beiträge: 1.634
Registriert am: 22.09.2015
Ort: Nämberch
Gleise Ohne Pickel
Spurweite H0
Steuerung Mit Hirn und Verstand
Stromart DC, Digital

zuletzt bearbeitet 05.01.2022 | Top

RE: Zittern Servos mit Arduino Nano

#10 von thagu , 02.01.2022 09:37

Zitat von Domapi im Beitrag #9
Verwendest du delays() im Ablauf? Geht am iPad nicht …


Delays habe ich nur beim Setup. Das Zittern besteht auch, wenn ich in der Loop Routine nichts drin habe, d.h. der Code im Loop spiel keine Rolle, Setup reicht schon. Und wie ich verstanden habe, wird Setup nur einmal ausgeführt, danach nicht mehr. Also dürfte es nach meinem Verständnis gar nicht am Code selbst liegen. Seid ihr gleicher Meinung?


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#11 von Janus , 02.01.2022 10:40

Hallo!

Nach allem was du so schreibst, liegt es wohl am Servo! Billige Servos haben auch billige Potentiometer für die Positionserkennung.
Wenn die schlecht sind, kommt es zu diesem Zittern. Einfach mal ein gutes Modellbauservo testweise anschließen.
Wenn man an den Servos spart, spart man am falschen Ende. Vor allem weil gute Markenservos auch nicht die Welt kosten.

Falls du in Zukunft noch mehr vorhast mit Arduino und Co., dann solltest du eventuell mal die Anschaffung eines Digitalen Oszillographen in Erwägung ziehen.
Damit kannst du die Qualität der Signale mit einem Blick beurteilen. Ab 150€ gibt es brauchbare, ab 300€ richtig gute.

Jan


Janus  
Janus
InterRegioExpress (IRE)
Beiträge: 435
Registriert am: 16.10.2021
Ort: Rosenheim
Spurweite H0
Stromart AC, Digital


RE: Zittern Servos mit Arduino Nano

#12 von e69-fan ( gelöscht ) , 02.01.2022 10:57

Hallo Janus,

Zitat von Janus im Beitrag #11
Wenn man an den Servos spart, spart man am falschen Ende. Vor allem weil gute Markenservos auch nicht die Welt kosten.


Kannst Du hier mal welche empfehlen? Das Problem ist ja schon öfters aufgetreten.

Servus - Wolfgang


e69-fan

RE: Zittern Servos mit Arduino Nano

#13 von oliwel , 02.01.2022 11:43

Hallo Guido,

Zitat von Domapi im Beitrag #4

Nach jeder Servobewegung schalte ich das PWM-Signal wahlweise ab. Manche Servotypen zittern auch dann nicht, wenn das PWM-Signal attached bleibt.


Ich nutze einen Arduino mit billigst Servo für mein Car System, da die Abzweigung ihre Position auch ohne Stellkraft hält, schalte ich nach 250ms den Servo mit detach wieder ab. Dadurch kann ich sogar mir dem OnBoard Spannungsregler die 5V für den Servo erzeugen und komme ohne externe Regler aus.

Davor hatte ich die gleichen Probleme mir Zittern und teils fiese Spikes in der Stromaufnahme.

Oli


Spielbahner, Mä-Digital HO, 15qm Rahmenbau, Planungsphase, Rohbau, Graswurzel-Phase
Bautagebuch mit Bildern: http://www.oliwel.de/category/meine-modellbahn/
SBH und Blocksteuerung mit Bremsautomatik: viewtopic.php?f=7&t=187666


 
oliwel
InterCity (IC)
Beiträge: 891
Registriert am: 23.11.2014
Homepage: Link
Ort: Oberbayern
Gleise Mä K-Gleis
Spurweite H0
Steuerung CS3+, MobaLedLib, Selbstbau
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#14 von Domapi , 02.01.2022 12:15

Zitat von Janus im Beitrag #11
Hallo!

Nach allem was du so schreibst, liegt es wohl am Servo! Billige Servos haben auch billige Potentiometer für die Positionserkennung.
Wenn die schlecht sind, kommt es zu diesem Zittern. Einfach mal ein gutes Modellbauservo testweise anschließen.
Wenn man an den Servos spart, spart man am falschen Ende. Vor allem weil gute Markenservos auch nicht die Welt kosten.

Jan


Das mit den "schlechten" Potis ist zwar korrekt, jedoch laufen bei mir i.d.R. alle Arten von Servos ohne zu zittern.
Der hitec MC-1811 (kostet ein paar €) ist so eine Ausnahme: einige Exemplare zittern, andere wieder nicht.

Der SG90 und seine zahlreichen Klone funktionieren einwandfrei. Und das ist ja wirklich der Billigheimer.


Viele Grüße
Martin

- Mein Trennungsbahnhof: viewtopic.php?f=64&t=152275
- Drehscheibensteuerung auf Arduinobasis "LocoTurn": https://wiki.mobaledlib.de/anleitungen/b...v10/150_inhalte


 
Domapi
CityNightLine (CNL)
Beiträge: 1.634
Registriert am: 22.09.2015
Ort: Nämberch
Gleise Ohne Pickel
Spurweite H0
Steuerung Mit Hirn und Verstand
Stromart DC, Digital


RE: Zittern Servos mit Arduino Nano

#15 von fbstr , 02.01.2022 12:59

Zitat von Domapi im Beitrag #14
Der SG90 und seine zahlreichen Klone funktionieren einwandfrei. Und das ist ja wirklich der Billigheimer.


Ich kann Martin bestätigen. Ich habe nur die SG90-Servos im Einsatz und mit der Steuerng über die MobaLedLib (und früher den MobaTools) zuckt oder zittert da kein einziges.


Gruss
Frank
---------------------------------------------------------------------------------------------------------------------
MobaLedLib Wiki
Projekt "Bahnpark Augsburg"
Stummitreff BB: jeden 3. Freitag im Monat im Haus Sommerhof in Sindelfingen


 
fbstr
Metropolitan (MET)
Beiträge: 2.523
Registriert am: 28.08.2016
Ort: Stuttgart
Gleise Peco Code 75, Trix C
Spurweite H0, H0e
Steuerung YD7001, MobaLedLib, MirZ21, Lenz LZV100
Stromart DC, Digital


RE: Zittern Servos mit Arduino Nano

#16 von volkerS , 03.01.2022 20:55

Hallo Guido,
wenn Servos schon ohne Last zittern kann dies normalerweise nur am PWM-Signal auf der gelben/weißen Ader liegen. Entscheidend ist dabei nicht der zeitliche Abstand des Pulses, dieser darf durchaus zwischen 11sec und 22msec schwanken (Standart sind 20msec (50Hz)). Entscheidend ist die Konstanz der Länge des Pulses der die Stellung des Servoarmes bestimmt. Dabei gibt es verschiedene Betriebsmodi. Low: Pulsbreite zwischen 1,1msec und 1,9msec; Mid: 1,0 bis 2msec und High: Pulsbreite zwischen 0,9 und 2,1msec. Letztlich wird damit nur der maximal mögliche Hebelweg definiert. Schwankt nun die Länge des Pulses nur minimal wird dies zwangsläufig in Servoarmbewegungen umgesetzt. Ursache ist die Art der Impulserzeugung im Programm. Es gibt reine Softwarelösungen und die Verwendung von speziellen Busteinen (PWM-Timer) innerhalb des uCs. Auch die Konfiguration des Ausgangspins kann Einfluß haben. Push-Pull funktioniert immer, Open Kollektor-Ausgänge können schon selbst Probleme verursachen wegen der Umladezeit des Ausgangssignals. Hier hilft dann der 4k7-Widerstand gegen +5V.
Um dem Problem auf die Spur zu kommen müsstest du ein Messgerät haben dass die Periodenlänge jedes einzelnen Impulse möglichst usec besser noch nsec genau messen kann.
Volker


thagu hat sich bedankt!
volkerS  
volkerS
ICE-Sprinter
Beiträge: 5.981
Registriert am: 14.10.2014


RE: Zittern Servos mit Arduino Nano

#17 von thagu , 04.01.2022 12:58

Hallo zusammen,
danke nochmals für die breite Unterstützung.
Es beruhigt mich zu hören, dass die SG90 Servos nicht grundsätzlich von einem zitterfreien Leben befreit sind :-)
ich habe nun noch weitere Tests gemacht:
- Das Zittern tritt nicht auf, als ich die DCC Prozesse nicht initialisiert --> deutet auf das Problem mit den Interrupts und den zeitlichen Verzögerungen hin
- Detach hilft, und geht :-) D.h. die Trägheit der Servos reicht um den Stellhebel in Position zu halten.

Ich denke, Detach wird nun der einfachste Lösungsweg sein (statt irgendwie zu probieren, das Timing des Arduinos zu verbessern, was ohne Osizilloskop schwierig wird).
Ich habe nun noch einen Bug in der Software, sodass alles abstürzt, sobald eine Weiche über das externe PWM Shield (nicht über das Servoshield) angesprochen wird, aber das werde ich auch noch schaffen. Dann roll ich das Script auf die ganze Anlage aus und melde mich wieder mit dem Ergebnis.

Beste Grüsse,
Guido


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


RE: Zittern Servos mit Arduino Nano

#18 von Domapi , 04.01.2022 14:33

Soweit ich deinen Sketch noch in Erinnerung habe, nutzt du nicht die NMRA DCC-Library.

Mit der mynabay-Umsetzung bin ich nicht so recht warm geworden.

Hier habe ich mal einen Sketch gepostet (recht rudimentär), evtl. hilft er dir weiter.

👍 Rund übers Eck - Wiederaufbau ‼️ (8)

Poste doch mal einen Schaltplan, damit man dein Konzept besser versteht.


Viele Grüße
Martin

- Mein Trennungsbahnhof: viewtopic.php?f=64&t=152275
- Drehscheibensteuerung auf Arduinobasis "LocoTurn": https://wiki.mobaledlib.de/anleitungen/b...v10/150_inhalte


 
Domapi
CityNightLine (CNL)
Beiträge: 1.634
Registriert am: 22.09.2015
Ort: Nämberch
Gleise Ohne Pickel
Spurweite H0
Steuerung Mit Hirn und Verstand
Stromart DC, Digital


RE: Zittern Servos mit Arduino Nano

#19 von bertr2d2 , 05.01.2022 18:42

Hallo,

Zitat
Um dem Problem auf die Spur zu kommen müsstest du ein Messgerät haben dass die Periodenlänge jedes einzelnen Impulse möglichst usec besser noch nsec genau messen kann.


elegant und preiswert geht sowas mit einem Logic Analyzer - die sind auch nicht mal teuer (weniger als 10€):

günstig zu bekommen bei ebay.
Sigrok hat u.a. auch einen PWM Decoder. DCC Dekoder gibt es obendrein

Gruß

Gerd

PS: DCC Update


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.545
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital

zuletzt bearbeitet 05.01.2022 | Top

RE: Zittern Servos mit Arduino Nano

#20 von thagu , 14.01.2022 21:36

Hallo zusammen

das Detachen hat wunderbar geklappt. Kein Zittern mehr, Problem gelöst, alleine mit Code und ohne Ersetzen von teuerer Hardware.

Besten Dank allen, die mitgeholfen haben.

Grüsse,
Guido


Redbox mit internem Booster, PC und TAMS Weichedecoder und Rückmelder. Märklin Rollmaterial, Mittelleiter C- und K-Gleis, ESU Lopi 4.0 M4
Anlagenplanung
Anlagenbau


thagu  
thagu
Regionalbahn (RB)
Beiträge: 48
Registriert am: 26.12.2016
Ort: Baar
Gleise Märklin K-Gleis
Spurweite H0
Steuerung Vollautomatisch, Rocrail, Redbox
Stromart Digital


   

Wie ein DB Vorsignal mit Rocrail einrichten?
NextGen the virtual sound ESU sound decoder

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz