Servomotor dreht sich nicht ohne Druck

Bitte verzeihen Sie mir die Naivität, die ich hier mit Sicherheit an den Tag legen werde. Ich bin hauptsächlich ein Software-Typ, also ist dieses Projekt ein wenig außerhalb meiner Komfortzone. Nichtsdestotrotz:

Projekt

Ich habe ein Python-Skript erhalten, das Befehle an ein Arduino-Board sendet, das wiederum einen Servomotor antreibt und eine Platte dreht, an der es befestigt ist.

Wenn ich dieses Skript ausführe, soll die Platte 1 volle Umdrehung machen.

Problem

Der Motor dreht sich nicht. Das Skript funktioniert und der Arduino bekommt die richtigen Befehle, aber die Platte sitzt einfach. Hier ist der erwartete Arbeitsablauf:

  • Skript ausführen
  • Motor dreht
  • Platte um 360 Grad drehbar

Hier ist der einzige Workflow, den ich zum Laufen bringen kann:

  • Skript ausführen
  • Geben Sie der Platte einen Schubs
  • Motor dreht
  • Platte dreht sich um 360 Grad

Hintergrund

Es gibt nichts, was den Motor oder die Platte behindert. Genau dieses Setup hat angeblich in der Vergangenheit funktioniert. Da ich nicht viel Erfahrung mit Arduinos und Servos habe, fällt es mir schwer, genau zu bestimmen, wo ich mit dem Debuggen dieses Problems beginnen soll. Jede mögliche Hilfe oder Vorschläge würden am meisten geschätzt.

Hardware

Weitere Tests

Ungefähr einmal von 5 Mal (20%) wird es einfach funktionieren. Kein Drücken oder Stoßen; Es wird einfach auf Geschwindigkeit beschleunigt und dreht sich.

Ungefähr alle 50 Mal (2%) bewegt es sich überhaupt nicht, selbst wenn man drückt. Dies könnte jedoch ein Problem mit der Skript/Arduino-Kommunikation sein.

Klingt so, als hätte das Servo Schwierigkeiten beim Starten. Der Anlaufstrom ist wahrscheinlich viel höher und Sie schieben ihn weiter, um ihm zu helfen. Was ist das Netzteil, das Sie verwenden? Kann es sein, dass es unter Strom steht?
@Kellenjb Ich habe die spezifische Hardware hinzugefügt. Es sieht so aus, als ob es definitiv stark genug sein sollte, um die Platte anzutreiben.
Besteht die Möglichkeit, dass Sie ein Zielfernrohr haben, das Sie an den Stromleitungen anbringen können, um zu sehen, was mit der Spannung passiert, wenn sie sich nicht bewegt?
Nicht ohne einige Dinge zu demontieren, zu deren Demontage ich nicht befugt bin. Wenn ich meinem Senior vielleicht versichern könnte, dass es sich um ein Hardwareproblem handelt, wäre er bereit zu helfen, aber zuerst müsste ich sicher sein.
Ich kann mir nicht vorstellen, dass dies ein reines Softwareproblem sein könnte. Reine Softwareprobleme lassen sich selten, wenn überhaupt, umgehen, indem man der Hardware einen Schubs gibt.
Besorgen Sie sich ein Y-Kabel für das Servokabel im Hobby- oder Versandhandel. (Dies ist ein EXTREM Standardteil.) Damit können Sie die Strom- und Steuerleitungen zum Servo mit einem Zielfernrohr prüfen und sehen, was wirklich passiert. Normalerweise wird die mittlere Leitung geerdet, mit +5 und Kontrolle auf zwei äußeren Leitungen, aber ein paar Sekunden mit einem Multimeter werden Ihnen Gewissheit geben.
Das ist ein ERNSTHAFT kräftiges Servo. Ich wäre überrascht, wenn Sie das Netzteil nicht überlasten würden. Wie schwer ist die Platte? Möglicherweise benötigen Sie einige Drucklager, um die Dinge in einer Linie zu halten.

Antworten (2)

Lassen Sie mich zunächst sagen, dass Sie nicht genügend Informationen gegeben haben, um mit Sicherheit sagen zu können, was das Problem verursacht. Eigentlich keine große Sache, außer dass Sie verstehen müssen, dass meine Antwort möglicherweise nicht 100% richtig ist.

