Forum: Mikrocontroller und Digitale Elektronik Drehbereich Servo


von Achim S. (achims)


Lesenswert?

Hallo Gemeinde
Nach den verschiedenen Artikeln und Erklärungen hat ein Servo einen 
Drehbreich von ca. 180°. Dabei nimmt man die Zeiteinstellung in dem 
kleinen Programm mit _delay_us(1500) vor. Wie in diesem Beispiel
1
  
2
#define F_CPU 16000000UL  // Angabe Frequenz
3
4
#include <avr/io.h>
5
#include <util/delay.h>
6
7
int main (void)
8
  {
9
  DDRA = (1<<PA1);    // Angabe Ausgang
10
  while( 1 )        // Wiederholung
11
    {
12
        PORTA |= (1<<PA1);  // Ausgang einschalten
13
        _delay_us(1950);  // Zeit Drehung
14
        PORTA &= ~(1<<PA1);  // Ausgang abschalten
15
        _delay_ms(18);      // Wiederholt alle 18ms
16
    }  
17
  return 0;
18
  }
Mit 2 verschiedenen Servos (unterschiedlicher Typ) musste ich die Zeit 
von ca. 480 bis 2150 us einstellen um die 180° zu erreichen. Die Zeit 
sollte aber nur von ca. 1ms bis 2 ms liegen (nach Artikeln). Mit diesen 
Zeiten erreiche ich aber keine 180° (AT 1284p, C, 16MHz)
Wieso?
achim

von Johannes R. (oa625)


Lesenswert?

Hallo Achim,

Standard- Modellbauservos haben +- 45° bis +- 60° Drehwinkel.
Dafür gelten die 1...2 ms Impulszeit.

Gruß
Johannes

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Achim Seeger schrieb:
> Wieso?

Willkommen in der realen Welt :-) Servos sind nun mal sowohl mechanisch 
als auch elektrisch und basieren auf Bauteilen, die Toleranzen 
aufweisen. Da fällt bei einem analogen Servo z.B. das Rückmeldepoti ein, 
das Toleranzen hat, das zeitbestimmende Monoflop im Servo IC, usw.
Ausserdem hat so gut wie jeder Hersteller andere Vorstellungen von 
Konstruktion und Timing, so dass selbst innerhalb einer Servofamilie 
Unterschiede auftreten. U.a. aus diesen Gründen besitzen alle besseren 
RC-Sender Möglichkeiten zur Trimmung des Offsets und des 
Steuerbereiches.
Das wirst du wohl auch implementieren müssen - oder du kodierst hart und 
nimmst nur das dazu gehörige Servo mit dem passenden Drehbereich.

von Karl H. (kbuchegg)


Lesenswert?

Dazu kommt, dass die Servohersteller den theoretisch möglichen 
Drehbereich nicht ausnutzen, weil man sonst zu leicht das Servo in einen 
der Endanschläge verfahren würde. Und das wiederrum ist gar nicht gut 
für das Getriebe bzw. den Motor.

Dazu kommt, dass Fernsteuerungssender altern und sich dann 
zeitbestimmende Bauteile über die Jahre verändern. Welcher Modellbauer 
gibt schon seine Anlage regelmässig zur Wartung. Läuft die 
MIttelpositino davon, dann wird entweder das Gestänge ein wenig gekürzt 
oder verlängert oder die Drift mittels Trimmung ausgeglichen. ABer auch 
dann will man immer noch Reserve haben, so dass die Servos nicht gleich 
in den Endanchlag fahren.

von Achim S. (achims)


Lesenswert?

Wie erreiche dann den Drehbereich von 180°?
So lange testen bis der Anschlag kommt? und dann kurz vorher aufhören?

von Karl H. (kbuchegg)


Lesenswert?

Achim Seeger schrieb:
> Wie erreiche dann den Drehbereich von 180°?
> So lange testen bis der Anschlag kommt? und dann kurz vorher aufhören?

Ganz genau

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Für eine Spezialanwendung habe kürzlich Servos modifiziert, um den 
Anschlag ein paar Grad weiter hinauszuschieben. Dafür waren die Graupner 
Dinger aber bestens geeignet, man konnte mit ein bisschen Fräsen Luft 
schaffen :-)

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.