Ich muss Geräuschpegel in einem geschlossenen Bereich erkennen, also dachte ich, dass dies die richtige Wahl sein könnte.
/*EDIT
Ich möchte Geräuschpegel von etwa 30-60 dB sammeln, normalerweise menschliche Gespräche oder einfach nur Umgebungsgeräusche. Was ich damit wirklich erreichen möchte, ist, Geräusche zu sammeln, die für Menschen wahrnehmbar sind.
*/
Ich habe ein Elektret-Mikrofon mit automatischer Verstärkung von Adafruit https://www.adafruit.com/product/1713 gekauft
Ich versuche, es mit einem Himbeer-Pi 3 zu verbinden, um Schallpegel zu erkennen, aber ich konnte keine Lösung dafür finden, da die meisten Tutorials für Arduino oder andere Breakout-Boards sind, hat jemand eine Lösung dafür?
Ich habe verstanden, dass der Ausgang des Mikrofons analog ist und ich einen ADC-Konverter ADS1115 und MCP3008 habe, die nützlich wären, aber ich konnte nicht nach der Lösung suchen, die mich zur Verwendung des Mikrofons und des Konverters führen würde.
// BEARBEITEN Ich konnte den Sensor an ADC und MCP anschließen, die Werte bleiben jedoch konstant und scheinen sich überhaupt nicht zu ändern, selbst das Spielen von Songs in das Mikrofon ändert die Werte nicht. Ich bekomme einen konstanten Wert von 200 bis 300 auf MCP und etwa 1056 auf ADC.
Befolgte Tutorials auf https://learn.adafruit.com/adafruit-microphone-amplifier-breakout/measuring-sound-levels , aber ich muss sie in Dezibel auf RPI ausgeben, ich muss die Daten an einen Server senden.
Ich habe die Bibliotheken von Adafruit auf MCP3008 und ADC1115 verwendet, mache ich das falsch?
Ich muss die Schallpegel in Dezibel erfassen und auf einem Server speichern.
Beifall
Sie haben eine Mikrofonkarte mit automatischer Verstärkung ausgewählt. Das ist genau das GEGENTEIL von dem, was Sie brauchen. Sie können die tatsächlichen Audiopegel nicht messen, wenn etwas vorgeschaltet ist, das alle Audiopegel ändert ("Auto-Gain"). Also müssen Sie zuerst das richtige Mikrofonmodul verwenden, das Ihnen die tatsächlichen, ehrlichen, unveränderten Audiopegel liefert.
Zweitens versuchen Sie, Audio-LEVELS zu messen, nicht die eigentliche Audio-WELLENFORM selbst. Das heißt, Sie müssen das Audiosignal mitteln oder integrieren, um die "Hüllkurve" der Audiopegel zu erzeugen. Sie können dies in der Software tun, indem Sie das Audio mit einer hohen Rate abtasten und wild mathematische Berechnungen durchführen, oder Sie können dies viel einfacher in der Hardware tun, indem Sie das Audiosignal gleichrichten und in ein sich bewegendes DC-Signal integrieren, das den Audiopegel an einem bestimmten Punkt darstellt Moment. Dann können Sie diesen variierenden DC in Dezibel oder was auch immer abtasten und skalieren.
Ich würde sehr empfehlen, sich eine Mikrofonplatine zu besorgen, die im Wesentlichen genau das tut, was Sie vorschlagen. Nämlich das Sparkfun Sound Detector Board. Dieses Board verfügt über die Elektret-Mikrofonkapsel und auch den Mikrofonvorverstärker sowie einen Spitzenwertdetektor und einen Ausgangspufferverstärker. Alles, was Sie tun müssen, ist, den Peak-Detektor-Ausgang von dieser Platine mit einem analogen Eingangspin Ihres Arduino zu verbinden, und Sie erhalten die Audio-Hüllkurve auf einem Silbertablett geliefert. Kinderleicht.
Beispiel: https://www.sparkfun.com/products/12642
Die automatische Verstärkungsregelung (AGC) auf Ihrer vorhandenen Mikrofonplatine ist hier nicht das, was Sie wollen - ein Schallpegeldetektor wird durch die Aktion der AGC-Schleife abgeworfen, die die Verstärkung überall ändert, während sie versucht, sie aufrechtzuerhalten einen konstanten Ausgangspegel (was würde man sonst von einer AGC-Schleife erwarten?). Sie können sich auch einfach ein billiges Elektretmikrofon wie das von Sparkfun besorgen und es direkt in dem von Ihnen zusammengestellten Schaltkreis verwenden.
Eine der Grundwahrheiten moderner, billiger ADCs, insbesondere derjenigen, die in hochintegrierten Systemen bereitgestellt werden, ist, dass ihr Dynamikbereich durch Rauschen im unteren Bereich und die niedrige verfügbare Versorgungsspannung im oberen Bereich begrenzt ist. Darüber hinaus nutzt die digitale Logarithmierung die Ihnen zur Verfügung stehenden ADC-Bits schlecht aus - kleine Signaländerungen am unteren Ende verursachen eine relativ große Änderung im Protokoll, sind jedoch für den ADC aufgrund seiner begrenzten Auflösung schwer zu unterscheiden .
Als Ergebnis all dessen würde ich einen linearen RMS-DC-Wandlerchip in dB verwenden, um Ihre Toneingabe in dB umzuwandeln, und dann diese erkannte "Steuerspannung" zu Messzwecken an Ihren ADC speisen. Zum Glück ist das nicht schwer – der RMS-DC-Wandler eines THAT4316 läuft problemlos mit 3,3 oder 5 VDC und ist einfach anzuwenden – eine Beispielschaltung, die ihn verwendet, das oben verlinkte Sparkfun-Elektretmikrofon und das rauscharme Dual-Mikrofon LT1678 Operationsverstärker ist unten gezeigt.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
OA1A, R5 und R6 sind ein nicht invertierender Verstärker mit Einzelversorgung und Verstärkung = 100, der als Mikrofonvorverstärker dient, dessen Eingang auf den Mittelpunkt des Versorgungsbereichs durch R2 vorgespannt ist, der auch das Mikrofon vorspannt. Die Verstärkung wurde gewählt, weil der THAT4316 einen minimalen Eingangspegel von 100 nA oder 100 uV mit dem gewählten Widerstand hat und wir mit der 5 mV/Pa-Empfindlichkeit des gewählten Mikrofons nur 1 uV vom Mikrofon für einen 30-dB-Eingang erhalten. C5 und R1 AC koppeln das Audiosignal an U1 und wandeln es jeweils in einen Strom um, während C2 der RMS-DC-Zeitkondensator ist. R3, R4 und OA1B erhöhen den Ausgangshub von +/-300 mV von U1, um ihn besser an den Eingangsbereich des ADC anzupassen. C1, C3, C4 und C6 bieten eine Versorgungsentkopplung verschiedener Art.
Beachten Sie, dass C2 und C5 Filmkondensatoren sein sollten (keine Keramik-, Elektrolyt- oder Tantalkondensatoren) und R1, R3, R4, R5 und R6 1 % oder bessere Widerstände sein sollten, vorzugsweise Dünnfilm- oder Metallfilm, da sie kein übermäßiges Rauschen aufweisen. Außerdem sollte C3 direkt zwischen Pin 8 von U1 und dem geerdeten Ende von C2 angeschlossen werden - dies verhindert, dass Stromspitzen vom RMS-DC-Wandler von U1 den Rest des Betriebs der Schaltung durcheinander bringen. Schließlich, wenn Sie keinen LT1678 bekommen können, sollten Sie auf den Ausgangshub achten - Sie brauchen ein Teil, das innerhalb von ein paar hundert mV oder so von der negativen Schiene ziehen kann, zusätzlich zum Laufen von a einzelne 3,3-V-Versorgung mit einem anständigen Gleichtaktbereich und leise - der LT1678 kann 4,4 nV/Wurzel-Hz-Spannungsrauschen bei 10 Hz und mit dem niedrigen Zin (dominiert von R2) und den gewählten Widerstandswerten (Tipp:
Das resultierende Signal ist eine Spannung, die von fast 0 V bis fast 3,3 V schwingt, mit einer linearen Übertragungsfunktion in dB – der RMS-DC-Wandler des THAT4316 hat die schöne Eigenschaft, dass der Ausgang 6 mV pro dB Eingangspegel beträgt.
Der Hersteller des Mikrofons sagt, dass sein Verstärkerausgang "leicht mit jedem Analog/Digital-Wandler verwendet werden kann, der bis zu 3,3 V Eingang hat. Wenn Sie es in einen Line-Eingang leiten möchten, verwenden Sie einfach einen 1-100uF-Sperrkondensator in Reihe (100uF klingt am besten)."
Sie haben hier zwei Möglichkeiten:
jonk
Ming-Jin
jonk
DreiPhasenEel
Ming-Jin
Ming-Jin
Ming-Jin
jonk
jonk
DreiPhasenEel
jonk
Ming-Jin
jonk
Yoyo