Wie zur Steuerung der Geschwindigkeit eines Servomotors mit arduino Mega
Arbeite ich an einem Projekt, in dem ich die Notwendigkeit der Veränderung der Geschwindigkeit des servo-motors. Die hardware, die ich verwende, ist ein Arduino Mega 2560 board und ich bin mit Servo.h-Bibliothek zur Steuerung der servos. Servo dreht sich von o auf 180 Grad. Ich bin mit 12 Servomotoren in das Projekt und kontrollieren Sie gleichzeitig. Gibt es eine Möglichkeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
delay()
- Funktion in eine while-oder for-SchleifeBeispiel:
, Wenn Sie alle den gleichen Grad haben, versuchen Sie diesen code unten.
An der Spitze (Nicht zwischen "{}"s):
Dies in
Setup
:Müssen Sie zum ändern der pin-Nummern.
Einfach dieses überall (Nicht zwischen "{}"s):
Wie zu verwenden:
In
setup
, bevor Sie etwas tun mit servos, aber nachdem das Teil sagte ich Ihnen, legen Sie im setup -, verwenden SieClearServos();
bereiten Sie die servos verwendet werden. (Dies ist wahrscheinlich nicht unbedingt, aber ich weiß nicht, was passiert, wenn SieS1.read
ohne es zu ändern, und wenn die servos sind an verschiedenen Positionen, es wird Probleme zu beheben. Es kann vermieden werden, wenn es nicht zu Problemen führen, aber ich denke, Sie sollten es verwenden, wenn Sie können.) Alle von Ihnen wird zu 90 Grad. (90 Grad geändert werden kann mit der variablestartDegree
imvoid ClearServos
.)Um Sie zu aktivieren, verwenden Sie
TurnServos(90);
. 90 Grad auf das Sie möchten, es zu drehen.Noch nicht getestet, da ich nicht ein Mega-oder 12 servos. Bitte Kommentar, wenn Euch Fehler auffallen, da diese riesig ist. Ich verbrachte viel Zeit auf diese, so dass ich hoffe, dass ich geholfen habe. 🙂
Vielleicht können Sie einige widerstände in Reihe zu deinem servo-VCC pin, bevor Sie Ihre servo-motor zum verringern der Spannung an; so verlangsamt es. Aber dadurch wird die servo ' s werden "Konstante" Geschwindigkeit.
Alternative könnte sein, setzen einen transistor zwischen die servo-VCC-Anschluss und set-PWM-auf Basis pin zu regulieren aktuellen (zum regulieren der Geschwindigkeit), aber das kostet Sie eine zusätzliche pin pro servo aus, wenn Sie Sie nicht verwenden, einen multiplexer dazwischen, und konnte Ihr design ein wenig komplizierter.
delayMicroseconds(Wert) am nächsten zu 90-null am langsamsten ist für 360-Grad-servos sowohl pan und die Beförderung auf meinem timelapse-rig, Schießen, bewegen, Schießen, in der Zeit mit dem mechanischen shutter clicker (mini-standard-servo).
in der Servo-Bibliothek WriteMicroseconds (...) - Funktion setzt servo-Geschwindigkeit.
weitere Informationen bitte klicken Sie auf