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
:
Verschoben durch Moderator
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.
:
Bearbeitet durch Moderator
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.
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.
Lothar M. schrieb: > Und den C4 entfernst. Und auch den C2 entfernst. Mich würde interessieren, was der TO mit den beiden Cs bezwecken wollte.
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
Klaus H. schrieb: > Lothar M. schrieb: >> Und den C4 entfernst. Und auch den C2 entfernst. > Mich würde interessieren, was der TO mit den beiden Cs bezwecken wollte. Ich habe die Schaltung von einer Vorlage abgewandelt, daher habe ich die drin gelassen.
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.
Horst G. schrieb: > Ich habe die Schaltung von einer Vorlage abgewandelt, daher habe ich die > drin gelassen. Dann würde mich die Vorlage interessieren - oder hast du 100pf mit 100nF verwechselt?
Vermutlich Abblockkondensator schlicht falsch eingezeichnet.
Horst G. schrieb: > Ich habe die Schaltung von einer Vorlage abgewandelt, daher habe ich die > drin gelassen. Kannst du mal einen Link oder ein Foto zu dieser Schaltung posten?
:
Bearbeitet durch Moderator
Klaus H. schrieb: > Horst G. schrieb: >> Ich habe die Schaltung von einer Vorlage abgewandelt, daher habe ich die >> drin gelassen. > > Dann würde mich die Vorlage interessieren - oder hast du 100pf mit 100nF > verwechselt? Sehr gerne, die Schaltung habe ich von dieser Seite abgewandelt: https://www.electronicshub.org/interfacing-sound-sensor-with-arduino/
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.
Anbei nun die neue Version mit den Änderungen. Wo müsste der Poti hin, damit ich die Schwelle einstellen kann? Direkt hinter Mic-Output?
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.
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.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.