Lautsärke einstellen bei PWM Sound

OP Persönliche Seite #1060884
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 ?
Angehängte Dateien:
#1060896
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
Gast #1060947
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
Moderator (Firma: Titel) Persönliche Seite #1060952
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 ;-)
Moderator (Firma: Titel) Persönliche Seite #1061010
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).
OP Persönliche Seite #1061025
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 :)
Moderator (Firma: Titel) Persönliche Seite #1061091
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.
OP Persönliche Seite #1061853
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?
Moderator (Firma: Titel) Persönliche Seite #1061900
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 ;-)
OP Persönliche Seite #1061952
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
OP Persönliche Seite #1062619
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?
Moderator (Firma: Titel) Persönliche Seite #1062702
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).
OP Persönliche Seite #1062741
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 ;)
Moderator (Firma: Titel) Persönliche Seite #1063629
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.
Angehängte Dateien:
OP Persönliche Seite #1065791
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren