mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fragen eines Servo-Neulings zur passenden PWM


Autor: Herr_Mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

möchte gerne ein Servo (Modellbau, JR-kompatibel) mit Atmega32 ansteuern 
und hab jetzt auch schon allerlei Beiträge dazu gefunden und 
durchgestöbert.

Mir ist allerdings noch nicht ganz klar, wie ein entsprechendes 
PWM-Signal zur Servosteuerung aussehen muss.

Allgemein: benötigt wird ein PWM-Signal mit einer Pulsbreite von 20ms. 
Das Tastverhältnis bestimmt den Stellwinkel.
So weit, so gut...

Wie muss denn aber das Signal in der Realität beschaffen sein? Beginnt 
der Servo mit der Auswertung bei H oder L?
Wie muss das Tastverhältnis für Mittelstellung aussehen, Pulsbreite 50%, 
also 10ms H und 10ms L ?

Wäre super, wenn jemand ein paar Hinweise oder Tipps hätte.
Mein erstes Test-Prog hat auf jeden Fall bis jetzt nicht funktioniert, 
was wohl an einem falschen PWM-(Mis(t))verständnis liegt...

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Allgemein: benötigt wird ein PWM-Signal mit einer Pulsbreite von
> 20ms.

Du meinst die Periodendauer. Üblicherweise ist die 20ms. Aber wenn die 
z.B. nur 10ms lang ist, macht das auch nichts.

> Das Tastverhältnis bestimmt den Stellwinkel.

Nein, nicht das Tastverhältnis, sondern nur die Pulsdauer bestimmt ihn.

> Wie muss denn aber das Signal in der Realität beschaffen sein?
> Beginnt der Servo mit der Auswertung bei H oder L?

Er mißt die Impulsdauer, also die Dauer von der positiven zur negativen 
Flanke.

> Wie muss das Tastverhältnis für Mittelstellung aussehen, Pulsbreite
> 50%, also 10ms H und 10ms L ?

Nein. Die Pulsdauer für Mittelstellung liegt bei 1,5ms. Der Bereich für 
die Pulsdauer liegt grob bei 1 bis 2 Millisekunden.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier sind ein paar AVR-Basteleien in Assembler, die mit Servoimpulsen zu 
tun haben:
http://www.hanneslux.de/avr/mobau/index.html

...

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Beispiel in C:
http://www.schoeppl.info/de/elektronik/servotester...

Gruß Gerd

Autor: Herr_Mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Leute,
frohes Neues!!!
Danke für die Infos, Servo läuft jetzt!
Super!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Autor: Herr_Mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann hab ich noch eine Frage:

gibt es eigentlich ein Spezial-Ic, mit dem man mehrere Servos 
gleichzeitig steuern kann und das man seinerseits bequem seriell per uC 
ansteuern kann, nach dem Motto "Servo1 auf Stellung 88 bitte und Servo 9 
auf Position 23"?

Das würde bei mehreren Servos Controllerkapazitäten sparen und auch 
Anschlüsse.

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Es gibt ein Projekt, glaub für n Mega8 der über I²C 10 Servos ansteuert 
oder so. Hab blos den Link nicht mehr parat - musst hald bei google 
suchen!

MFG Mixer

[edit]:

http://www.kreatives-chaos.com/artikel/servocontro...
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?...

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> gibt es eigentlich ein Spezial-Ic, mit dem man mehrere Servos
> gleichzeitig steuern kann und das man seinerseits bequem seriell per uC
> ansteuern kann, nach dem Motto "Servo1 auf Stellung 88 bitte und Servo 9
> auf Position 23"?

Das sollte mit einem AVR kein Problem sein. Das Beispiel bei Hannes
http://www.hanneslux.de/avr/mobau/7ksend/7ksend02.html
zeigt, wie man einfach Impulse für mehrere Servos erzeugen kann. Dazu 
das ganze ADC-Gerödel rauswerfen und die Positionen in einem SRAM-Array 
halten. Wenn man den AVR dann mit einem Baudratenquarz taktet, sollte es 
kein Problem sein, per UART empfangene Kommandos auszuwerten und die 
Positionen im SRAM zu aktualisieren. Da Timer1 zwei separate 
Compare-Einheiten hat, kann man ohne Weiteres zwei separate Servo-Ketten 
laufen lassen, das reicht für 16 bis 20 Servos. Mit einem Tiny2313 
sollten auf diese Art bis zu 14 Servos gleichzeitig ansteuerbar sein.

~

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn hier schon andere "Ihren" Code verbreiten, dann ich auch mal:
Beitrag "Re: Problem mit PWM und Servo"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.