Gibt es Servos, die nicht Arduino-Kompatibel sind?

Hallo zusammen, ich bin ein absoluter Arduino-Anfänger und habe ein Problem mit MG90S Servos, die ich für diesen Quadruped mePed v2 Quadruped Robot by SpierceTech - Thingiverse bei Amazon gekauft habe.

Weil ich dachte, dass Servos mit Metallgetriebe haltbarer sind, habe ich die noch billigeren SG90 dafür nicht genommen. Leider bewegt sich der Quadroped mit den 8 Servos vollkommen wirr.

Wenn ich aber einen dieser Servos mit 6V an einen Servotester anschließe, dann macht er genau das was man erwartet. Er stellt sich auf die Mitte, fährt automatisch hin und her und er läßt sich auch mit dem Poti des Servotesters drehen.

Wenn ich ihn aber über diesen Code am Arduino Nano mit Sensor Shield laufen lasse (auch bei 6V), dann macht er wieder vollkommen wirre Bewegungen:

// Include the servo library:
#include <Servo.h>

// Create a new servo object:
Servo myservo;

// Define the servo pin:
#define servoPin 9

// Create a variable to store the servo position:
int angle = 0;

void setup() {
  // Attach the Servo variable to a pin:
  myservo.attach(servoPin);
}

void loop() {
  // Tell the servo to go to a particular angle:
  myservo.write(90);
  delay(1000);
  myservo.write(180);
  delay(1000);
  myservo.write(0);
  delay(1000);

  // Sweep from 0 to 180 degrees:
  for (angle = 0; angle <= 180; angle += 1) {
    myservo.write(angle);
    delay(15);
  }

  // And back from 180 to 0 degrees:
  for (angle = 180; angle >= 0; angle -= 1) {
    myservo.write(angle);
    delay(30);
  }
  delay(1000);
}

Ein SG90 macht an den Arduino Nano/Sensor Shield genau das, was in dem Code steht. Der Code wird also stimmen.

Kann es sein, dass die MG90S Servos eigentlich in Ordnung sind, weil sie ja am Servotester funktionieren, aber nicht kompatibel mit Arduino sind? Oder müssten die auch am Arduino funktionieren und sind daher defekt?

Hier gibt es Unterlagen.
Vergleichen und danach abarbeiten.

Wenn du probierst die 8 Servos über den 5V-Anschluss des Arduino mit Strom zu versorgen
das geht nicht. Die ziehen viel mehr Strom als der Arduino liefern kann.

Du must eine extra Spannungsversorgung benutzen. Diese extra Spannungsversorgung sollte bei 8 MG90S Servos wenigstens 2A besser 3A liefern können.

Wenn eine externe Stromversorgung benötigt wird dann must du die Minusleitungen
von externer Stromversorgung und "GND" vom Arduino miteinander verbinden.

vgs

Macht er nicht

Da steht der Strombedarf
grafik
Wenn alle Servos gleichzeitig bockieren sind wir bei 8 x 0,7 A = 5,6A

Was liest Du aus dem Sketch?
Was ist alle?
Die Beschreibung war doch klar.

Das scheint ein Testcode zu sein aber nicht der Code der 8 Servos ansteuert

vgs

Wenn Du nicht falsch zitieren würdest, wüsstest Du was da steht. Aber wenn Du Dich darüber zerfetzt,

dann darf ich auch.

Für den Testcode habe ich jeweils nur einen Servo an den Nano angeschlossen, also einmal den MG90S und danach einmal den SG90.

Nachdem der MG90S auch hier wieder so wirre Bewegungen machte, habe ich nur seine Signalleitung an den Pin9 des Nano angeschlossen und ihn extern mit 6V versorgt. Leider mit dem gleichen Ergebnis (nur etwas kräftiger wirr...).

In meinem ersten Post ist ein Fehler in meiner Beschreibung: Beim Testcode hatte ich den Nano nicht auf den Sensor-Shield gesteckt. Den Servo hatte ich also direkt an den Nano angeschlossen.

Am Quadruped habe ich den Nano auf dem Sensor-Shield gesteckt, an dem ich die 8 Servos angeschlossen habe. An den Sensor-Shield habe ich ein 6V Netzteil anangeschlossen.

Dass die 8 Servos zuviel Strom ziehen, scheint mir einleuchtend zu sein. Aber andererseits meine ich, dass der Designer des Quadruped das auch so anschließt, nur nicht mit Netzteil, sondern 4 AA Batterien. Auch der Testcode zeigt ja, dass der einzelne MG90S selbst mit 6V extern schon nicht sauber läuft, während der SG90 keine Probleme macht. Der MG90S läuft nur am Servotester vernünftig.

