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 ?
Schnell: mach einfach einen Serienwiderstand vor den Lautsprecher. Richtig: du mußt die Aussteuerung der PWM in der Software anpassen.
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
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?
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
> 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 ;-)
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...)
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).
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 :)
google mal nach... "klasse d" verstärker bzw. http://de.wikipedia.org/wiki/Digitalendstufe Das ist das nämlich...
> 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.
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?
@ Läubi Mail@laeubi.de (laeubi) Kannst Du mal ne akustische Kostpobe geben! (wav od pm3) Das muß ja furchtbar klingen :)
@ 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 ;-)
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
> @ 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).
Kann ich die Spule mir irgenwei aus etwas Kupferlackdraht macehn oder braucht die spezielle Werte?
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"
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?
> 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).
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 ;)
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.
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?
> 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.
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?
Na gut Klausi hier hast du es :) Meldodien von der oben angegeben Seite übernommen :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.