Forum: Mikrocontroller und Digitale Elektronik Servo reagiert nicht korrekt


von Andreas S. (newpiccer)


Angehängte Dateien:

Lesenswert?

Moin zusammen,
ich habe keine Idee mehr: Das Signal an den Servo, Micro Servo 9g SG90, 
ist korrekt (Oszi), aber der Servo reagiert nur ab und zu!
Das Programm läßt den Servo von ganz rechts bis ganz links in ungefähr 
10-Grad-Schritten schwenken. Das funzt solange ich den Servo kürzer(!) 
als alle 350ms anspreche, genau wie erwartet. (Natürlich soll die Zeit 
nicht kleiner als ca. 20ms betragen)
Über 350ms bekomme ich weiterhin das gewünschte Signal auf dem Oszi, 
aber der Servo reagiert nur manchmal. So genau läßt sich nicht sagen 
wann.
Hat jemand ne Idee dazu?

von Chris V. (nagut)


Lesenswert?

Das ist normales Verhalten.

Kommen die Pulse seltener als alle 20ms, kann das Servo von einem 
Ausfall des Senders ausgehen. Typisches Verhalten zumindest der 
billigeren Servos war dabei, den Motor nicht mehr zu bestromen, d.h. man 
konnte es dann vorsichtig von Hand verdrehen.

Hier noch der Wikipedia-Link zur Signalspezifikation:
https://de.wikipedia.org/wiki/Puls-Pausen-Modulation

von Rainer W. (rawi)


Lesenswert?

Andreas S. schrieb:
> Das funzt solange ich den Servo kürzer(!) als alle 350ms anspreche,
> genau wie erwartet. (Natürlich soll die Zeit nicht kleiner als ca. 20ms
> betragen)

Warum tust du es dann und wunderst dich auch noch, dass der Servo bei 
Nichteinhalten der Signalspezifikation nicht funktioniert?
Wesentlich größer darf die Periodendauer eben auch nicht sein, wenn der 
Servo seine Sollposition geordnet anfahren soll.

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Nimm ein digitales Servo. Musst du halt 5,- mehr ausgeben.

Alle digitalen Servos, mir denen ich bisher experimentiert habe, halten 
die letzte Position, auch wenn die Steuersignale ausfallen bzw. 
unregelmäßig kommen. Die interessieren sich ausschließlich für die 
positive Pulslänge, nicht für die Pausen dazwischen ...

von Rainer W. (rawi)


Lesenswert?

Chris V. schrieb:
> Hier noch der Wikipedia-Link zur Signalspezifikation:
> https://de.wikipedia.org/wiki/Puls-Pausen-Modulation

Dort wird ein Multiplexsignal gezeigt. Des hilft dem TO nicht.

Allerdings ist völlig unklar, warum er seinen Puls nicht in kürzeren 
Abständen sendet.

von Rolf M. (rmagnus)


Lesenswert?

Frank E. schrieb:
> Alle digitalen Servos, mir denen ich bisher experimentiert habe, halten
> die letzte Position, auch wenn die Steuersignale ausfallen bzw.
> unregelmäßig kommen. Die interessieren sich ausschließlich für die
> positive Pulslänge, nicht für die Pausen dazwischen ...

Manche kann man darauf programmieren, bei Ausfall des Signals eine 
bestimmte Position anzufahren.
Generell halte ich es für eine bessere Idee, das Signal nicht 
vorsätzlich ausfallen zu lassen, sondern gleich korrekt zu senden. Dann 
funktioniert das auch mit allen Servos.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Das funzt solange ich den Servo kürzer(!) als alle 350ms anspreche,
> genau wie erwartet.
Dann tu das. In der ursrprünglichen Spec ist eine Wiederholzeit von 20ms 
spezifiziert:
- https://en.wikipedia.org/wiki/Servo_control

> (Natürlich soll die Zeit nicht kleiner als ca. 20ms betragen)
Aber garantiert auch nicht 17x mehr...
Wenn du erwartest, dass ich dich jeden Tag besuche, ich komme dann nur 
alle halben Monat mal vorbei, dann wärst du auch verunsichert.

> Über 350ms bekomme ich weiterhin das gewünschte Signal auf dem Oszi,
> aber der Servo reagiert nur manchmal.
Mich wundert das nicht.

: Bearbeitet durch Moderator
von Rolf M. (rmagnus)


Lesenswert?

Lothar M. schrieb:
>> (Natürlich soll die Zeit nicht kleiner als ca. 20ms betragen)
> Aber garantiert auch nicht 17x mehr...

