mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RC-Servo PWM Signal invertieren


Autor: Loki Daelis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute.

Ich hab mal eine Frage zu PWM Signalen:

Hintergrund:
Ich brauche für meinen Segler einen Mischer der ein Servo quasi umpolt,
muss sich halt andersrum drehen. Es gibt so ein Teil von Graupner, ist
nur leider superschwer zu besorgen.

Einfachste Lösung: selber bauen.

zur Frage:
Der AVR kann ja bekanntermassen prima mit PWM Signalen rummachen.
Nur wie nutzen RC-Servos PWM Signale? Und wie kann ich diese
inverieren?

Danke für Eure Hilfe.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann man machen, muss man aber nicht. Wenn du nicht sowieso einen MC an
Board hast, gehts auch ganz einfach konventionell:
Du brauchst ein Monoflop 3ms, getriggert mit der steigenden Flanke.
Dazu eine Ausgangsmimik, die dir ein Ausgangssignal liefert, wenn der
Eingangspegel 0 und der MF-Pegel noch 1 ist.
So wird aus einem 1ms-Signal eins mit 2ms und aus einem 2ms-Signal eins
mit 1ms.
Controller geht natürlich auch.

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Das Signal kommt etwa mit 30-70Hz (meist 40-50Hz), die Länge der
On-Zeit bestimmt die Stellung.
1,5ms ist neutral, die Endstellungen sind etwa 0,5 und 2,5s.

Ist nun klar wie's geht?

Gruß,
Norbert

Autor: Loki Daelis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten. Machmal habe ich das Gefühl, das viele Leute
den Ganzen Tag vor diesem Forum sitzen und F5 drücken um den
unwissenden zu helfen. Find ich toll!

Ich würds am liebsten mit AVR machen.
Norbert, hast du ne Anhung wie ich das ganze in Codevision mit C++
abbilden kann?

Autor: Klaus L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Loki,

einen schönen Beitrag zur Erklärung der Servosignale gibt es z.B.
hier:
http://www.sprut.de/electronic/modell/allgemein/index.htm

Wie Norbert schon geschrieben hat, geht das Umkehren vom 1.5ms
(Graupner, andere Anlagen ev. geringfügig anders) aus. Wenn das
Eingangssignal geringer als 1.5ms ist, muss das Ausgangssignal um
diesen betrag VERLÄNGERT werden und umgekehrt.

Als Formel: (Nullsignal - Eingangssignal) + Nullsignal
Baispiel:
Eingangssignal   Ausgangssignal
  Pulslänge         Pulslänge
     1.5ms             1.5ms
      1ms               2ms             (1.5ms -1ms + 1,5ms)
      2ms               1ms

Funktionsbersich wie bereits von Norbert ca. 0.5 -2.5 ms.

Ein paar Codeteile zum handlich der Servoisignale findest Du auch auf
meiner Seite:
http://www.mikrocontroller-projekte.de

Viel Erfolg, und poste doch das Ergebnis dann mal hier.

Ciao,
Klaus

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Einfach beschrieben würde ich es so machen:
Eingang an externen interrupt, trigger auf rising.
wenn signal low dann enable int
in der isr timer starten und flag setzen und zurück
innerhalb von max 0,5ms das flag auswerten,
dann warten bis der Pin wieder low ist.
timer auslesen - voila, Wert gemessen.
Wertneu = Betrag(1,5ms-Wert)
Timer mit 256-Wertneu laden
Ausgang high, timer starten.
Beim Overflow Ausgang wieder low.

Der Timer muß natürlich bis 2,5ms zählen können.
Also bei 4MHz prescaler 64.
Dann zählt er alle 16µs bis 4ms.

Um etwas Sicherheit zu bekommen, könnte man noch prüfen, ob zwei Werte
nicht zu arg voneinander abweichen.
Wenn ja, alten Wert beibehalten, wenn der nächste dann in die selbe
Richtung geht - ok.

Gruß,
Norbert

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.