Mehrere Servos und Arduino zappeln herum

Gast #5661626
Lesenswert?
• ▲
▼
Hallo,

ich versuche gerade mit einem Arduino 5 Servos zu steuern. Das 
Schaltbild sieht so aus

https://github.com/sky4walk/RoboterArm/blob/master/Arduino/RobotArmArduino_Steckplatine.png

und das Skript dazu so

https://github.com/sky4walk/RoboterArm/blob/master/Arduino/RobotArmArduino/RobotArmArduino.ino

Leider beginnen die Motoren wie wild nach dem Einschalten rumzuzappeln, 
ohne, dass ich irgendeinen Positionsbefehl weiter absetze.

Stecke ich alle Motoren bis auf einen ab, so bewegt der Servo, wie ich 
es erwarten würde. Nehm ich noch einen Servo hinzu, beginnt der Zweite 
beim Ansteuern des Ersten zu zappeln.

Ich hab auch schon mit unterschiedlichen getrennten Stromversorgungen 
experimentiert, zB Batterien oder dergleichen.

Die Servos sind die folgenden:

3x Servomotoren Adafruit MG995R Conrad 1142
2x Servomotor %VDC TowerPro SG92R 169

Ich verwende für den Arduino die Servo.h Bibltiothek.

Hat jemand eine Idee?

Vielen Dank
André
Gast #5661672
Lesenswert?
• ▲
▼
> Ich verwende für den Arduino die Servo.h Bibltiothek.
>
> Hat jemand eine Idee?
>
> Vielen Dank
> André

Hallo,

eine Idee wäre, dass die Refresh Funktion der Servo Objekte nicht 
aufgerufen wird. Ein Blick in die Servo.h verrät:
    static void refresh();    // must be called at least every 50ms or 
so to
                                 keep servo alive
                              // you can call more often, it won't 
happen
                                 more than once every 20ms

Und wenn du Dir den Code in der Loop Schleife deines Programms ansiehst, 
dann steht dort nirgend wo ein Aufruf der Refresh Funktion der Servos.

Auch das 500 ms delay (delay(MOVE_DELAY)) am Ende der Loop ist nicht 
gerade dienlich für die Ansteuerung der Servos.
Gast #5661678
Lesenswert?
• ▲
▼
Ich würde mir mal die Stromversorgung anschauen. Der 5V Ausgang vom 
Arduino Board ist nicht so hoch belastbar, wie es ein Servo verlangt - 
schon gar nicht fünf Servos). Dazu kommt, dass die Kontakte der 
Steckbretter meist einen nicht zu vernachlässigenden Übergangswiderstand 
haben.

Verwende ein Netzteil oder Batterien und schließe da die Servos direkt 
an (über eine kleine Platine mit Stiftleisten und Schraubklemmen). Pro 
Servo würde ich 1 Ampere einplanen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.