Sound Detektor mit High/Low Ausgabe (Mems Mic + OpAmp)

OP #7391629
Lesenswert?

Hallo liebe Leute,

da ich über die Suche nicht zu dem fündig geworden bin, was ich brauche, schreibe ich hier mal meine Gedanken.

Worum geht es:

Ich brauche einen Schall-Sensor, der nur auslöst wenn ein überschwelliger Schallpegel auftritt. Das ganze soll dann als High/low Signal an ein Arduino übermittelt werden, um hier einen Interrupt auszulösen.

Das analoge auslesen mit softwarseitigem def. Schwellenwert ist einfacher und naheliegender, aber die Schallsignale können sehr kurz sein, so dass die Loop unter 100ms laufen müsste um die Signale sicher zu detektieren.

Da noch andere Sachen in der Loop passieren ist es etwas unpraktisch.

Dazu soll das ganz so kompakt wie möglich bei 3.3V aufgebaut werden. Aus diesem Grund kommt ein Mems-Mikrofon und ein Op-Amp mit DFN6 footprint zum Einsatz.

Nach einigem belesen habe ich die im Anhang befindliche Schaltung zusammengestellt.

Es wäre wunderbar, wenn mir hierzu jemand Kritik geben könnten, ob das hardwareseitig funktionieren würde? - Der Schwellenwert soll per Poti einstellbar sein.

Vielen Dank - Horst

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7391634
Lesenswert?

Horst G. schrieb:

die im Anhang befindliche Schaltung

Wieder so ein viereckiger Kasten.... :-/

Warum nimmst du nicht das allseits weltweit erkennbare und zudem leserliche Symbol für einen OPAmp?

Aber zur Beruhigung: die Schaltung wird funktionieren wenn du unterhalb vom C4 noch einen Punkt reinmalst. Und den C4 entfernst. Und auch den C2 entfernst. Und statt des falschen Textes "J-FET" einfach BC847 o.ä. dranschreibst.

Warum machst du da eigentlich noch Widerstände an den Ausgang des MEMS-Mikros? Das Datenblatt verlangt die nicht. Lass also den R1 und R2 auch noch weg.

aber die Schallsignale können sehr kurz sein, so dass die Loop unter 100ms laufen müsste um die Signale sicher zu detektieren.

Warum läuft deine Hauptschleife so derartig langsam? Wenn meine Hauptschleifen länger als 10ms brauchen, dann suche ich den Fehler, der sie so langsam macht.

Wenn du das derzeit noch nicht hinbekommst (mit ein wenig mehr Übung und Nachdenken geht das leicht, weil der 16MHz-AVR-µC in dieser Zeit ja 1,6 Millionen Maschinenbefehle ausführen kann), dann bastel noch ein Monoflop hinter deinen Pegelerkenungsmechanismus, das jeden auch noch so kurzen Impuls auf >100ms verlängert.

Ich brauche einen Schall-Sensor, der nur auslöst wenn ein überschwelliger Schallpegel auftritt.

Ich würde da gar keinen großartigen externen Kladderadatsch ranbasteln, sondern den MEMS-Ausgang an den Anlaogeingang des µC anschließen, dann den Pegel mit einem ADC schnell genug einlesen und in der Software auswerten.

Angehängte Dateien:
#7391638
Lesenswert?

Horst G. schrieb:

Das ganze soll dann als High/low Signal an ein Arduino übermittelt werden, um hier einen Interrupt auszulösen.

Das analoge auslesen mit softwarseitigem def. Schwellenwert ist einfacher und naheliegender, aber die Schallsignale können sehr kurz sein, so dass die Loop unter 100ms laufen müsste um die Signale sicher zu detektieren.

Je nach Controller hättest du dafür sogar einen Analog-Komparator mit Komparator-Interrupt oder ein ADC-Interrupt bei überschreiten eines bestimmten Wertes. Komplett in Hardware gegossen im Controller, die Software muss nichts machen, außer ab und an mal die Interruptflags anschauen.

Horst G. schrieb:

Nach einigem belesen habe ich die im Anhang befindliche Schaltung zusammengestellt.

Nimm nen Dual-OP-Amp. Dann kannst du einen zum Verstärken des Signals (s. Datenblatt S. 3, Application Circuit) und einen als Komparator nehmen.

