Externe Stromversorung für Servos??

Hallo zusammen. Ich bin gerade dabei meine ersten Gehversuche mit dem Arduino zu machen. Ich habe jetzt 3 Servos angeschlossen. Siehe dazu auch das Foto. Bisher habe ich zum Testen den Arduino auch immer nur über USB mit Spannung versorgt.

Wenn ich versuche obige Kombination in Betrieb zu nehmen, ruckeln alle Servos nur wie wild rum. Für mich sieht das ganz klar nach Spannungseinbruch aus. Jetzt war ich vorhin schnell im Conrad und habe mir so einen Stromstecker gekauft um nicht mehr über USB zu versorgen. Leider ist das Problem das gleiche. Meine Eingangsspannung ist wohl zu hoch und Regler muss zuviel verbraten.

Jetzt würde ich also gerne den Arduino via integr. Regel mit Vin versorgen und parallel dazu einen 7805 für die Servos hängen. Wie muss da die Beschaltung aussehen. Haben Arduino und Servo dann quasi einen gemeinsamen Gnd aber getrennte +Pole?

Nette Grüße
Carsten

Haben Arduino und Servo dann quasi einen gemeinsamen Gnd aber getrennte +Pole?

Soweit ich das verstanden habe: Ja. :slight_smile:

Ich habs gerade mal versucht auf Lochraster zu skizzieren.

Könnte das dann so aussehen? Würde das mein Problem beseitigen?

Nette Grüße
Carsten

Ja, so sollte es gehen.
Für die Spannung Vin kann nun ein externen Netzteil verwendet werden.

Ich würde für die erste Inbetriebnahme die Spannung für die Servos überprüfen. Oszilloskop wäre optimal, es geht aber auch ein Voltmeter.

Achtung:
nie die 5 Volt aus dem externen Spannungsregler mit den 5 Volt vom Arduino-Board verbinden.

Okay so lange die 5V nie direkt aufs Board gehen ist alles okay. Kann ich für die Versorgung des Arduino auch so einen Vin und GND Pin nutzen, oder muss ich über die Buchse gehen?

Welche Spannung soll ich Deiner Meinung nach messen? Das was an den Servos ankommt? Im aktuellen Aufbau?

Nette Grüße
Carsten

Da aus deinen Erklärungen nicht ganz klar ist wieso die Servos nicht sauber laufen, würde ich vorerst die Versorgung des Arduino über die USB-Schnittstelle machen und die Versorgung der Servos mittels externem Netzteil.

Prüfe bei der Inbetriebnahme die Versorgungsspannung für die Servos mit dem Voltmeter.

Auch würde ich zuerst nur 1 Servo anschliessen, testen und dann den Nächsten. Wenn alle 3 Servos dann sauber laufen, ist alles OK mit deiner externen Spannungsversorgungs-Lösung.

Die Voraussetzung für einen sauberen Betrieb der Servos ist natürlich, neben der Stromversorg, ein lauffähiges Programm. Ich gehe davon aus, dass dein Arduino-Programm (Sketch) korrekt läuft.

Mal eine ganz dumme Frage: Verwendest Du die Servo Library oder irgend etwas selbstgestricktes?

Falls es was selbst gestricktes ist, versuche es mit der Servo Library. Wenn nämlich dein Timing nicht gut paßt, besonders wenn dir Interrupts dazwischen kommen, dann ruckeln Servos auch ganz heftig.

Korman

Hallo zusammen. Die Probleme sind behoben. Es tut jetzt :slight_smile:
Ich verwende übrigens die Servo-Lib.

Jetzt habe ich noch eine Frage zum Servo. Die Servos die ich benutze drehen keine vollen 180°. Da ich das ganze für einen kleinen Panobot nutzen will und von den genannten 180° ausging habe ich mir eine 1:2 Übersetzung gebaut. Die reicht natürlich jetzt nicht. Mechanisch kann ich das Servo von 0-180° problemlos drehen. Bei der Ansteuerung mit dem Arduino liegt es jedoch nur im Bereich 30-150.
Kann man dazu an dem Servo etwas "modden" :wink:

Nette Grüße
CArsten

Was war denn das Problem? Die Stromversorgung?

Wegen des Bereichs probiere statt Servo::write im Bereich 0-180 zu verwenden die Dauer der Impulse in µs zu übergeben (oder verwende Servo::writeMicroseconds). Da hast du mehr Spielraum um rauszufinden, was das Minimum und das Maximum deines Servos ist. 800-1000 für Minimum und 2000-2200 für Maximum wären nicht unüblich. Sobald du das hast, übergib die Werte beim Servo::attach.

myServo.attach (ServoPin, PwmMin, PwmMax);

Danach deckt dir Servo::write von 0 bis 180 den ganzen ansteuerbaren Bereich des Servos ab. Das ganze wird nur zum Problem, wenn die Impulse kürzer als 540 µs sein sollen, da spielt die Servo-Library nicht mehr mit.

Sollte das nicht helfen, dann vermute ich liegt es am Servo, nicht am Programm.

Korman

Das Problem war eine Kombination aus einem Programmfehler und mangelnder Spannungsstabilität. Das habe ich jetzt im Griff.

Ich habe Deine Tipps ausprobiert, aber leider leider spricht das Servo nicht auf korrigierte Microsekundenimpulse an. Die Originalrange 544-25XX führt schon dazu, dass im beim permanenten Pendeln von 0-180° an den Enden kleine Pausen habe. Da kommen also offensichtlich schon Werte am Servo an, die es nicht mehr verarbeiten kann.
Ich habe es jetzt mal aufgemacht und den mechanischen Anschlag entfernt. Leider hat das die Situation nicht verbessert. Würde es was bringen parallel zum vorhandenen Poti im Servo noch ein Widerstände zu löten? Du verstehst wo ich hinwill? ;D

Nette Grüße
Carsten