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?
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.
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?
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?
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
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).
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?
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.