#7391643
Lesenswert?

Horst G. schrieb:

Nach einigem belesen habe ich die im Anhang befindliche Schaltung zusammengestellt.

Welcher J-Fet ist NPN ?

Die (Bipolartransistor) Schaltung ist abhängig von der Stromverstärkung des Exemplars, daher baut man so was seit 40 Jahren nicht mehr so auf, man müsste mit einem Trimmpoti justieren. Auch dein Pot1 ist Unsinn, wenn man es gleich richtig aufbaut.

Heute gibt es OpAmps.

OP #7391695
Lesenswert?

Vielen Dank für die schnellen Antworten.

Ich bitte um entschuldigung, wenn die Schaltung fehlerhaft ist. Wie Ihr bemerkt bin ich noch Anfänger und versuche mich Stück für Stück weiter zu entwickeln, was mir offensichtlich mit dieser Schaltung nicht gelungen ist.

Mir war es wichtig die Loop freizuhalten und wirklich nur mit einem Interrupt zu schalten.

Dass das auch im controller möglich ist war mir nicht bewusst. Ich dachte, dass jeder analoge Wert in der loop "geprüft" werden muss.

Mir ist es nur wichtig, dass jedes Signal sicher detektiert wird und hierbei die loop möglichst wenig beansprucht, (u.a. da das ganz so energiesparend wie möglich aufgebaut sein soll).

Ich werde versuchen die Schaltung nach Euren Anmerkungen zu optimieren und die Bezeichnungen zu korrigieren

#7392142
Lesenswert?

Horst G. schrieb:

Mir war es wichtig die Loop freizuhalten und wirklich nur mit einem Interrupt zu schalten.

Ein passender Vorschlag wurde schon weiter oben genannt, nämlich Vorverstärker und Komparator (Schmitt-Trigger) wie im Ahhang zu sehen. Der Controller hat wenig zu tun und muss nur die ankommenden Interrupts (3,3V Pegel) auswerten. Auch sehr kurze Tonbursts werden erkannt. Die Ansprechschwelle kann über den Vorverstärkungsfaktor und/oder Breite der Komparator-Schalthysterese festgelegt werden.

Angehängte Dateien:
OP #7392416
Lesenswert?

Robert M. schrieb:

Horst G. schrieb:

Mir war es wichtig die Loop freizuhalten und wirklich nur mit einem Interrupt zu schalten.

Ein passender Vorschlag wurde schon weiter oben genannt, nämlich Vorverstärker und Komparator (Schmitt-Trigger) wie im Ahhang zu sehen. Der Controller hat wenig zu tun und muss nur die ankommenden Interrupts (3,3V Pegel) auswerten. Auch sehr kurze Tonbursts werden erkannt. Die Ansprechschwelle kann über den Vorverstärkungsfaktor und/oder Breite der Komparator-Schalthysterese festgelegt werden.

Super, vielen Dank. Ich werde Die Schaltung mit den von mir benötigten Bauteilen modifizieren.

#7392556
Lesenswert?

Die Schaltung sollte am Q1 ienen Spannungsteiler an der Basis haben, sinst in der Betriebspunkt unbestimmt. Zudem ist die Schaltung zu schnell. Das sollte ein Tiefpass fuer die erwartete Frequenz sein. Es gibt kein Schallereigniss, welche zB nur 10us kurz ist. Das waere eher ein Glitch, oder Einstrahlung.

Gast #7392731
Lesenswert?

Horst G. schrieb:

Anbei nun die neue Version mit den Änderungen.

Jetzt hast du Q1 mit einer Drahtbrücke außer Funktion gesetzt.

Unabhängig davon mehlt mir da eine vernünftige Einstellung des Arbeitspunktes von Q1. Die Schaltung hängt sehr von dessen Verstärkungsfaktor ab, die man vor dem Kauf nur erraten kann.

Bevor wir hier weiter übe die Schaltung diskutieren würde ich gerne sehen, wie das Ausgangssignal des Mikrofons aussieht und wie du das gewünschte Signal von unerwünschten Störungen trennen willst. Denn einfach nur auf eine simple Spannungs-Schwelle zu reagieren, klappt erfahrungsgemäß meistens nicht. Es gibt zu viele andere Geräusche, die dann unerwünscht erfasst werden.

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