www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega8/STK500 Servo pfeift


Autor: Attila (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe mittels TIMER2 und PWM (Phase correct mode) geschafft ein 
digital Servo (Hitec HS 5085MG) anzusteuern.

Allerdings pfeift dieses die ganze Zeit. Woran könnte das liegen? Ich 
habe ein anderes Servo angeschlossen was zwar nicht pfeift aber 
unrgelmässig "knistert" Hat jemand eine Idee?

Dank!

Autor: Michael H. (michael_h45)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zeile 42 im code natürlich.

Autor: Attila (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Bitteschön anbei der code

Autor: Michael H. (michael_h45)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh VIELEN DANK!

unglaublich...

Autor: Attila (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael!

Was ist denn falsch an der Sache jetzt?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Attila schrieb:
> Ich habe mittels TIMER2 und PWM (Phase correct mode) geschafft ein
> digital Servo (Hitec HS 5085MG) anzusteuern.
>
> Allerdings pfeift dieses die ganze Zeit. Woran könnte das liegen?

Möglicherweise daran, daß es ein Digitalservo ist. Die machen das gerne, 
weil sie ihre Motor-Ansteuerung entsprechend hoch takten.

> Ich habe ein anderes Servo angeschlossen was zwar nicht pfeift aber
> unrgelmässig "knistert" Hat jemand eine Idee?

Welchen Prozessor-Takt hast du denn? Daraus ergibt sich, wie groß deine 
Puls- und Pausenzeiten sind. Üblich sind 1 bis 2 ms Puls und ca. 20 ms 
Pause.

In deinem  Code steht außerdem:
> // links 16=0x22 rechts 48=0x72

Tatsächlich ist es umgekeht: 22=0x16 und 72=0x48.

Autor: Attila (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf!

Du hast natürlich Recht! Ich hab die Zahlen vertauscht.

Der Takt ist 8 MHZ.

Auch auf die Gefahr hin mich als echter Anfänger zu outen: Das ist ja 
ein 8 bit timer. Somit hat man 255 Werte max. Wenn aber doch 1ms etwa 50 
"Einheiten" entspricht (72-22 zwische Servo links und Servo rechts) dann 
müsste doch 255 etwa 5ms lang sein? Daher bekommt mein Servo alle 5 ms 
einen Puls.

Ist das richtig? Und wenn ja: Ist das vielleicht zu schnell weil es ja 
etwa 20ms pro Zyklus sein soll?

Vielen Dank!

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Attila schrieb:

> Der Takt ist 8 MHZ.
>
> Auch auf die Gefahr hin mich als echter Anfänger zu outen: Das ist ja
> ein 8 bit timer. Somit hat man 255 Werte max. Wenn aber doch 1ms etwa 50
> "Einheiten" entspricht (72-22 zwische Servo links und Servo rechts) dann
> müsste doch 255 etwa 5ms lang sein? Daher bekommt mein Servo alle 5 ms
> einen Puls.

Warum rechnest du denn rückwärts? Du hast einen Takt von 8 Mhz und einen 
Prescaler von 256. Der Timer läuft nach 256 Timer-Takten über, also 8 
Mhz / (256 * 256) = 122 mal pro Sekunde, bzw ca. alle 8 ms. Deine 
gefundenen Grenzen von 22 und 72 entsprechend dann einer Pulsdauer von 
0,7 bis 2,3 ms, was schon ein relativ großer Bereich ist, wo aber 
erstmal nichts dagegen spricht.

> Ist das richtig? Und wenn ja: Ist das vielleicht zu schnell weil es ja
> etwa 20ms pro Zyklus sein soll?

Die Pausendauer ist normalerweise nicht so wichtig, wenn sie nicht 
gerade extrem klein oder extrem groß ist. 8 ms müßten an sich ok sein. 
Deine Beschreibung klang eigentlich, als hätte dein Impuls einen Jitter, 
aber da du den Hardware-Timer verwendest, kann das nicht sein. Ein 
anderer Grund könnte mangelnde Entstörung des Prozessors sein. Wenn der 
mit dem Servo an der selben Spannungsquelle hängt, kann der Motor vom 
Servo den Prozessor stören und Fehler/Resets auslösen, falls man nicht 
die nötigen Abblock-Kondensatoren verbaut hat oder den Reset-Pin nicht 
richtig beschaltet.

Autor: Attila (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf!

Vielen Dank für deine Antworten und Hilfe.

Ich hätte bevor ich das Thema hier eingestellt habe mal meine 
handelsübliche Fernsteuerung anschliessen sollen. Da pfeift das Servo 
nämlich auch. Kurzes googlen ergab: Es ist normal!

Nun ja vielleicht hilft es einem anderen der das gleiche "Problem" hat 
beim durchsuchen des Forums.

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.