Forum: Mikrocontroller und Digitale Elektronik Viele servos an Microcontroller/Arduino anschließen


von 123link (Gast)


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!

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


Lesenswert?

123link schrieb:
> ca. 30 Servo-Motoren.
Was für Servomotoren?
Modellbauservos? Oder eher etwas wie solche industrielle 20kW 
Servoachsen?

von 123link (Gast)


Lesenswert?

Lothar M. schrieb:
> Was für Servomotoren?
> Modellbauservos? Oder eher etwas wie solche industrielle 20kW
> Servoachsen?

Es geht um solche Servos:
http://www.pollin.de/shop/dt/ODE5OTcxOTk-/Freizeit_Buero_Modellbau/Modellbau/Modellbau/Servomotor_analog.html

(Modellbauservos)

von Rolf M. (rmagnus)


Angehängte Dateien:

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.

: Bearbeitet durch User
von 123link (Gast)


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

von Interessierter (Gast)


Lesenswert?

Braucht man zum Ansteuern nicht eine PWM?

von W.A. (Gast)


Lesenswert?

Interessierter schrieb:
> Braucht man zum Ansteuern nicht eine PWM?

Nicht PWM, sondern Pulsbreitenmodulation. Die Frequenz ist den Dingern 
in weiten Grenzen egal.

von Christian M. (Gast)


Lesenswert?

W.A. schrieb:
> Nicht PWM, sondern Pulsbreitenmodulation.

=8-( )

von Rolf M. (rmagnus)


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.

von Andreas R. (daybyter)


Lesenswert?

Ein stm32f103c8t6 hat 37 io pins, kostet unter 3,- und kann über Arduino 
IDE programmiert werden?

von Mirko (Gast)


Lesenswert?

Andreas R. schrieb:
> Ein stm32f103c8t6 hat 37 io pins, kostet unter 3,- und kann über Arduino
> IDE programmiert werden?

Ist das eine Frage.

von FlexTheFox (Gast)


Lesenswert?


von W.A. (Gast)


Lesenswert?

Christian M. schrieb:
> W.A. schrieb:
>> Nicht PWM, sondern Pulsbreitenmodulation.
>
> =8-( )

Üblicherweise wird unter PWM aber eine Modulation vom Tastverhältnis 
verstanden, d.h. konstante Frequenz und Steuerung des Verhältnisses von 
On-Zeit zu Periodendauer.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Mirko schrieb:
> Andreas R. schrieb:
>> Ein stm32f103c8t6 hat 37 io pins, kostet unter 3,- und kann über Arduino
>> IDE programmiert werden?
>
> Ist das eine Frage.

 Nein, nur ein praktischer Vorschlag.

von Noch einer (Gast)


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.

von Ralf (Gast)


Lesenswert?

Schau mal hier:

https://www.pololu.com/category/12/rc-servo-controllers

Damit nimmst du dem AV eine Menge Arbeit ab. Dieser kann dann andere 
Dinge tun.

Gruss

Ralf

von Wolfgang (Gast)


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.

von lars (Gast)


Lesenswert?

W.A. schrieb:
> Christian M. schrieb:
>> W.A. schrieb:
>>> Nicht PWM, sondern Pulsbreitenmodulation.
>>
>> =8-( )
>
> Üblicherweise wird unter PWM aber eine Modulation vom Tastverhältnis
> verstanden, d.h. konstante Frequenz und Steuerung des Verhältnisses von
> On-Zeit zu Periodendauer.

Üblicherweise wird ein Modelbauservo genau so gesteuert.

von W.A. (Gast)


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.

von Erwin D. (Gast)


Lesenswert?

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.

von Rolf M. (rmagnus)


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.

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.