Der Link zur Hobbico-Website gibt nicht viele Informationen über dieses Servo. Ich "denke", dass es sagt, dass es 0,7 Ampere ziehen wird, wenn es ohne Last läuft. Wenn dies der Fall ist, dann können Sie davon ausgehen, dass es beim Start oder mit einer Last (auch bekannt als Platte) mehr als 0,7 Ampere verbraucht. Diese Strommenge erscheint mir angesichts der Größe des Servos nicht hoch.

Was wir nicht wissen, ist, wie viel mehr als 0,7 Ampere das Servo verbraucht. Eine gute Schätzung ist "viel mehr als 0,3 Ampere mehr". Dies bedeutet, dass Sie wahrscheinlich mehr Strom ziehen, als das 1-Ampere-Netzteil liefern kann.

Es gibt mehrere Dinge, die passieren können, wenn der Servo versucht, mehr Strom zu verbrauchen, als verfügbar ist. Die Chancen stehen gut, dass eines oder mehrere dieser Dinge passieren:

  • Der Ausgang des Netzteils (PS) fällt ab, was zu einem Drehmomentverlust im Servo führt. Dadurch bleibt das Servo hängen, bis es gedrückt wird.
  • Der PS-Ausgang fällt ab, wodurch die Steuerelektronik im Servo zurückgesetzt wird.
  • Der PS-Ausgang fällt ab, was dazu führt, dass das Arduino-Board blockiert oder zurückgesetzt wird.
  • PS erkennt einen Fehler und schaltet ab. Es kann sich sofort oder nach einer Weile oder gar nicht wieder einschalten, bis es ausgesteckt und wieder eingesteckt wird.
  • PS wird beschädigt.

Der einfache Weg, um festzustellen, ob dies der Fall ist, besteht darin, ein O-Scope am Ausgang der Stromversorgung anzubringen. Während Sie das O-Scope draußen haben, können Sie sich auch andere Signale ansehen, wie die Signale, die zum Servo gehen. Sie könnten auch ein anderes, leistungsfähigeres Netzteil ausprobieren, aber das ist weniger informativ.

Vor vielen Jahren habe ich eine 555-Schaltung gesteckt, um ein Standard-Servo von Tower Hobbies zu steuern. Unter normalen Bedingungen zog das Servo etwa 250 mA in Bewegung. Beim "Summen" (instabil) zeichnete es Spitzen von einem halben Ampere und mehr.

Was ich gelernt habe: 1. Servos ziehen viel Saft, um die Welle durch das Getriebe zu drehen. Ich würde niemals in Betracht ziehen, ein Standardservo von einer Stromversorgung zu betreiben, die nicht mindestens 1 Ampere kontinuierlich PRO SERVO liefern kann. 2. Servos legen viel Müll auf ihre Stromversorgungskabel. Ich würde niemals in Betracht ziehen, ein Standardservo zu betreiben, ohne ungefähr 250 uF an JEDEM Servo über die Versorgungsleitungen zu legen, um den Müll zu überschwemmen (und den Anlaufstrom zu liefern).

Die Servos, mit denen ich mich befasst habe, waren mit 5-V-Versorgungen zufrieden.

Wenn Sie sich das Hobbico-Datenblatt ansehen, benötigt Ihr Servo, wie der andere sagte, 700 mA (0,7 A) in kontinuierlicher Bewegung ohne Last. Das ist ungefähr das Dreifache dessen, was ein Standard-Servo will. Ihre Versorgung ist für 1 A ausgelegt. Mein Bauchgefühl ist, dass Ihre Stromversorgung bei weitem nicht stark genug ist, um den Einschaltstrom des Servos zu liefern und die Prozessorplatine bei Laune zu halten. Wenn Ihr System mit einer 5-V-Versorgung betrieben wird, würde ich diese 6-V-, 1-A-Versorgung gegen eine lineare 5-V-, 3-A-Versorgung austauschen. (Die waren früher fast kostenlos erhältlich.) Zumindest würde ich mehrere hundert uF über die Servostromleitungen legen.