Hallo, zurzeit möchte ich für ein Projekt Analogservos vom Type CS238MG ansteuern. Leider habe ich dazu keine Datenblätter gefunden, die auf die Ansteuerungsmöglichkeiten hinweisen. Standardmäßig erzeugt man ja ein PWM-Signal mit 20ms-Periodendauer und 1-2ms Pulsbreite. In der Praxis funktieren die Servos auch bei Ansteuerung mit geringerer Periodendauer, wie ich ausprobiert habe. Nun habe ich jedoch im Internet gelesen, dass man Analogservos mit höheren Taktraten ruinieren kann. Ist das wirklich so und wenn ja warum? Wie groß darf denn ungefähr die Abweichung von der 20ms-Periodendauer sein, damit meinen Analogservos nichts passiert? Kann ich auch die Pulsbreite kleiner als 1ms (bzw. größer als 2ms) nehmen, solange der Servo die Position noch erreicht, ohne das mit der Zeit Schäden auftreten? Für Antworten bin ich sehr dankbar!
Die ganz einfachen analogen Servos brauchen eine gewisse Auszeit sonst machen sie Fehler. Die Soll-Position muss auch erst mal angefahren werden, das dauert schon etwas. Weshalb möchtest du die Stellgröße so schnell ändern? Kaputt gehen sollten sie davon eigentlich nicht, es ist aber z.B. ungünstig wenn der Motor immer wieder nachregeln soll und sich ständig hin und her bewegt, diese kleinen Motoren erzeugen auch Hitze und wenn die nicht weg kann verschleißt der Motor sehr schnell.
@ Matthias (Gast) >Wie groß darf denn ungefähr die Abweichung von der 20ms-Periodendauer >sein, damit meinen Analogservos nichts passiert? Ich vermute mal, dass zwischen 10-50ms kaum was passiert. >Kann ich auch die Pulsbreite kleiner als 1ms (bzw. größer als 2ms) >nehmen, Warum?
Falk Brunner schrieb: >>Kann ich auch die Pulsbreite kleiner als 1ms (bzw. größer als 2ms) >>nehmen, Bei den analogen Servos und meinen digitalen geht das jedenfalls, dadurch können sie sich nicht nur um 90° drehen sondern um ca. 180°, man muss aber aufpassen (vorher ausprobieren) dass sie nicht an die Begrenzung anschlagen und dann nie die Soll-Stellposition erreichen, dann versucht der Motor einen Wert zu erreichen der nicht erreichbar ist und geht irgendwann kaputt. Bei einer Periode von 20ms bekommt man 8 Kanäle rein. 8*2ms = 16ms Das ist dann eine Pausenzeit von 4ms die dafür ausreicht, ich lege aber nicht meine Hand ins Feuer dass das mit jedem Servo geht.
:
Bearbeitet durch User
Danke für eure zeitnahen Antworten! Hans Jelt schrieb: > Weshalb möchtest du die Stellgröße so schnell ändern? Ich möchte, dass der Mikroprozessor die Servos "parallel" zum eigentlichen Programm ansteuert und dafür nutzte ich einen Timer im Fast PWM Mode oder im Phase Correct PWM Mode mit der interne Clock (1MHz). Da es nur festgelegte prescale Faktoren (1, 8, 64, 256, 1024) gibt, sind auch nur bestimmte Periodendauern erreichbar, u.a. 32,64 ms oder 16,38 ms. Wenn ich mir mit diesen (von 20ms verschiedenen) Periodendauern meine Servos auf Dauer schrotten würde, dann müsste ich wohl eine andere Ansteuerungsmethode wählen. Aber laut falk sollte es wohl doch kein Problem sein...
Keine Panik. Modellbauservos sind erstaunlich robust gebaut. Wenn du die falsch ansteuerst, summen und zittern diese Servos. Bevor die kaputt gehen, kannst du in aller Ruhe den Strom wieder abstellen.
Aha ... Mal ein andere Vorschlag. Du könntest eine ISR eines Timers nutzen und die Zeit so einstellen dass sie entweder nach der entsprechenden Zeit von 1 bis 2ms wieder aufgerufen wird oder du rufst sie mehrfach auf. > Aber laut falk sollte es wohl doch kein Problem sein... Bei den meisten Servos kann man T auch extrem groß machen, das stört die angeblich nicht wirklich, aber zu klein ist scheinbar Mist. Stell dir vor du setzt den Pin PA0 auf high, stellst deine ISR auf die entsprechende Zeit ein und wenn die Zeit abgelaufen ist setzt du PA0 wieder auf Low. Das kannst du nun mit so vielen Pins nacheinander machen wie an deinen AVR/PIC oder sonstwas ranpassen und somit viele Servos quasi gleichzeitig steuern. So verbrauchst du nicht viel Rechenzeit und bis bei der Pin-Auswahl auch noch etwas flexibler. Vielleicht ist sowas schon in der Codesammlung, aber das ist ja auch nicht schwer selber zu schreiben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.