Forum: Mikrocontroller und Digitale Elektronik PWM aus Servo-Daten berechnen.


von CCC C. (clausismus)


Lesenswert?

Hi,

ich hätte da eine Frage wie ich den PWM-Signal-Bereich aus den 
Servo-Daten
berechnen kann.

Ich besitze zwei "Top Line RS-2" Servos, die Daten sehen so aus.

Operating voltage:  4.8V < 6.0 V

Positioning time:   4.8V / 6.0V
               0.19s/60° / 0.17s/60°

Operating torque:   4.8V / 6.0V
                3.2kg/cm / 3.5 kg/cm

Weight:             ca. 39g

Torque:             3kg/cm

Gear:               plastic

Plug-In system:     JR


Ich will mit den zwei Servos einen Laser-Pointer ausrichten.
Dazu benutze ich das Arduino-Board (ATmega328), welches über die Pins 9 
und 10, ein PWM-Signal herausgeben.

Ich benutze also 5V Spannung, statt 4.8V oder 6.0V, wie es bei den Daten 
angegeben ist. Natürlich habe ich für die Servos eine zusätzliche 
Spannungsversorgung mit dem LM317 IC gebaut. Auch 5V und mit dem GND vom 
Arduino verbunden.

Hoffe ihr könnt mir helfen, wie ich den richtigen PWM-Signal für die 
Servos bei 5V berechnen kann.
Generell wäre es gut zu wissen, wie ich den PWM-Signal-Bereich von 
Servos bestimmen kann.

Thx

von Purzel H. (hacky)


Lesenswert?

Die Servo Daten sind eigentlich immer gleich. Als Periode verwendet man 
20ms, und die Pulse sind zwischen 0.8 und 2.2ms lang.

von Tip (Gast)


Lesenswert?

Die Servos werden nicht durch ein PWM Signal gesteuert, sondern 
verwenden ein pulslängenmoduliertes Signal zur Übertragung der 
Sollposition. Die Periodendauer ist dabei unkritisch und hat keine 
Auswirkung auf die Position (Periode 10ms..100ms ist ok):
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Servo

von CCC C. (clausismus)


Lesenswert?

Vielen Dank für die Infos, dennoch habe paar Fragen.

Meine Servos fangen in manchen Stellungen zu brummen an. Manchmal 
schlagen die über die richtige Stellung.

Die Pulse liegen im Moment bei mir bei 0.6ms und 2.4ms.
Wenn ich den Bereich der Pulse verkleinere, z.B zwischen 1.2ms und 
1.8ms, dann sollte sich der Drehbereich des Servos verkleinern. Man kann 
also den richtigen Bereich für den Servo ertesten, indem man den Bereich 
langsam vergrößert, verstehe ich das richtig?

Ausserdem verwirrt mich diese Angabe "0.19s/60°". Ist dies nur eine 
Geschwindigkeitsangabe oder hat der Servo nur ein Drehbereich von 60°?

von Michael (Gast)


Lesenswert?

CCC CCC schrieb:
> Die Pulse liegen im Moment bei mir bei 0.6ms und 2.4ms.
Das ist schon ein arg weiter Bereich, geht bei dem Typ aber meist.

> .... Man kann
> also den richtigen Bereich für den Servo ertesten, indem man den Bereich
> langsam vergrößert, verstehe ich das richtig?
Ja, der Bereich gilt aber u.U. nur für das Exemplar, weil ein 
baugleicher schon anders justiert sein kann (Relation Potentiometerwert 
zu mechanischen Anschlägen). Wenn bei den extremen Pulslängen der Motor 
nicht aufhört zu laufen/knurren, war's zu viel. Die Motoren sind i.A. 
nicht für Dauerbetrieb ausgelegt.

> Ausserdem verwirrt mich diese Angabe "0.19s/60°". Ist dies nur eine
> Geschwindigkeitsangabe ...?
Ja

von CCC C. (clausismus)


Lesenswert?

Ich werde mal den Bereich dann bei mein Servos verkleinern.
Mal sehen ob es dann ordentlich läuft.

Vielen Dank!

von Harald Wilhelms (Gast)


Lesenswert?

CCC CCC schrieb:

> Meine Servos fangen in manchen Stellungen zu brummen an. Manchmal
> schlagen die über die richtige Stellung.
>
> Die Pulse liegen im Moment bei mir bei 0.6ms und 2.4ms.
> Wenn ich den Bereich der Pulse verkleinere, z.B zwischen 1.2ms und
> 1.8ms, dann sollte sich der Drehbereich des Servos verkleinern. Man kann
> also den richtigen Bereich für den Servo ertesten, indem man den Bereich
> langsam vergrößert, verstehe ich das richtig?

Im Prinzip ja. Du darfst nicht erwarten, das ein solches Modellbau-
Servo ein Präzisionspositioniergerät ist. Normalerweise habe ich den
Bereich 1ms...2ms im Kopf. Die meisten Servos können aber wohl einen
etwas grösseren Bereich, wobei der Anschlag meist nur mechanisch ist.
Wenn Du den Stellbereich also maximal ausnutzen willst, musst Du
selber testen. Wobei dieser Bereich schon bei einem zweiten Servo
gleichen Typs etwas anders sein kann.
Gruss
Harald

von Carsten G. (carry)


Lesenswert?

Ich kann nur empfehlen für jedes Servo die benötigten Pulslängen 
auszutesten. Die 1ms - 2ms sind nur ein Anhaltspunkt.
Ich habe hier einige Billigservos aus der Conrad "Grabbelkiste" die 
0.5ms - 2.5ms brauchen, um den Stellbereich voll auszunutzen (ohne die 
mechanischen Anschläge anzufahren). Auch die Mittelstellung ist 
lediglich in der Nähe von 1.5ms.


Carsten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.