mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM Soundausgabe


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: ThoMiEn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Magnus M. (magnetus) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ja.

Autor: Alex G. (dragongamer)
Datum:

Bewertung
-1 lesenswert
nicht 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.

: Bearbeitet durch User
Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Sound Mann (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
klar - du kannst per pwm sogar WAV-Dateien (Musik Sprache...) beliebig 
wiedergeben.

Autor: Audioschlumpf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sound Mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sound Mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Falls dich das Thema interessiert hier der passende Wikipedia 
Link:

https://de.wikipedia.org/wiki/Klasse-D-Verst%C3%A4rker

Autor: ThoMiEn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas E. (picalic)
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.