Die genaue Zeit ist nicht so kritisch. Auch unter 20ms sollte das in der 
Regel gehen. Beim ursprünglichen Übertragungsverfahren der 
Fernsteuerungen variiert die Zeit für die meisten Servos dauernd, 
während man steuert, kann also mal kürzer und mal länger werden. Es 
sollte aber nicht allzu weit von den 20ms abweichen. Die meisten Servos 
dürften auch mit 10 oder mit 30 ms noch gehen, aber halt nicht mit >350.

von Peter* (nochgast)


Lesenswert?

Hallo,

Du hast da einfachste Elektronik verbaut und warum dann nicht mit 
funktionierender SW
z.B:

 * http://arduino.cc/en/Tutorial/Sweep
 * 
https://github.com/esp8266/Arduino/blob/master/libraries/Servo/examples/Sweep/Sweep.ino

und dann passe die Werte noch auf dein Servo an. z.B.:

myservo.attach(D5,500,2400); dann funktioniert selbst ein SG92 
Positionsgenau und immer.

Wenn nicht... Tonne.

von Andreas S. (newpiccer)


Angehängte Dateien:

Lesenswert?

Hallo Chris,
vielen Dank für deinen konstruktiven Hinweis, dass sich womöglich der 
Servo ab einer bestimmten Zeit schlafen legt.
Zum wieder Wecken braucht der Servo zwei Signale. Nach den ersten zwei 
Signalen passiert noch nix. Das dritte wird korrekt ausgeführt.
Ist zwar ein wenig lästig, aber wenn ich weiß, das der Servo sich so 
verhält, kann ich ja drauf reagieren.

Einen schönen Tag
Andreas

von Hans (piaggio)


Lesenswert?

> "....Die meisten Servos dürften auch mit 10 oder mit 30 ms noch gehen, aber
> halt nicht mit >350."

10ms Wiederholrate ist bei modernen Modell-Fernsteuerungen ein üblicher 
Wert.
Viele ältere Servos mögen das allerdings nicht. (Sie "knurren")
Bei meiner Anlage kann ich 10 ms od. 20 ms auswählen.

: Bearbeitet durch User
von Obelix X. (obelix)


Lesenswert?

Andreas S. schrieb:
> Zum wieder Wecken braucht der Servo zwei Signale. Nach den ersten zwei
> Signalen passiert noch nix. Das dritte wird korrekt ausgeführt.
> Ist zwar ein wenig lästig, aber wenn ich weiß, das der Servo sich so
> verhält, kann ich ja drauf reagieren.

Da dies nicht der Spezifikation entspricht kannst du Glück haben oder 
auch nicht. Bei dem einen Servo funktioniert es bei dem nächsten nicht.

Lösung : Halte die Spezifikation ein.

von Rainer W. (rawi)


Lesenswert?

Andreas S. schrieb:
> (Natürlich soll die Zeit nicht kleiner als ca. 20ms betragen)

Das ist ein Relikt aus der Zeit der Analogfernsteuerungen, damit man 8 
Kanäle in ein Multiplexsignal packen kann und auch noch Zeit für die 
Synchronisation bleibt. Aus Sicht des Servos dürfen die Steuerpulse 
gerne schneller kommen.

von Sebastian W. (wangnick)


Lesenswert?

Andreas S. schrieb:
> Angehängte Dateien: Servo_Forum.ino

pause_servo() hat alle 70 Minuten eine Chance auf eine Endlosschleife. 
delay_millis() nur alle 50 Tage ...

LG, Sebastian

von Rainer W. (rawi)


Lesenswert?

Sebastian W. schrieb:
> pause_servo() hat alle 70 Minuten eine Chance auf eine Endlosschleife.
> delay_millis() nur alle 50 Tage ...

