Forum: Mikrocontroller und Digitale Elektronik Was ist PWM


von Fritz 7 (Gast)


Lesenswert?

Was soll PWM eigentlich sein?
Mit dem Kann man irgenwelche Signale erzeugen oder?

Kann man das auch brauchen zur Motordrehzahl Regelung?

Fritz 7

von Reiner (Gast)


Lesenswert?

Du kannst damit sogar Audiosignale ausgeben.

PWM-Pulsweitenmodulation

In einer meist festen Periodendauer wird das Verhältnis von 1/0 H/L 
Ein/Aus ausgegeben.

Reiner

von Harry (Gast)


Lesenswert?

...und wird z.B. im Modellbaubereich zur Drehzahlsteuerung von 
Gleichstrommotoren verwendet. Man kann damit aber auch z.B. Glühlampen 
dimmen.

Das Prinzip: z.B. bei 50Hz wird der Motor 50mal in der Sekunde ein-und 
wieder ausgeschaltet. Die Drehzahl wird dadurch bestimmt, wie lange die 
Einschaltdauer gegenüber der Ausschaltdauer ist.

Vorteil: Man schaltet die Motoren mit Transistoren, und die verbraten im 
Schaltbetrieb nur wenig Leistung, werden also nicht so warm.

Viele Grüsse

Harry

von Fritz 7 (Gast)


Lesenswert?

Kann ich damit theoretisch eine Frequenz von 2600 Hz an einen 
Lautsprecher ausgeben, dann höre ich einen Ton? Wie macht man das genau? 
Es sollte schon ein sauberes pfeiffen sein, also ohne Knacken und 
sonstige nebengeräusche.

Fritz 7

von Gerd (Gast)


Lesenswert?

Knacken im Lautsprecher kriegt man, wenn man den hart mit einem Rechteck 
ansteuert, also immer die vollen 5 Volt an und aus. Wenn man das Knacken 
wegkriegen will, muss man mit R, L und C ein wenig spielen.

Um mit einer PWM ein für Lautsprecherqualität angenähertes Sinussignal 
auszugeben, braucht man schätzungsweise eine PWM mit mehr als 50 kHz, 
also 20 mikrosec. für einen Zyklus. Bei einer Auflösung von 16 Stufen 
Genauigkeit hat man eine Mikrosekunde Zeit. Das ist schon anspruchsvoll 
für die Programmierung.

Schätze, ein schöner Sinus lässt sich mit anderen Methoden wesentlich 
einfacher erzeugen.

Die häufigste Anwendung für eine PWM ist die D/A-Wandlung, aber mit 
einem AVR nur, wenn man mehr als 10 ms Zeit hat. Wenn es schnell gehen 
muss, gibt es andere Methoden.

MfG
Gerd

von Fritz 7 (Gast)


Lesenswert?

Was wären dann diese anderen Methoden für ein schönes Sinus Signal?

Fritz 7

von Peter D. (peda)


Lesenswert?

Hallo Fritz,

man kann auch mit PWM ein Sinussignal erzeugen.

Z.B. der Tiny15 kann eine Wandlung mit bis zu 150kHz durchführen.
Du brauchst dann nur eine Tabelle mit den Sinus abspeichern und dann mit 
dem Timer der gewünschten Frequenz entsprechend auf die PWM ausgeben.

Dann filterst Du mit einem RC-Tiefpaß die 150kHz weg und übrig bleibt 
der Sinus.

Es gibt da z.B. eine Atmel Application-note für die Ausgabe der 
Tonfrequenzwahlimpulse beim Telefon.


Peter

von gerd (Gast)


Lesenswert?

Es gibt viele Methoden, je nach dem, welche Ansprüche an die Kurvenform, 
Frequenzbereich, etc. Du zugrunde legst.

Wenn es ein schöner Sinus im NF-Bereich sein soll, dann wäre das ein 
DA-Wandler (z.B. ein R/2R-Netzwerk), das mit einer Sinustabelle 
gefüttert wird. Die Fütterfrequenz bestimmt dann die Sinusfrequenz. Ein 
bisschen Filtern der Oberwellen sollte dabei sein, wenn es auf 
Oberwellenarmut ankommen sollte.

Außerdem gibt es z.B. fertige Signalgeneratoren, die das alles schon 
enthalten.

MfG
Gerd

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Einen Schaltplan für einen einfachen 8 Bit R2R-DAC gibt es in der 
Codesammlung.

von Peter Wilbert (Gast)


Lesenswert?

ach so .. wenn man die oberwellen ausfiltert, dann knackt es nicht mehr
.. toll
noch ein gruß peter

von Roman (Gast)


Lesenswert?

da hast aber ein ganz großen gerissen!

ich würde empfehlen, alles mit einem Atmel zu machen. da schreibst du
dann eine wunderschöne sinustabelle! kann auch in 360 teilschritten
sein und dann wiederholst du diese! dann kannst du das signal durch
einen verstärker laufen lassen und fertig!

pwm braucht man dafür nich...

gruß Roman

von Santa Klaus (Gast)


Lesenswert?

>kann auch in 360 teilschritten
>sein und dann wiederholst du diese! dann kannst du das signal durch
>einen verstärker laufen lassen und fertig!
>
>pwm braucht man dafür nich...

Kein PWM? Wenn z. B. der Wert Nummer 284 in der Tabelle 89 beträgt, wie
willst Du denn diesen Wert ausgeben?

von Roman (Gast)


Lesenswert?

die tabelle beinhaltet dann nicht direkte werte für einen pwm oder so.

im internet habe ich einen ams-code gefunden der ein sinussignal
ausgeben kann.

http://www.fh-oow.de/~anna/mcp/SINUS.ASM

wie es genau funktioniert, weiss ich nicht, aber ich kann sagen, dass
es funktioniert! ich habe es mit einem oszilloskop überprüft und es
liegt tatsächlich ein sinussinal an. wenn man nun noch ein verstärker
dazwischenschaltet, kann man auch größere lautsprecher verwenden.

gruß Roman

von Santa Klaus (Gast)


Lesenswert?

>im internet habe ich einen ams-code gefunden der ein sinussignal
>ausgeben kann.
>wie es genau funktioniert, weiss ich nicht, aber ich kann sagen, >dass
es funktioniert!

Na und ob das funktioniert, denn wie ein Blick in den Code verrät, wird
hier einfach eine PWM softwaremäßig generiert.  T1 ist für die
PWM-Frequenz von 20 kHz zuständig, und T0 für die variable, vom
aktuellen Sinus-Funktionswert abhängige PWM-"Einschaltdauer".
That's all ;-).

von Santa Klaus (Gast)


Lesenswert?

Ergänzung:

Der PWM solltest Du auch mit Deinem Oszilloskop auf die Schliche kommen
können.  Ändere alle Werte in der Sinus-Tabelle z. B. auf 32 [64, 128].
Laß das Programm laufen und oszilloskopiere direkt die Ausgangspins, d.
h. ohne einen Verstärker dazwischenzuschalten, der das Signal glätten
würde.  Stell auf dem Oszi eine zu 20 kHz passende Zeitbasis ein. Dann
siehst Du die PWM mit einem Tastgrad von 12.5 % [25%, 50 %].

von Roman (Gast)


Lesenswert?

leider ist es nicht Mein oszilloskop =(
aber das ist ja echt gut, dass man die PWM auch softwaretechnisch
erstellen kann! hätt ich nicht gedacht.. bin halt noch nicht so
bewandert was asm angeht o_O aber nun ist der code auch für mich klarer
=)

gruß Roman

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.