Forum: Mikrocontroller und Digitale Elektronik Elektret Mikrofon an ADC mit Auswertung


von Christian K. (christiankarle)


Lesenswert?

Guten Morgen liebe Community,

ich habe gestern die ersten Erfahrungen mit einem ADC gemacht. Ich habe 
Spannungen und Widerstände gemessen und das hat soweit alles 
funktioniert. :)

Ich benutze einen ATtiny85. Nun habe ich folgendes Problem:

Ich möchte ein Elektret-Mikrofon vom Typ MCE100 mit dem ADC verbinden.
Hierzu habe ich den mit dem Gehäuse verbundenen Pin des Mikrofons auf 
GND gelegt und den anderen Pin über einen 4,7 kOhm Widerstand an 9V 
Versorgungsspannung geklatscht. Danach mit einem 1µF Kondensator 
zwischen R1 und Mikrofon entkoppelt und das entkoppelte Signal dann auf 
den ADC gelegt.

Leider tut sich nichts...

Ich möchte das der µC bei einem bestimmten Pegel eine LED an- oder 
ausschaltet.

Meine Überlegung:

Das Mikrofon erzeugt eine Sinusförmige Spannung. Der µC kann nur die 
positive Halbwelle messen. Meine Sampling rate beträgt 125kH also sollte 
es doch möglich sein eine Spannungsspitze zu treffen... Mein ADC hat 
außerdem eine Auflösung von 10-Bit. Dies bedeutet das er bei einer 
Referenzspannung von 5V in Abstufungen von 5V : 1024 = 0,00488V Messen 
kann. Das Mikrofon sollte doch in der Lage sein eine positive Halbwelle 
von deutlich mehr als 0,00488V zu erzeugen. Oder sehe ich das falsch ?


Für Hilfe wäre ich sehr dankbar :)

: Bearbeitet durch User
von Wobbel (Gast)


Lesenswert?

Das Signal ist ohne Transistorstufe zu schwach.

Hier gehts in die Richtung :

Beitrag "Simpler Klatschschalter - dynamisch geht, elektret nicht"

von Christian K. (christiankarle)


Lesenswert?

Was wäre wenn ich die Referenzspannung auf 1,1V herabsetzten würde ? Die 
Abstufungen würden noch feiner werden. Wäre es dann auch ohne 
Vorverstärker möglich ? Ich kenne mich mit Analogschaltungen nicht sehr 
gut aus...

von diff (Gast)


Lesenswert?

Der Tiny85 hat doch differentielle Kanäle mit bis zu 20x gain. Probiers 
doch mal damit zu verstärken.

von andi6510 (Gast)


Lesenswert?

habe gerade mal in diversen Datenblätter geschaut, was aus solchen 
Kapseln rauskommt: die Empfindlichkeit liegt etwa bei -40dB (0dB = 
1V/Pa)

Bei einem üblichen Schalldruck von 60dB (Zimmerlautstärke) hat man 
0.02Pa
davon nochmal 40dB "Unempfindlichkeit" runter kommt man bei 200uV raus.

also 0.0002V

jetzt vergleich das mit deinen Zahlen.

Du solltest einen Verstärker zwischenschalten. TL071 bietet sich an.

von MaWin (Gast)


Lesenswert?

Christian Karle schrieb:
> Leider tut sich nichts...

Natürlich nicht.

Dein uC-Einagng hat gar keine definierte Gleichspannung.
Du brauchst erst mal eine Vorspannungserzeugung, am einfachsten durch 
einen hochohmigen Spannungsteiler

+9V?    +5V
 |       |
4k7     22k
 |       |
 +--1uF--+-- A/D Eingang
 |       |
Mikro   22k
 |       |
GND     GND

> Ich möchte das der µC bei einem bestimmten Pegel eine LED an- oder
> ausschaltet.

Um A/D zu messen musst du den Analogwert erfassen und dann entscheiden 
was zu tun ist.

Hint: Das einfache Überschreiten eines Analogpegelwerts ergibt KEINEN 
sinnvoll funktionierenden Klatschschalter. Da muss man schon Frequenzen 
und Lautstärkeverlauf auf ein Muster hin überprüfen.

von Christian K. (christiankarle)


Lesenswert?

