- Erforderliche Materialien:
- Schaltplan:
- Verwenden der Regressionsmethode zum Berechnen von dB aus dem ADC-Wert:
- Arduino-Programm zur Messung des Schallpegels in dB:
- Funktionsweise des Arduino Schallpegelmessers:
- Verstärker mit Filterschaltung:
Die Lärmbelastung hat aufgrund der hohen Bevölkerungsdichte zunehmend an Bedeutung gewonnen. Ein normales menschliches Ohr kann Schallpegel von 0 dB bis 140 dB hören, bei denen Schallpegel von 120 dB bis 140 dB als Rauschen betrachtet werden. Lautstärke oder Schallpegel werden üblicherweise in Dezibel (dB) gemessen. Wir haben einige Instrumente, die die Schallsignale in dB messen können, aber diese Messgeräte sind etwas teuer und leider haben wir kein sofort einsatzbereites Sensormodul zum Messen der Schallpegel in Dezibel. Und es ist nicht wirtschaftlich, teure Mikrofone für ein kleines Arduino-Projekt zu kaufen, das den Schallpegel in einem kleinen Klassenzimmer oder Wohnzimmer messen soll.
In diesem Projekt werden wir ein normales Elektret-Kondensatormikrofon mit Arduino verwenden und versuchen, den Schall- oder Geräuschverschmutzungspegel in dB so nahe wie möglich am tatsächlichen Wert zu messen. Wir werden eine normale Verstärkerschaltung verwenden, um die Tonsignale zu verstärken und sie Arduino zuzuführen, wobei wir die Regressionsmethode verwenden, um die Tonsignale in dB zu berechnen. Um zu überprüfen, ob die erhaltenen Werte korrekt sind, können wir die Android-Anwendung „Sound Meter“ verwenden. Wenn Sie ein besseres Messgerät haben, können Sie dieses für die Kalibrierung verwenden. Beachten Sie, dass dieses Projekt nicht darauf abzielt, dB genau zu messen, sondern nur Werte liefert, die dem tatsächlichen Wert so nahe wie möglich kommen.
Erforderliche Materialien:
- Arduino UNO
- Mikrofon
- LM386
- 10K variabler POT
- Widerstände und Kondensatoren
Schaltplan:
Die Schaltung für dieses Arduino-Schallpegelmessgerät ist eine sehr einfache Schaltung, bei der wir die Audioverstärkerschaltung LM386 verwendet haben, um die Signale von einem Kondensatormikrofon zu verstärken und an den analogen Anschluss von Arduino zu liefern. Wir haben diesen LM386-IC bereits verwendet, um eine Niederspannungs-Audioverstärkerschaltung aufzubauen, und die Schaltung bleibt mehr oder weniger dieselbe.
Die Verstärkung dieses speziellen Operationsverstärkers kann mit einem Widerstand oder Kondensator über Pin 1 und 8 von 20 auf 200 eingestellt werden. Wenn sie frei bleiben, wird die Verstärkung standardmäßig auf 20 eingestellt. Für unser Projekt haben wir die maximal mögliche Verstärkung durch diese Schaltung, also verwenden wir einen Kondensator mit einem Wert von 10uF zwischen den Pins 1 und 8, beachten Sie, dass dieser Pin polaritätsempfindlich ist und der negative Pin des Kondensators an Pin 8 angeschlossen werden sollte. Der komplette Verstärker Die Schaltung wird vom 5-V-Pin des Arduino gespeist.
Der Kondensator C2 dient zum Filtern des Gleichstromrauschens vom Mikrofon. Wenn das Mikrofon Geräusche wahrnimmt, werden die Schallwellen grundsätzlich in Wechselstromsignale umgewandelt. Mit diesem Wechselstromsignal kann Gleichstromrauschen verbunden sein, das von diesem Kondensator gefiltert wird. In ähnlicher Weise wird auch nach der Verstärkung ein Kondensator C3 verwendet, um jegliches Gleichstromrauschen zu filtern, das während der Verstärkung hinzugefügt worden sein könnte.
Verwenden der Regressionsmethode zum Berechnen von dB aus dem ADC-Wert:
Sobald wir mit unserer Schaltung fertig sind, können wir das Arduino an den Computer anschließen und das Beispielprogramm „Analog Read Serial“ von Arduino hochladen, um zu überprüfen, ob wir gültige ADC-Werte von unserem Mikrofon erhalten. Jetzt müssen wir diese ADC-Werte in dB umwandeln.
Im Gegensatz zu anderen Werten wie der Messung von Temperatur oder Luftfeuchtigkeit ist die Messung von dB keine einfache Aufgabe. Weil der Wert von dB nicht linear mit dem Wert von ADCs ist. Es gibt nur wenige Möglichkeiten, zu denen Sie gelangen können, aber jeder mögliche Schritt, den ich versucht habe, hat mir keine guten Ergebnisse gebracht. Sie können dieses Arduino-Forum hier lesen, wenn Sie es ausprobieren möchten.
Für meine Anwendung benötigte ich beim Messen der dB-Werte nicht viel Genauigkeit und entschied mich daher für eine einfachere Methode zur direkten Kalibrierung der ADC-Werte mit dB-Werten. Für diese Methode benötigen wir ein Schalldruckmessgerät (ein Schalldruckmessgerät ist ein Instrument, das dB-Werte lesen und anzeigen kann), aber leider hatte ich keines und sicher werden die meisten von uns dies nicht tun. So können wir die Android-Anwendung namens "Sound Meter" verwenden, die kostenlos aus dem Play Store heruntergeladen werden kann. Es gibt viele solcher Arten von Anwendungen und Sie können alles Ihrer Wahl herunterladen. Diese Anwendungen verwenden das eingebaute Mikrofon des Telefons, um den Geräuschpegel zu erkennen und auf unserem Handy anzuzeigen. Sie sind nicht sehr genau, würden aber sicherlich für unsere Aufgabe funktionieren. Beginnen wir also mit der Installation der Android-Anwendung. Meine Anwendung sah beim Öffnen ungefähr so aus
Wie ich bereits sagte, ist die Beziehung zwischen dB- und Analogwerten nicht linear, daher müssen wir diese beiden Werte in unterschiedlichen Intervallen vergleichen. Notieren Sie sich einfach den Wert des ADC, der auf dem Bildschirm für verschiedene dB angezeigt wird, die auf Ihrem Mobiltelefon angezeigt werden. Ich habe ungefähr 10 Lesungen gemacht und sie sahen unten so aus, Sie könnten ein bisschen variieren
Öffnen Sie eine Excel-Seite und geben Sie diese Werte ein. Im Moment verwenden wir Excel, um die Regressionswerte für die obige Zahl zu ermitteln. Bevor wir ein Diagramm zeichnen und überprüfen, in welcher Beziehung sie beide zueinander stehen, sah meins unten so aus.
Wie wir sehen können, hängt der Wert von dB nicht linear mit dem ADC zusammen, was bedeutet, dass Sie nicht für alle ADC-Werte einen gemeinsamen Multiplikator haben können, um die entsprechenden dB-Werte zu erhalten. In diesem Fall können wir die Methode der „linearen Regression“ verwenden. Grundsätzlich wird diese unregelmäßige blaue Linie in die nächstmögliche gerade Linie (schwarze Linie) umgewandelt und die Gleichung dieser geraden Linie angegeben. Diese Gleichung kann verwendet werden, um den äquivalenten Wert von dB für jeden ADC-Wert zu ermitteln, den der Arduino misst.
In Excel haben wir ein Plug-In für die Datenanalyse, das automatisch die Regression für Ihren Wertesatz berechnet und dessen Daten veröffentlicht. Ich werde nicht darauf eingehen, wie man es mit Excel macht, da es außerhalb des Rahmens dieses Projekts liegt. Außerdem ist es für Sie einfach, Google zu verwenden und es zu lernen. Sobald Sie die Regression für den Wert berechnet haben, gibt Excel einige Werte an, wie unten gezeigt. Wir interessieren uns nur für die unten hervorgehobenen Zahlen.
Sobald Sie diese Zahlen erhalten haben, können Sie die folgende Gleichung wie folgt bilden
ADC = (11.003 * dB) - 83.2073
Daraus können Sie die dB ableiten
dB = (ADC + 83.2073) / 11.003
Möglicherweise müssen Sie Ihre eigene Gleichung fahren, da die Kalibrierung möglicherweise abweicht. Bewahren Sie diesen Wert jedoch sicher auf, da wir ihn beim Programmieren des Arduino benötigen.
Arduino-Programm zur Messung des Schallpegels in dB:
Das vollständige Programm zum Messen von dB ist unten angegeben, einige wichtige Zeilen werden unten erläutert
In diesen beiden obigen Zeilen lesen wir den ADC-Wert von Pin A0 und konvertieren ihn mit der soeben abgeleiteten Gleichung in dB. Dieser dB-Wert entspricht möglicherweise nicht dem tatsächlichen dB-Wert, bleibt jedoch den in der mobilen Anwendung angezeigten Werten ziemlich nahe.
adc = analogRead (MIC); // Den ADC-Wert vom Verstärker lesen dB = (adc + 83.2073) / 11.003; // ADC-Wert mit Regressionswerten in dB konvertieren
Um zu überprüfen, ob das Programm ordnungsgemäß funktioniert, haben wir dem digitalen Pin 3 eine LED hinzugefügt, die 1 Sekunde lang hoch geht, wenn der Arduino ein lautes Rauschen von über 60 dB misst.
if (dB> 60) {digitalWrite (3, HIGH); // LED einschalten (HIGH ist der Spannungspegel) delay (1000); // warte auf ein zweites digitalWrite (3, LOW); }}
Funktionsweise des Arduino Schallpegelmessers:
Wenn Sie mit dem Code und der Hardware fertig sind, laden Sie einfach den Code hoch und öffnen Sie Ihren seriellen Monitor, um die von Ihrem Arduino gemessenen dB-Werte anzuzeigen. Ich habe diesen Code in meinem Zimmer getestet, wo es außer dem Verkehr draußen nicht viel Lärm gab, und ich habe die folgenden Werte auf meinem seriellen Monitor erhalten, und die Android-Anwendung hat auch etwas in der Nähe davon angezeigt
Die vollständige Arbeitsweise des Projekts finden Sie im Video am Ende dieser Seite. Sie können projizieren, um Geräusche im Raum zu erkennen und zu überprüfen, ob in jedem Klassenzimmer Aktivitäten stattfinden oder wie viel Lärm erzeugt wird oder ähnliches. Ich habe gerade eine LED so eingestellt, dass sie 2 Sekunden lang hoch geht, wenn ein Ton über 60 dB aufgenommen wird.
Die Arbeit ist seltsamerweise zufriedenstellend, kann aber sicher für Projekte und andere grundlegende Prototypen verwendet werden. Mit ein paar weiteren Grabungen stellte ich fest, dass das Problem tatsächlich bei der Hardware lag, die mir immer noch hin und wieder Geräusche bereitete. Also habe ich andere Schaltkreise ausprobiert, die in Funkenfunken-Mikrofonplatinen mit Tiefpass- und Hochpassfilter verwendet werden. Ich habe die Schaltung unten erklärt, damit Sie es versuchen können.
Verstärker mit Filterschaltung:
Hier haben wir Tiefpass- und Hochpassfilter mit Verstärker verwendet, um das Rauschen in dieser Schallpegelmessschaltung zu reduzieren, sodass die Genauigkeit erhöht werden kann.
In dieser obigen Schaltung haben wir den beliebten Verstärker LM358 verwendet, um die Signale vom Mikrofon zu verstärken. Zusammen mit dem Verstärker haben wir auch zwei Filter verwendet, das Hochpassfilter wird von R5, C2 gebildet und das Tiefpassfilter wird von C1 und R2 verwendet. Diese Filter sind so ausgelegt, dass sie nur Frequenzen von 8 Hz bis 10 kHz zulassen, da das Tiefpassfilter alles unter 8 Hz und das Hochpassfilter alles über 15 kHz filtert. Dieser Frequenzbereich ist ausgewählt, da mein Kondensatormikrofon nur von 10 Hz bis 15 kHz arbeitet, wie im folgenden Datenblatt gezeigt.
Wenn sich Ihr Frequenzbedarf ändert, können Sie die folgenden Formeln verwenden, um den Wert von Widerstand und Kondensator für Ihre erforderliche Frequenz zu berechnen.
Frequenz (F) = 1 / (2πRC)
Beachten Sie auch, dass der hier verwendete Widerstandswert auch die Verstärkung des Verstärkers beeinflusst. Die Berechnung für den Wert des in dieser Schaltung verwendeten Widerstands und Kondensators ist unten gezeigt. Sie können das Excel-Blatt hier herunterladen, um die Frequenzwerte zu ändern und die Regressionswerte zu berechnen.
Die frühere Strecke hat meine Erwartungen erfüllt, daher habe ich diese nie ausprobiert. Wenn Sie diese Schaltung ausprobieren, lassen Sie mich in den Kommentaren wissen, ob sie besser funktioniert als die vorherige.