Viele servos an Microcontroller/Arduino anschließen

Gast #4781427
Lesenswert?

Hallo zusammen,

was empfehlt Ihr mir für die Ansteuerung von ca. 30 Servo-Motoren.

Kann ich das alles über einen Microcontrolelr/Arduino mit (14I/Os) 
laufen lassen.

Ich denke man benutzt Treiber. Oder?
Kann man diese beliebig in Reihe schalten (wie bei Schieberegistern oder 
Multiplexern)?

Oder wie würdet Ihr so etwas lösen?

Viele Grüße und danke!
#4781449
Lesenswert?

123link schrieb:
> Ansteuerung von ca. 30 Servo-Motoren.

Was sind für dich "Servo-Motoren"? Siehe Bilder. Das linke ist das, was 
man normalerweise damit meint, aber hier wird bei Fragen auch schon mal 
eher ein Modellbau-Servo (zweites Bild) so bezeichnet.
Die ersteren benötigen in der Tat einen Treiber/Leistungselektronik. 
Letztere kann man in größerer Zahl über Schieberegister ansteuern. So 
wurde das früher in den Fernsteuer-Empfängern gemacht und funktioniert 
auch mit einem µC.

PS: Mist, zu spät.
Du kannst z.B. einen 4017 1-aus-10-Zähler nutzen. Der war in den 
Modellbau-Empfängern oft verbaut.
Angehängte Dateien:
Gast #4781610
Lesenswert?

Hallo,

ah vielen Dank für Deine Antwort!
Tja da war ich schneller :D

Ich dneke ich werde es dann über Schieberegister lösen.
Fann bin ich ja mit der Anzahl recht flexibel!
Und ich habe noch ganz viele von den 4021 daheim rumliegen.

Vielen Dank für Deine Hilfe!

VG
#4781648
Lesenswert?

W.A. schrieb:
> Interessierter schrieb:
>> Braucht man zum Ansteuern nicht eine PWM?
>
> Nicht PWM, sondern Pulsbreitenmodulation.

PWM ist Pulsbreitenmodulation. Das W steht für "width"="Breite".

> Die Frequenz ist den Dingern in weiten Grenzen egal.

Ja, entscheidend ist nicht das Puls-Pausen-Verhältnis, sondern nur die 
reine Pulsdauer, solange die Periodendauer ganz grob im richtigen 
Bereich liegt. Bei der klassischen Ansteuerung von Modellbauservos mit 
per 4017 aus einem PPM-Signal erzeugten Servopulsen ist die 
Periodendauer im Schnitt 20 ms, kann aus Sicht des Servos aber einen 
extrem großen Jitter haben.
Gast #4782385
Lesenswert?

Ursprünglich wurde das Protokoll der Modellbauservos für eine primitive 
Funkverbindung konzipiert. Die Pulsbreiten für 8 Servos werden einfach 
nacheinander übertragen und im Empfänger auf 8 Servos verteilt.

Du könntest die Pulsbreiten für 8 Servos auf einem Prozessorpin ausgeben 
und dahinter wie in einem Fernsteuerempfänger verteilen.
Gast #4782536
Lesenswert?

Noch einer schrieb:
> Du könntest die Pulsbreiten für 8 Servos auf einem Prozessorpin ausgeben
> und dahinter wie in einem Fernsteuerempfänger verteilen.

Vor dem Verteiler kann das eine feste "1" sein. Dafür braucht man keinen 
Prozessorpin. Das Kanalumschaltsignal bestimmt dann, wie lange diese "1" 
zu dem jeweiligen Servoausgang gelangt.

Da wäre man dann beim CD4017, der einfach einen Clock entsprechend den 
gewünschten Servopositionen bekommt. Mit 5 IO-Pins vom µC und 4x CD4017 
(4x Clock, 1 Reset) könnte man dann von der Hardware bis zu 40 Servos 
ansteuern.
Gast #4782600
Lesenswert?

lars schrieb:
> Üblicherweise wird ein Modelbauservo genau so gesteuert.

Die Position hängt aber nicht vom Tastverhältnis ab.

Beispiel:
Gib eine Pulsfolge mit Tastverhältnis 5% aus, einmal bei 25Hz und einmal 
bei 50Hz aus. Der Servo wird von +90° auf -90° fahren.
#4782636
Lesenswert?

Wolfgang schrieb:
> Noch einer schrieb:
>> Du könntest die Pulsbreiten für 8 Servos auf einem Prozessorpin ausgeben
>> und dahinter wie in einem Fernsteuerempfänger verteilen.
>
> Vor dem Verteiler kann das eine feste "1" sein. Dafür braucht man keinen
> Prozessorpin.

Hä? Wo soll diese 1 hingehen?

> Das Kanalumschaltsignal bestimmt dann, wie lange diese "1" zu dem
> jeweiligen Servoausgang gelangt.

Ja, das ist dann der oben beschriebene Pin, von dem aus es wie in einem 
Fernsteuerempfänger verteilt wird.

> Da wäre man dann beim CD4017, der einfach einen Clock entsprechend den
> gewünschten Servopositionen bekommt. Mit 5 IO-Pins vom µC und 4x CD4017
> (4x Clock, 1 Reset) könnte man dann von der Hardware bis zu 40 Servos
> ansteuern.

Beim PPM-Modellbau-Emfänger war es so, dass  maximal 9 Servos 
angeschlossen werden konnten. Dann gab es nach dem 9. Servo eine Pause, 
die der Empfänger nutzen konnte, um zu erkennen, dass jetzt der Reset 
aktiviert werden muss. Wenn du an jeden 4017 10 Servos hängst, gibt es 
keine Pause mehr. Die braucht man am µC zwar nicht, um zu erkennen wann 
ein Reset ansteht, aber ohne die Pause kannst du die Länge des 
Impulstelegramms nicht mehr steuern. Die hängt dann von der Dauer der 10 
Servopulse ab und variiert von 10 ms (10 Servos mit je 1 ms Puls) bis 20 
ms (alle auf 2 ms Pulsdauer). Wenn du das also viermal gleichzeitig 
ansteuerst, sind alle 4 Impulstelegramme in der Regel unterschiedlich 
lang, und bei jedem kommt der Reset zu einem anderen Zeitpunkt. Man 
braucht also für jeden 4017 einen eigenen Pin für den Reset.
Man könnte natürlich sagen, dass man den Reset nur einmal am Anfang 
macht und es danach frei durchrennen läßt. Sollte aber aus irgendeinem 
Grund sich mal was verschieben, werden ab dem Zeitpunkt die Impulse 
falsch ausgegeben, ohne dass der µC das merkt.

> Da wäre man dann beim CD4017, der einfach einen Clock entsprechend den
> gewünschten Servopositionen bekommt. Mit 5 IO-Pins vom µC und 4x CD4017
> (4x Clock, 1 Reset) könnte man dann von der Hardware bis zu 40 Servos
> ansteuern.

Erwin D. schrieb:
> lars schrieb:
>> Üblicherweise wird ein Modelbauservo genau so gesteuert.
>
> Nein! Der wertet NUR die Impulsbreite aus. Nicht das
> Puls/Pause-Verhältnis! Die Periodendauer ist ihm (in weiten Grenzen)
> egal.

Und sie muss ihm auch egal sein, da wie oben schon geschrieben die 
Periodendauer bei klassischer Ansteuerung systembedingt variierte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren