Forum: Analoge Elektronik und Schaltungstechnik Lautsärke einstellen bei PWM Sound


von Läubi .. (laeubi) Benutzerseite


Angehängte Dateien:

Lesenswert?

Benutze derzeit zur Sounderzeugung folgende Schaltung:
http://www.hanneslux.de/avr/divers/melody/melody02.html
Das ganze mach an 5V schon ordentlich krach ;)
Da ich es mir nicht mit meinen Nachbarn verscherzen wollte habe ich mir 
überlegt die Lautstärke einstellbar per Poti zu machen.

Allerdings bin ich jezt am rätzeln wo und wie ich das realisiere:

* Spannungsteiler an der Basis gegen GND
* Spannungsteiler vor dem Elko gegen GND
* Spannungsteiler nach dem Elko gegen ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schnell: mach einfach einen Serienwiderstand vor den Lautsprecher.
Richtig: du mußt die Aussteuerung der PWM in der Software anpassen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Poti in Reihe zum Lautsprecher, 1/4W oder 1/2W Typ sollte reichen, ca. 
500 Ohm sollte es leise genug machen. Oder 2-3 umschaltbare 
Festwiderstände.

Bei der Art der Schaltung machen sich alle anderen Varianten schlecht.

PS: irgendwie bin ich heute zu langsam... ;)

Gruß aus Berlin
Michael

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hm.. wie regel ich das den in SW?? Da kann ich doch nur an/aus oder steh 
ich da gerade auf dem Schlauch? Welchen Nachteil hat ein 
Reihenwiderstand und welcher Bereich wäre da sinnvoll?

von Mandrake (Gast)


Lesenswert?

Bei einer PWM kannst du die Lautstärke über das Tastverhältnis 
einstellen.
Ich hoffe ich bekomme es so einigermaßen erklärt:
Du musst quasi deine maximale On-Time einstellbar machen. Das Signal 
(also deine Abfolge von Tastverhältnissen) musst du dann auf diese 
maximale On-Time beziehen.

Beispiel:
1.
Maximale Lautstärke = Max On-Time = 100%
Tastverhältnis aus Signal = 10%
Ausgabe-Tastverhältnis = 10% x 100% = 10% (also das was wirklich 
rauskommt)

2.
Halbe Lautstärke = Max On-Time = 50%
Tastverhältnis aus Signal = 10%
Ausgabe-Tastverhältnis = 10% x 50% = 5%


Ich hoffe es ist so einigermaßen klar was gemeint ist.

Gruß

Mandrake

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Hm.. wie regel ich das den in SW??
Ich hab mir den Code angeschaut. Das ist keine PWM, sondern einfach ein 
Rechteck-Generator mit änderbarer Frequenz. Fazit: die Lautstärke kannst 
du nicht (so ohne weiteres) über SW ändern.

Kleb doch einfach auf den Lautsprecher eine 50-Cent-Münze drauf. Das 
wirkt als Tiefpass und verschiebt die Grenzfrequenz, sodass der störende 
Frequenzbereich gedämpft wird ;-)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Also mit anderen Worten, wenn ich meinen Code dahingehen ändere das ich 
ne PWM nehmen bestimmt mir das Tastverhältnis die Lautstärke? (Nutze 
nicht den Code von der Homepage aber z.Z. auch den CTC Modus...)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mit einer PWM steckt die Information zum Ton nicht mehr im 
Rechtecksignal selber, sondern in der Änderung des Tastverhältnisses.

D.h. du mußt eine PWM aufsetzen (können), die mindestens soviel auflösen 
kann, wie du Lautstärkestufen haben willst. Und dann mußt du in dem 
Rhythmus, in dem jetzt der Pin ein- und ausgeschaltet wird, den PWM-Wert 
ändern.

Wenn ich z.B. eine PWM mit einem Zählbereich von 0...255 habe, dann ist 
eine Lautstärke von 0 erreicht, wenn EIN=127 und AUS=127 sind. Maximale 
Lautstärke erhalte ich mit EIN=255 und AUS=0 (so ist es messtechnisch 
jetzt auch schon: EIN=5V, AUS=0V). Andere Lautstärken sind die Schritte 
dazwischen (z.B. EIN=191 und AUS=63).

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hm... irgenwie steh ich jezt auf dem Schlauch: 100% EIN bedeutet doch 
das ich glechspannung hab und der Lautsprecher garnix von sich geben 
dürfte oder?
Bisher ist es ja so:
- Timer läuft bis zum CompareWert = Pin toggelt
- Timer läuft bis zum CompareWert = Pin toggelt
.
.
- Timer läuft bis zum CompareWert = Pin toggelt

Ist für mich gleich zu ner PWM mit TOPWert = 2*CompareWert und 
Tastverhältnis 50%...

Hab bisher noch nie was mit PWM gemacht vieleicht seh ich das jezt auch 
falsch :)

von ... .. (docean) Benutzerseite


Lesenswert?

google mal nach...

"klasse d" verstärker

bzw.
http://de.wikipedia.org/wiki/Digitalendstufe

Das ist das nämlich...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> CompareWert = Pin toggelt...
Genauso ist es, und wenn eine 1 ausgegeben wird geht die 
Lautsprechermembran nach aussen, wenn eine 0 ausgegeben wird nach innen 
(oder vice versa). Du erzeugst mit dieser Toggle-Frequenz gleichzeitig 
den Ton (bzw. die Grundwelle, und weil es ein Rechteck ist, auch noch 
die entsprechenden ungeraden Oberwellen).

> Ist für mich gleich zu ner PWM mit TOPWert = 2*CompareWert und
> Tastverhältnis 50%...
Das schon, aber die PWM-Frequenz (Zyklusdauer) ist dann gleich der 
Frequenz des ausgegebenen Tones. D.h. die Lautstärke wird sich auch mit 
einem anderen Compare-Wert (in weiten Bereichen) gleich bleiben, nur der 
Klang ändert sich etwas (Oberwellengehalt).

Wenn du einen Ton mit 440Hz ausgeben willst, solltest du mit einer 
PWM-Frequenz von > 10kHz arbeiten. Und dann das Tastverhältnis dieses 
hochfrequenten PWM-Signals im Takt deiner 440Hz ändern.

@ ... ... (docean)
> "klasse d" verstärker
> Das ist das nämlich...
Nein, das ist ein einfacher Komplementärtreiber zur Stromverstärkung.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Danke Lothar für die Erklärung, ich versuchs mal soweit ichs verstanden 
habe:

- Ich habe ne PWM > 10khz 0...255, Tastverhältnis X:Y
- Ich will den Ton 440hz erzeugen
- Alle 1/440 Sekunden vertausche ich X und Y

Wenn:
 X = Y --> Lautsprecher ist Stumm
 X 127...255 --> Verschiedene Lautstärken von Leise bis Laut

Hab ich das so richtig verstanden?

von Klaus (Gast)


Lesenswert?

@ Läubi Mail@laeubi.de (laeubi)

Kannst Du mal ne akustische Kostpobe geben! (wav od pm3)
Das muß ja furchtbar klingen :)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

@  Läubi Mail@laeubi.de (laeubi)
Gratulation: Soweit korrekt verstanden.

> - Ich will den Ton 440hz erzeugen
> - Alle 1/440 Sekunden vertausche ich X und Y
Fast richtig, aber du solltest noch den Faktor 2 dazubringen. Also mit 
1/880Hz auswechseln. Sonst ist der Ton eine Oktave zu tief.

> X 127...255 --> Verschiedene Lautstärken von Leise bis Laut
Besser: X=127-L und Y=127+L, mit L = Lautstärke 1..127

EDIT:
Wobei man Tastverhältnisse üblicherweise nicht mit Thi:Tlo sondern mit 
Thi:(Thi+Tlo) beschreibt. Aber das ist nur mathematische Makulatur ;-)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Klaus wrote:
> @ Läubi Mail@laeubi.de (laeubi)
>
> Kannst Du mal ne akustische Kostpobe geben! (wav od pm3)
> Das muß ja furchtbar klingen :)
Klang ist okay, in etwa vergleichbar mit nem Piezzo summer, nur tierisch 
laut :P

@Lothar Miller Ich werds mal ausprobieren mit der PWM, muß ich noch nen 
Filer vorsehen oder sowas? Oder "puffert" der Kondesator das ausreichen 
ab? Will ja auch nicht alle Tiere in der Umgebung scheu machen :D

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> @ Lothar Miller Ich werds mal ausprobieren mit der PWM,
> muß ich noch nen Filer vorsehen oder sowas?
Du kannst dann eine Spule in Reihe zum Lautsprecher schalten.

> Oder "puffert" der Kondesator das ausreichen ab?
Nein, der lässt das sogar noch besser durch (Hochpass).

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Kann ich die Spule mir irgenwei aus etwas Kupferlackdraht macehn oder 
braucht die spezielle Werte?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Läubi Mail@laeubi.de wrote:
> Kann ich die Spule mir irgenwei aus etwas Kupferlackdraht macehn oder
> braucht die spezielle Werte?
Lass sie für die ersten Versuche einfach weg ;-)

EDIT: ab hier gilt dann wieder der 
Beitrag "Re: Lautsärke einstellen bei PWM Sound"

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Habs gerade ausprobiert, funktioniert echt gut! Auch wenn ich zuerst nen 
extrem fiesen Ton erzeugt hab durch falsche PWM Einstellungen (nutze 
jezt die FastPWM) Ich wußte nicht das der Lautsprecher solche fieß hohen 
Töne erzeugen kann :D
Habe als Grundfrequenz 78326,69 hz genommen da war der Fehler zu 440/880 
hz am geringsten und hört sich ganz vernünftig an :)
Nur beim Ein/Ausschalten gibts noch nen Knacksen aber das kann man wohl 
nicht verhindern.
Um das ganze perfekt zu machen müßte ich jezt wie auf der Wikiseite jezt 
noch nen Tiefpaß nachschalten oder? Also einfach ne Spule in Reihe und 
nen Kondesator (brauch ich da sonen Bipolaren?) parrallel? Wie bestimme 
ich da die Werte für C und L? Hab sonen anz einfachen Minilautsprecher 
0.5W, 8 Ohm.

Mal ne ganz übermütige Idee: Kann man das jezt auch anwenden um WAV 
Files abzuspielen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich wußte nicht das der Lautsprecher solche fieß hohen
> Töne erzeugen kann :D
Na gut, der erzeugt die ja nicht, er gibt sie "nur" wieder ;-)

> Um das ganze perfekt zu machen müßte ich jezt wie auf der Wikiseite jezt
> noch nen Tiefpaß nachschalten oder? Also einfach ne Spule in Reihe und
> nen Kondesator parrallel?
Nein, du brauchst nur eine Spule in Reihe zum Lautsprecher. Diese Spule 
muß so dimensioniert sein, dass sie für eine bestimmte PWM-Einstellung 
(PWM-Frequenz) den Strom einfach glättet. Das ist dann ein L-R-Tiefpass.
Siehe z.B. dort: http://www.elektroniktutor.de/analog/tiefpass.html
Der R ist übrigens der Widerstand, der dann den Ton macht (Wirkleistung 
gibt es nur an einem Widerstand).

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Okay.. Hab dazu folgende Seite gefunden:
http://sim.okawa-denshi.jp/en/PWMtool.php

Hab einfach mal meine PW Frequenz eingegeben (78640hz)

L = 10 µH, R = 8 Ohm

Den Rest habe ich mal so gelassen. Da kommt dann ne nette Kurve raus und 
ein paar Werte, nur... welche Parameter sind da jezt in meinem Fall 
wichtig? Leider ist die Analogtechnik nicht so mein Gebiet ;)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Der interessante Wert ist die Grenzfrequenz (cut-off-frequency). Die 
sollte in deinem Fall so bei 5-10kHz liegen (Hörbereich). Alles darüber 
soll rausgefiltert werden. Also z.B. so wie im Screenshot.

Wobei die 8 Ohm noch zu kontrollieren wären: Schließ die Spule an den 
Lautsprecher an und mess den Widerstand. Das ist R.
Das was auf dem Lautsprecher steht ist die Impedanz bei 1kHz.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Hab jezt zwei 100µH Spulen in Reihe angeschlossen funktioniert 
wunderbar, R lag bei ziemlich genau 8 Ohm.
Klang ist auf jedenfall besser geworden hört sich ganz nett an. Vielen 
Dank schonmal!

Was mich noch interessiert: Könnte man das auch zur Widergabe einer WAV 
Datei verwenden? Da ist ja nicht der Ton sondern ein ADC wert pro Sample 
gespeichert könnte man den nutzen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Da ist ja nicht der Ton sondern ein ADC wert pro Sample
> gespeichert könnte man den nutzen?
Einfach als PWM-Wert ausgeben.
Der PWM-Wert muss dann, abhängig von der Sample-Rate, z.B. 8000 mal oder 
noch öfter pro Sekunde geändert werden.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

PWM Wert = CompareWert?

Also so wie ich das jezt mache nur das ich in das Compare register nicht 
meine Gewünschte Lautstärke sondern das Sampel reinschreibe und diesen 
Wert alle 1/8000 Sekunden (bei 8khz Samplerate) aktualisiere?

von Klausi (Gast)


Lesenswert?

Ich bestehe auf den Soundcheck! :)

von Läubi .. (laeubi) Benutzerseite


Angehängte Dateien:

Lesenswert?

Na gut Klausi hier hast du es :)

Meldodien von der oben angegeben Seite übernommen :)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Traut sich keiner? ;)

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.