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