Da ich mir eigentlich nicht vorstellen kann, dass ich 8 defekte MG90S bekommen habe, hatte ich gedacht, dass vielleicht nicht jeder Servo für Arduino geeignet ist... Oder gibt es sonst noch eine andere Erklärung dafür?

Das widerspricht der Datenblattangabe "Maximum Drehwinkel: 90°."

Versuche mal kleinere Winkel.

Das kann nicht funktionieren. Die Masse des Arduino muß mit dem Minuspol der Servo-Versorgungsspannung verbunden werden.

Grüße Uwe

Habe jetzt viel getestet und bin zu dem vorläufigen Ergbnis gekommen, dass wahrscheinlich das Sensor-Shield die Ursache für die Probleme ist (neben meiner Unkenntnis). Ich hatte vorher die einzelnen Servos doch mit dem Sensor-Shield getestet, sorry für die Verwirrung.

Nachdem ich mal testweise und ohne Erfolg den Drehwinkel im Code geändert hatte, habe ich den MG90S jetzt mal direkt an einen UNO angeschlossen und da funktioniert er einwandfrei. Dort schafft er auch die 180°.

Nachdem ein Servo auch am Nano (ohne Sensor-Shield) funktionierte, war ich mal so mutig (dumm) 4 Servos an den Nano anzuschließen. Den Nano hatte ich über USB an meinen Rechner angeschlossen. Die Servos drehten sich nicht und nach kurzer Zeit stank es verschmort...ich hoffe, das kam vom Nano und nicht von meinem Rechner...

Habe ein Steckernetzteil mit einem Ausgang von 5V / 3,8 A. Könnte das für die 8 Servos reichen? Eigentlich müssten doch auch 4 AA Batterien gehen, die sind ja für den Quadruped vorgesehen?!

Könnte der Anschluß, so wie auf dem Bild funktionieren?

Edit: Bild geändert.

Da steht der Strombedarf
grafik

bei Normalbetrieb 8 * 0.25A = 4A
Dann würde ich mir aber gleich noch einen 10er Pack Schmelzsicherungen kaufen oder im Datenblatt zum Netzteil nachschauen ob da explizit drinsteht Überlastfest und Kurzschlussfest.

Nein der Anschluss wie auf dem Bild funktioniert bei größeren Strömen
nicht!
Die Federkontakte von Breadboards sind nicht auf hohe Ströme ausgelegt. maximal 1A aber kleine 4A
Auch die Jumperkabel sind so dermaßen dünn das du da einen merkbaren Spannungsabfall haben wirst.

Bei vier AA-Batterien (Mignon) kommt es darauf an was das genau für Batterien /Akkus sind. Billige 1,5V Trockenbatterien haben einen vergleichswiese hohen Innenwiderstand da bekommt man keine 4Ampere rausgezogen.
Bei NiMH-Akkus sieht das schon ganz anders aus. Da könntest du auch aus Mignonzellen auch 8A rausziehen.

Für den Anschluss höherer Ströme empfehle ich diese Stecker hier

Als provisorische und trotzdem feste Verbindung empfehle ich die Wagoklemmen
Die gibt es im Onlinehandel und auch im Baumarkt
auch als 3er oder 5er
https://www.hornbach.de/shop/Wago-221-412-Compact-Verbindungsklemme-4-mm-2-Leiter-alle-Leiterarten-10-Stueck/5842174/artikel.html
Hebel rauf - abisoliertes Kabel reinstecken - Hebel runter - fest
vgs

Hallo Stefan,
die verwende ich gerne auch selbst (bis 6S und etwa 50A).
Für die 8 Servos halte ich die aber für überdimensioniert, da sollten lt. der Hochstrom-Stecker-Übersicht von Gerd Giese auch die XT30 locker reichen (25A Dauer).


Gruß Walter

Ich habe die Standard eneloop AA Akkus mit 1900 mAh und Wago 2273.... Mir ist aber ehrlich gesagt nicht ganz klar, wie ich das, vom Aufbau her, realisieren soll. Sind die Anschlüsse auf dem Bild vom Prinzip richtig?

Das kann man auf deinem Bild nicht vollständig sehen weil man die Servos nicht sieht.
Es sollte so aussehen

XT30 kostet mehr

zumindest bei diesem shop

vgs

Im Prinzip schon. nur was wir sagen ist, den Strom zwischen Batterie und Servos nicht über das Steckbrette führen sollst, da die Kontakte diesen hohen Strom nicht verkraften.

Grüße Uwe