PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : servo direkt an einen Port anschließen?



Zeroeightfifteen
16.05.2005, 00:01
wie viel strom zieht denn so ein Servo? kann ich den direkt an einen Port eines Atmega 8 oder 16 anschließen? Die sind doch nur bis 20mA belastbar.

RCO
16.05.2005, 00:09
DU schließt ja auch nciht den motor selber, sondern nur den Steuereingang für die elektrische Regelung an den µC. Den strom duch den Steuereingang habe ich zugegebener Maßen noch nie gemessen.

Zeroeightfifteen
16.05.2005, 00:24
ist es dann auch möglich mit dem atmega auch 8 servos gleichzeitig zu steuern? oder muss ich da immer 20 ms waren? ist es überhaupt sinnvoll die servos gleich an den atmega anzuschließen? oder soll ich da lieber einen servo controller dazwischen hängen?

Sandro
16.05.2005, 07:45
Hallo Zeroeightfifteen

Die Wiederholrate der Servos einzuhalten ist nicht sonderlich wichtig.
Wenn der Servo einen Impuls erhält "speichert" er die Information etwa 20ms lang (kann auch länger funktionieren(auch kürzer)).
Das einzig wichtige ist das die Impulsdauer stimmt. Das sollte eigentlich mit jedem µC möglich sein.
Wenn du es also nicht übertreibst mit der Anzahl der Servos dann sollte das schon mit deinem µC funktionieren.

Ein externer Servo-Controller kann schon berechtigt sein wenn du sehr viele Servos benutzt. So etwas kannst du dir entweder selbst programmieren, oder du nutzt den SD20. Diser ist zwar etwas teuerer, aber du mußt dir keine Gedanken mehr über die Ansteuerung machen.
Einen Servocontroller selbst zu programmieren ist aber auch nicht besonders schwer. Irgenwo in diesem Forum hab ich in letzer Zeit ein Posting gelesen wo jemand genau das mit nem PIC gemacht hat (weiß leider nicht mehr wer das war).

Im Prinzip reicht aber auch ein Timer Interupt der auf die nötige Pulslänge eingestellt wurde. Für jeden Puls musst du diesen wieder neu laden. Die Wiederholrate ist zwar nicht konstant, aber diese Methode funktioniert bei mir recht gut. Und sie verbraucht sehr wehnige Resourcen.

Ich bitte die Rechtschreibfehler zu entschuldigen. Bin grad erst von der Disco heim gekommen....

binaer
16.05.2005, 11:29
Wenn man das signal mit Hardware PWM Generatoren (z.B. in einem AVR) macht, ist die Menge der vorhandenen Generatoren natürlich der limitierende Faktor. Generiert man das Signal manuell, indem man einen beliebigen Pin ein und aus schaltet, so kann man das auch ineinanderhinein programmieren.
Der erste Motor einschalten, 0.1 bis 0.2ms warten, dann hat man noch 18ms Zeit für die anderen Servos, bevor man die schleife schliesst.

So habe ich das jeweils gemacht. Vielleicht gibt es aber auch noch bessere Ideen, für welche ich natürlich immer offen bin ;)
lg binaer

Zeroeightfifteen
16.05.2005, 12:01
wenn ich das richtig verstehe, muss ich dem Servo nach maximal 20 ms erneut den Impuls geben wo der hin soll. Reicht das nicht wenn ich ihm einmal einen Impuls von 1,5ms gebe, dann fährt der in Mittelstellung.

James
18.05.2005, 11:17
ja, das reicht im prinzip schon. wenn nun aber eine kraft von außen auf den servo wirkt und er aus der mittelstellung entfernt wird, dann fährt er nicht mehr zurück. sondern erst dann wieder, wenn ein neuer impuls kommt.

mfg
Bernhard

Xtreme
18.05.2005, 19:33
So ein Servo zieht ca. 500mA. Beim Stellen könnens auch mal 1,5mA werden.
Hängt aber sehr von den verwendeten Sevos ab: -digital o. analog; -wieviel Kraft.; usw.

MfG xtreme

Zeroeightfifteen
18.05.2005, 21:54
aber ich kann ja für die Servos eine extra Versorgung hin legen. und über die Datenleitung zieht der ja nicht viel oder?

Z80
18.05.2005, 22:29
wenn die impulse länger als 20ms auseinander sind, stotert das servo und wird längsämer. Das servo bewegt sich nur so lange wie es ein signal bekommt. Der Stromverbrauch auf der steuerleitung ist unbedeutend. Stadessen sollte man noch einen Spanungsstabilisator an die 5V speisung hängen.