Ich habe hier noch einen LM2904 rumliegen, kann ich den auch verwenden ?

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

andi6510 schrieb:
> TL071 bietet sich an.

An 5V oder 9V ? You must be kidding. Nicht immer ist der billigste 
Schrott die richtge Lösung. Ein TL071 misst unter 3V noch nicht mal 
richtig und erzeugt nicht mehr als 2V (bei 5V Versorgung).

TS912 sag ich mal.

von Christian K. (christiankarle)


Lesenswert?

Es soll kein Klatschschalter realisiert werden. Das Mikrofon wird an 
einer Trommel angebracht, also locker 100 oder 110 dB :D Ich denke da 
genügt es den Pegel zu benutzen oder ?

von MaWin (Gast)


Lesenswert?

Christian Karle schrieb:
> Ich habe hier noch einen LM2904 rumliegen, kann ich den auch verwenden ?

Dein ATTiny85 ENTHÄLT bereits einen Verstärker (x20) und kann mit 1.1V 
full range messen (nochmal x5 gegenüber 5V), du brauchst also gar keinen 
externen Verstärker wenn du die Fähigkeiten deines Chips nutzt.

von Thomas (Gast)


Lesenswert?

andi6510 schrieb:
> TL071 bietet sich an
..., falls man mitsamt Schaltung in ein Zeitloch in die 70er gefallen 
ist. Andernfalls ist ein Opamp, der mit 5V funktioniert -- selbst ein 
LM358 nutzt den ADC-Wertebereich halbwegs aus -- sinnvoller.

von Christian K. (christiankarle)


Lesenswert?

Ich habe leider gerade nur den günstigen hier herumliegen...

von Christian K. (christiankarle)


Angehängte Dateien:

Lesenswert?

Wenn ich das jetzt richtig verstanden habe, könnte ich den Vorverstärker 
des ATtiny85 nutzen. Ich würde die Schaltung als so belassen wie am 
Anfang und nur die Einstellungen im ADMUX Register ändern. Außerdem den 
ADC auf einen definierten Pegel legen und mein Signal dann dort 
ankoppeln?

von Christian K. (christiankarle)


Lesenswert?

Da ich mich auf dem ADC1 befinde müsste ich also schreiben:

ADMUX|= (1<<MUX3) | (1<<MUX1) | (1<<MUX0);

Nur was passiert dann mit ADC0 ??

Ist der Offset dann automatisch GND ?

: Bearbeitet durch User
von ginzu (Gast)


Lesenswert?

ADC0 (PB5) ist der Reset Pin. Keine gute Idee bei ISP.

Nimm doch ADC2/ADC3. ADMUX|= (1<<MUX2) | (1<<MUX1) | (1<<MUX0);
Da das aber dann in der Konfiguration differentielle Eingänge mit Gain 
20 sind, müßte ADC3 noch mit GND verbunden werden und dann wie Single 
Ended Messung behandeln. (ohne Gewehr, da selbst noch nicht probiert)

Für ADC1 und internem Verstärker sehe ich ohne ADC0 keine Möglichkeit.

von ginzu (Gast)


Lesenswert?

@Christian Karle
Bist du weiter und wie sieht aus?

von Christian K. (christiankarle)


Lesenswert?

Ja, ich habe es hinbekommen. Die Schaltung funktioniert jetzt. 
Allerdings übersteuert das Signal ein wenig. Deshalb bin ich auf eine 
externe Referenzspannung gewechselt. Die externe Referenzspannung wir 
über einen Spannungsteiler generiert, wobei R1 ein Poti ist. Über den 
Poti R1 kann somit auch der Pegel eingestellt werden bei dem die LED 
leuchten soll :)


Hat mich viel Zeit und Nerven gekostet aber es funktioniert jetzt 
einwandfrei.

Leider habe ich kein Oszilloskop... Ich würde gerne einmal messen was 
das Mikrofon so rausgibt... Aber kann mir leider keins leisten :D

Als Schüler hat man einfach nicht das Geld dazu :D

Falls jemand Interesse am Schaltplan oder dem Quellcode (in C) hat kann 
er sich gerne melden.

Vielen Dank an alle die mir wertvolle Tipps gegeben haben :)

: 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
Noch kein Account? Hier anmelden.