-
        

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: PWM?? wie geht das?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2004
    Beiträge
    206

    PWM?? wie geht das?

    Anzeige

    hallo.

    wie geht das jetzt mit pwm?
    gut, das das pulsweitenmodulation ist, weiß ich. und was da passiert auch.
    aber wie bekomm ich das aus dem avr?
    wie muß so ein timer/counter oder was auch immer geproggt sein?
    die hardware geht übrigens schon. und ich kann motoren ein/aus schalten, und richtung ändern.
    wo schließt man den pwm kanal an? an welchem port? gibts da einen bestimmten?? und überhaupt.

    dank euch schon mal.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2005
    Beiträge
    208
    Das ist recht einfach erklärt, nicht ganz so einfach programmiert:

    Bei einer PWM geht es, wie der Name schon sagt um Puls-Weite,

    programmier ein Schema, bei dem auf einem Port in gleichbleibenden Zeitabständen der Pegel auf High geht,
    je nach Energieanforderung lässt du ihn mehr oder weniger lange High,
    er muß vor erreichen des nächsten Zyklus wieder aus sein.

    Beispiel :
    Einschaltung alle 100 mS, für 10 mS=10% PWM...........90mS=90%PWM

    Das Timing kannst du über einen Timer und Zähler , Interrupt oder Capture/Compare machen.........je nach Controller.
    Eine Softwareabhängigkeit ist nicht zu empfehlen da andere Prozesse das Timing stören können.

    Da ich nicht mit AVRs arbeite, kann ich dir nur allgemeingültige Hinweise geben, also frag mich nicht....welchen Pin,welchges Register oder so.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Die richtigen Pins findest du im Datenblatt: OC1A, OC1B, OCxx..

    Wie man PWM programmiert hängt davon ab welche Sprache du benutzt.
    Für Bascom findest du etwas dazu in der Online-Hilfe und in diversen Beispielprogrammen hier im Forum (u.a. in den Anleitungen zu den Roboternetz-Boards)
    Für andere Sprachen wird sich über Google sicherlich auch irgendein Beispiel-Code den man kopieren kann finden lassen.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    02.03.2005
    Ort
    Berlin
    Alter
    37
    Beiträge
    26
    Welchen AVR-Contrloller und welche Sprache willst Du denn genau verwenden?

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Es gibt glaub schon Spezialfunktionen, aber ich mach es immer so, dass ich einfach in gewissen Zeitabständen einen Pin auf high und low setze. So kann man den Pin selbst wählen
    lg binaer

  6. #6
    Gast
    @binaer Natürlich gibt es Spezialfunktionen, und sogar speziell auf PWM-Ausgabe optimierte AVRs, z. B. die mit "8" als Zusatz in der Bezeichnung z. B. ATmega48 oder ATmega88 oder die mit "PWM" z. B. AT90PWM3. Hier die Übersicht: http://www.atmel.com/dyn/products/pa...&Direction=ASC

    Ich finde es überhaupt keine Gute Idee, einen Pin in gewissen Zeitabständen zu setzen, es sei denn der Chip hat keine Hardware-PWM, denn dabei muss man
    1. entweder pollen -> performancefressend und einfach unsauber oder
    2. bei Timerinterrupt umschalten-> auch performacefressend und man hat nicht so viele zur Verfügung, so dass es schade ist dafür einen zu opfern.

    Weitere Nachteile von manueller PWM sind:
    1. Die maximale Frequenz ist dann eingeschränkt. Vor allem bei low power-µC, die sagen wir mit 1,6MHz laufen (z. B. ATtiny15L) ist das ein Problem, wenn man die PWM manuell macht. Meist wird bei solchen Controllern für die Hardware-PWM eine größere Frequenz zur Verfügung gestellt. Sehr comfortabel.
    2. Eine manuelle PWM hat meistens glitches.
    3. Die Präzision ist eingeschränkt. Da für das Erkennen des Zeitpunkts und für die Umschaltung des Portpins an sich Befehle benötigt werden, also Zeit verstreicht, verhält sich eine manuelle PWM vor allem in Grenzbereichen mit einen duty cycle nahe 0% oder 100% sehr sehr unlinear.

    Aufgrund dieser Tatsachen rate ich die Hardware-PWM zu benutzen. Dazu müsste man allerdings konkret wissen welcher AVR verwendet wird, um helfen zu können.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Ich habe noch nie einen uC so intensiv benutzt, dass mir die z.B. 8MIPS nicht gereicht hätten. Die Schaltzeiten lassen sich damit auch auf den Takt genau einstellen. Genauer schafft das auch Hardware PWM nicht. Hardware PWM ist wahrscheinlich zum Programmieren einfacher, aber hab es trozdem noch nie gebraucht.
    lg binaer
    Alkohol ist des Menschen grösster Feind!
    Doch in der Bibel steht geschrieben, du sollst auf deine Feinde lieben!

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2004
    Beiträge
    206
    kank euch.
    habs jetzt, und die motoren laufen.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    02.03.2005
    Ort
    Berlin
    Alter
    37
    Beiträge
    26
    @binaer Doch die Hardware PWM ist schon genauer. Eine Umschaltung erfordert inmmer ein paar Befehle und um die Ausführzeit dieser Befehle geht es. Zwischen dem Zeitpunkt, wenn der µC merkt: "Ach ich muss mal wieder Umschalten" und dem wirklichen Zeitpunkt des Umschaltens vergeht bisschen Zeit. Und genau diese Zeit macht die PWM unpäzise, weil der eingestellte duty cycle somit nie mit der ausgegebenen PWM übereinstimmt.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    1. Die Zeit die die Befehle brauchen kann man einberechnen, dann geht das auf den Tackt genau.
    2. Ist es doch der Elektronik die das PWM Signal empfängt egal, ob 1/10 Mikrosekunden früher oder Später geschalten wird.
    3. Die Verzögerung die man laut euch beim setzen auf High hätte, hätte man dann auch beim setzen auf Low. Das hebt sich dann ja wieder auf.
    lg binaer
    Alkohol ist des Menschen grösster Feind!
    Doch in der Bibel steht geschrieben, du sollst auf deine Feinde lieben!

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •