PWM Soundausgabe

Gast #5431158
Lesenswert?

Hallo.
Ein Buzzer soll über PWM vom µC ansteuern werden.
Ist es möglich, über ein einzelnes PWM-Signal verschiedene Töne mit 
unterschiedlicher Lautstärke auszugeben?
D.h.: Die Lautstärke wird über ein Menü eingestellt (laut, mittel, 
leise) und anschließend werden alle Töne mit dieser definierten 
Lautstärke ausgegeben.
Ich habe das bisher immer mit mehreren PWM-Ausgängen und 
unterschiedlichen Vorwiderständen realisiert.
Vielen Dank schon einmal für die Hilfe!
#5431274
Lesenswert?

Hast du wenigstens eine Minute gegoogelt?

In Arduino gibt es sogar eine extra Funktion dafür: 
https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/

Mit welchen Buzzern das konkret kompatibel ist, musst du selbst 
rausfinden.

EDIT: Lautstärke kannst du so direkt allerdings nicht einstellen denn 
die PWM selbst beschreibt schon die Sinuskurve und damit die Frequenz.
Gast #5431279
Lesenswert?

>Hast du wenigstens eine Minute gegoogelt?

>In Arduino gibt es sogar eine extra Funktion dafür:
>https://www.arduino.cc/reference/en/language/funct...

>Mit welchen Buzzern das konkret kompatibel ist, musst du selbst
>rausfinden.

Die Frage war aber nach der Lautstärke.

>EDIT: Lautstärke kannst du so direkt allerdings nicht einstellen denn
>die PWM selbst beschreibt schon die Sinuskurve und damit die Frequenz.

Klar kann man. Nur nicht mit Deiner geposteten Funktion. Es gibt 
genügend High-Frequency-PWM Beispiele, die beliebige Töne erzeugen z.B. 
die Mozzi-Lib.
Gast #5431957
Lesenswert?

> WAV-Dateien ... beliebig wiedergeben.

Das halte ich in dieser Allgemeinheit für ein Laiengerücht.

Ich hab hier gerne auch mal WAV-Dateien im 32 bit Floatformat
mit 192 oder 384 kbit/s und z.T. mit mehreren Kanälen.

Da kommt dann nur noch Husten aus einem Antuino.
Gast #5432160
Lesenswert?

> Das halte ich in dieser Allgemeinheit für ein Laiengerücht.

> Ich hab hier gerne auch mal WAV-Dateien im 32 bit Floatformat
> mit 192 oder 384 kbit/s und z.T. mit mehreren Kanälen.

Mittels PWM lässt sich sogar HIFI-Qualität erreichen. Die Anzahl der 
Kanäle, die Bitrate und die Auflösung spielen keine Rolle.

Die erreichbare Qualität hängt nur von der Leistungsfähigkeit der 
Plattform (wurde vom TO nicht genannt) und der Qualität der Filter ab.

Das er einen Arduino benutzt, wurde hier lediglich interpretiert. 
Niemand weiß was der TO wirklich benutzt.
Gast #5433123
Lesenswert?

Vielen Dank für die Antworten.
Es handelt sich bei der Soundausgabe lediglich um BEEP's zur 
akkustischen Unterstützung für Tasterbetätigungen, die in drei 
verschieden Lautstärken ausgegeben werden sollen.
µC (ATmega1284P) --> Transistor --> Buzzer
Gast #5433149
Lesenswert?

Audioschlumpf schrieb:
> WAV-Dateien im 32 bit Floatformat mit 192 oder 384 kbit/s

Da ist aber nicht nur der Arduino der einzige der das nicht sauber 
wiedergeben kann, die Schaltung die Audio mit 384kBit/s mit 194dB SNR 
wieder gibt will ich sehen.

Wobei du ja von floating point schriebst, das hat ja eh "nur" ein SNR 
von 23+1 Bit, also "nur" 146dB SNR.
#5433158
Lesenswert?

ThoMiEn schrieb:
> Es handelt sich bei der Soundausgabe lediglich um BEEP's zur
> akkustischen Unterstützung für Tasterbetätigungen,

In dem Fall kann man eine simple Lautstärkeänderung auch einfach über 
den PWM-Dutycycle erreichen. Das ändert zwar auch die Klangfarbe des 
Pieps, aber für eine einfache akustische Rückmeldung spielt das i.d.R. 
keine Rolle.
Z.B. bei einem 1kHz Pieps: maximale Lautstärke ist 500µs an/500µs aus.
Mit 100µs an/900µs aus ist es ebenfalls 1kHz, aber leiser, der Ton 
klingt aber etwas "schärfer".
Einen netten Effekt erhält man, wenn man die Impulslänge dynamisch 
während des Tons verändert, z.B. alle 10ms die Einschaltdauer halbiert. 
Das klingt dann nicht nach "Beep", sondern wie "Ping".
Gast #5433160
Lesenswert?

Sound Mann schrieb:
> Mittels PWM lässt sich sogar HIFI-Qualität erreichen.

Das hingegen würde mich ernsthaft interessieren. Hast du da Links dazu?

Mit Multi-level PWM (zwei PWM-Ausgänge gewichtet zusammen schalten) oder 
Delta-Sigma (keine PWM) lässt sich tatsächlich gute Tonqualität 
erreichen, siehe beispielhaft hier: 
https://www.edn.com/design/analog/4441113/A-faster-PWM-based-DAC

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