Schallsensor, der Feedback über die Amplitude verschiedener Frequenzen geben kann?

Ich versuche, einen Schallsensor zu finden, der Rückmeldungen zu allen Schallfrequenzen und deren Pegeln geben kann.

Die Sensoren, die ich bei meiner Suche finde, unterstützen jedoch anscheinend nur den Schallpegel.

Ist es möglich, den Pegel einzelner Frequenzbereiche von einem Sensor zu erhalten, oder sind mehrere Sensoren erforderlich?

Ich bin neu in diesem Bereich, kenne also die genaue Terminologie nicht, aber im Wesentlichen möchte ich etwas schaffen, das unabhängig auf eine Reihe verschiedener Tonfrequenzen reagieren kann, nicht nur darauf, wie laut der Ton ist.

Idealerweise würde der Sensor mit Arduino funktionieren, aber ich habe keine Angst vor etwas, das komplizierter ist.

Antworten (2)

Am besten führen Sie eine FFT am Mikrofoneingang durch. FFT-Software ist für den Arduino verfügbar.

Dies scheint mehr Informationen zur Verfügung zu haben und ist näher an dem, was ich versuche zu tun. Gefunden und es ist dem, was ich versuche, sehr ähnlich: blog.makezine.com/archive/2010/10/…

Würde ein Grafik-Equalizer-Sensor die Aufgabe erfüllen, die Sie versuchen zu erledigen? Sparkfun führt den MSGEQ , einen 7-Band-Filter-IC, der integrierte Bandpassfilter und Spitzenwerterkennung enthält. Sie müssen einen Pin Ihres Arduino mit seinem Strobe-Pin und einem ADC-Pin verbinden, um die Amplitude zu lesen.

Der Bandpassfilter und die Spitzenwerterkennung sind meiner Meinung nach die Bausteine ​​Ihres gewünschten Sensors.

Wenn Sie mehr Anpassungen wünschen, möchten Sie wahrscheinlich einige DSP-Arbeiten am Arduino durchführen. Gibt es dafür schon eine Bibliothek?

Ja! Das sieht aus wie das, was ich brauche. Welche Audioeingangskomponente würden Sie dafür empfehlen?
Beachten Sie, dass der IC alle Ausgänge in einem einzigen Pin kombiniert. Sieht so aus, als müssten Sie es mit einem Taktsignal treffen, um einen DC-Wert für jedes Band zu erhalten? Dann würden Sie diesen DC-Wert in Ihre Arduino-ADCs einspeisen? Irgendwie kompliziert für etwas, das Sie einfach kostenlos im Arduino mit einer FFT tun können.
Ich bin nicht einverstanden. Das Umschalten eines Pins und das Ablesen eines ADC-Messwerts ist VIEL einfacher als das Durchführen einer FFT.
Auch dies ist auf 7 Bänder begrenzt und es ist ein Spitzenwert anstelle eines RMS-Werts. Eine FFT kann so viele Bänder bearbeiten, wie Sie möchten, und zwar auf beliebige Weise.