Eigentlich sollte sich doch inzwischen rumgesprochen haben, wie man 
millis() Überlaufsicher benutzt :-(

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas S. schrieb:
> Angehängte Dateien:
> Servo_Forum.ino
Da sind noch ein paar Programmfehler drin. Leicht erkennbar am 
delay_ms();

Das hört sich jetzt vielleicht ein wenig überheblich an, du wirst das 
mit zunehmender Erfahrung aber auch so sehen.

von Wastl (hartundweichware)


Lesenswert?

Lothar M. schrieb:
> Das hört sich jetzt vielleicht ein wenig überheblich an, du wirst das
> mit zunehmender Erfahrung aber auch so sehen.

Mancher lernt's nie, des Foahrn mit de Schi.
Ooba mei Hans, der kann's.

von Crazy Harry (crazy_h)


Lesenswert?

Andreas S. schrieb:
>Das Signal an den Servo
dem Servo

Andreas S. schrieb:
> der Servo
das Servo

Andreas S. schrieb:
> den Servo
das Servo

von Rolf M. (rmagnus)


Lesenswert?

Crazy H. schrieb:
> Andreas S. schrieb:
>> der Servo
> das Servo

Sagt wer? Im Duden gibt es "Servo" als eigenständiges Wort nicht. Beides 
scheint allgemein gebräuchlich zu sein. Ich sage "der Servo", als 
verkürzte Form von "der Servomotor".

: Bearbeitet durch User
von Crazy Harry (crazy_h)


Lesenswert?

Zusammen mit "Motor" hast du recht, aber bei Servo im Bereich des 
Modellbaus wird immer "das" verwendet.
BTW zusammen mit "Lenkung" heißt es ja auch "die".

von Georg G. (df2au)


Lesenswert?

Im Forum "Mikromodellbau" gab es vor kurzem eine Diskussion zu diesem 
Thema. Fazit: Auch modernste Servos reagieren teils seltsam, wenn die 
Pulsrate stark von 20ms abweicht. Dabei benehmen sich sogar Servos der 
gleichen Baureihe und vom gleichen Lieferanten unterschiedlich.

von Rolf M. (rmagnus)


Lesenswert?

Crazy H. schrieb:
> aber bei Servo im Bereich des Modellbaus wird immer "das" verwendet.

Das stimmt definitiv nicht. Ich habe dort schon beides gehört und habe 
es genau in diesem Zusammenhang ursprünglich auch mal als "der" gelernt. 
https://wiki.rc-network.de/wiki/Servo sieht's auch so, wobei die 
Begründung nicht wirklich überzeugend ist. Auf Wikipedia ist es auch (im 
Zusammenhang mit Modellbau) "der Servo".

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rolf M. schrieb:
> "der Servomotor"
Der Motor ist nur ein Teil des Servos. Erst die Sollwertvorgabe, der 
Regler  und die entsprechende Motoransteuerung macht aus dem Motor 
den/das Servo.

Rolf M. schrieb:
> Crazy H. schrieb:
>> Andreas S. schrieb:
>>> der Servo
>> das Servo
> Ich sage "der Servo", als verkürzte Form von "der Servomotor".
Dann wäre noch "die Servo" als verkürzte Form von "die Servoachse".

Aus der in der Automatisierungstechnik kommt nämlich:
"der Servoantrieb" und "die Servoachse"
- https://de.wikipedia.org/wiki/Servoantrieb

Bei Modellbauservos wird wohl überwiedend "das Servo" gesagt:
- https://www.f3x.de/servos?p=1
- https://modellflugwelt.de/servos/servos/?p=1
- 
https://www.modellbau-berlinski.de/rc-elektronik-und-akkus/servos-und-co/standard-servos/1

Der Wikipedia-Artikel schleicht sich da durch die durchgehende 
Verwendung der Mehrzahl und unbestimmter Artikel sauber vom Platz:
- https://de.wikipedia.org/wiki/Servo

Gut, das wir darüber gesprochen haben... ;-)

: Bearbeitet durch Moderator
von Rolf M. (rmagnus)


Lesenswert?

Lothar M. schrieb:
> Rolf M. schrieb:
>> "der Servomotor"
> Der Motor ist nur ein Teil des Servos. Erst die Sollwertvorgabe, der
> Regler  und die entsprechende Motoransteuerung macht aus dem Motor
> den/das Servo.

In der Industrie spricht man auch von Servomotoren, und auch da gehört 
das alles dazu.

> Bei Modellbauservos wird wohl überwiedend "das Servo" gesagt:

Mag sein, aber auch "der" findet Verwendung. Ich sehe jetzt auch keinen 
Grund, warum eins davon falsch sein soll. Eine offiziell als richtig 
geltende Form gibt es ja wie gesagt nicht.

> Der Wikipedia-Artikel schleicht sich da durch die durchgehende
> Verwendung der Mehrzahl und unbestimmter Artikel sauber vom Platz:
> - https://de.wikipedia.org/wiki/Servo

Nicht ganz:
"Die Werte, bei denen der Servo ganz links bzw. rechts ist …"
"Ein Nachteil von Modellbauservos ist, dass sich nicht abfragen lässt, 
ob der Servo …"
"… dass sich nicht feststellen lässt, ob der Servo überhaupt in der 
Lage ist …"

> Gut, das wir darüber gesprochen haben... ;-)

Yup. ;-)

: Bearbeitet durch User
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.