Lautsprecher als Mikrofon

Medium · 20 min · Kostenlos

Ziel & Lerninhalt

Verwende einen kleinen Lautsprecher 'rückwärts' als dynamisches Mikrofon und mache laute Geräusche am Mikrocontroller sichtbar.

  • Umkehrbarkeit von elektromagnetischen Wandlern verstehen.
  • AC-Signal in den ADC-Bereich verschieben (DC-Bias).
  • Lautstärke als Amplitude über mehrere Samples ermitteln (RMS-Schätzung).

Erklärung & Wissen

Basic

Ein Lautsprecher und ein dynamisches Mikrofon sind innen fast identisch aufgebaut: Eine Membran ist an einer Spule befestigt, die im Feld eines Permanentmagneten sitzt. Schickst du Strom durch die Spule, bewegt sich die Membran und du hörst Töne. Andersherum: Wenn ein Geräusch die Membran bewegt, induziert die Spule eine winzige Spannung. Das Signal ist klein, aber mit etwas Glück und einem Spannungsteiler reicht es, um Lautstärke und Rhythmus am Mainboard sichtbar zu machen.

Medium

Die induzierte Spannung ist eine Wechselspannung um 0 V – sie schwingt also auch ins Minus. Der ADC eines Mikrocontrollers kann aber nur 0…5 V verarbeiten. Lösung: ein 'Bias-Spannungsteiler' aus zwei gleich großen Widerständen (z.B. 10 kΩ / 10 kΩ) zwischen 5 V und GND. Der Mittelabgriff liegt bei 2,5 V – an genau diesem Punkt schließt du den Lautsprecher an. Jetzt schwingt das Audiosignal um 2,5 V (ADC ≈ 512), und im Code rechnest du Lautstärke als $\sum |x_i - 512|$ über z.B. 100 schnelle Samples.

Expert

Die Empfindlichkeit eines Lautsprechers als Mikrofon ist um den Faktor 50–100 schlechter als die eines echten dynamischen Mikrofons – die Membran ist zu schwer und zu stark gedämpft. Ohne Vorverstärker (z.B. ein LM386, MAX9814 oder einfacher OPV mit ×100) sind nur grobe Lautstärken erkennbar (Klatschen, Pfeifen). Beachten: Der Innenwiderstand eines typischen 8-Ω-Lautsprechers ist sehr niedrig, der ADC dagegen hochohmig – das passt, lädt aber den DC-Bias-Punkt extrem. Ein 1–10 µF-Koppelkondensator zwischen Lautsprecher und Bias-Punkt trennt das AC-Audio sauber vom DC-Pegel und vermeidet, dass der Lautsprecher den Bias kurzschließt.

Fun Fact

Im Zweiten Weltkrieg nutzten Funker an der Front genau diesen Trick: Wenn das echte Kohle-Mikro im Feldtelefon ausfiel, klemmten sie kurzerhand den Hörlautsprecher als Sender an – schlecht, aber gut genug für Befehle.

Elektrodynamisches Wandlerprinzip
Lautsprecher und Mikrofon nutzen dasselbe Prinzip – nur in verschiedene Richtungen. Strom durch Spule im Magnetfeld → Kraft → Membran bewegt sich → Schall (Lautsprecher). Schall bewegt Membran → Spule bewegt sich im Magnetfeld → Spannung entsteht (Mikrofon). Die Umkehrbarkeit gilt für alle elektromagnetischen Wandler: Motoren als Generatoren, Lautsprecher als Mikrofone.
Elektromagnetische Induktion
Bewegt sich eine Spule in einem Magnetfeld, entsteht in ihr eine elektrische Spannung. Faradaysches Induktionsgesetz: $U_{ind} = -N \cdot d\Phi/dt$ – die Spannung ist proportional zur Änderungsgeschwindigkeit des Magnetflusses. Schnellere Membran-Bewegung → höhere Frequenz → größere $d\Phi/dt$ → höhere Spannung. Deshalb sind hohe Töne im Signal lauter als tiefe, wenn man einen Lautsprecher als Mikrofon zweckentfremdet.
DC-Bias
Künstlicher Gleichspannungs-Mittelpunkt, damit ein Wechselsignal komplett in den 0–5 V Bereich des ADC passt. Das Mikrofon-Signal schwingt um 0 V – aber der ADC kann nur 0–5 V messen (negative Spannung → Fehler). Zwei gleiche Widerstände zwischen 5V und GND erzeugen 2,5 V Mittelpunkt. Ein Koppelkondensator blockiert Gleichanteile und lässt nur das Wechselsignal durch → Signal liegt zwischen 0 und 5 V, zentriert bei 2,5 V.
Koppelkondensator
Kondensator in Reihe mit dem Signal, der Gleichspannung blockt und nur Wechselspannung durchlässt. Für Audiosignale (20 Hz–20 kHz) wählt man den Kondensator so, dass seine Impedanz $X_C = 1/(2\pi f C)$ bei der tiefsten Nutzfrequenz klein ist: $C \geq 1/(2\pi \cdot 20\,\mathrm{Hz} \cdot 1\,\mathrm{k\Omega}) \approx 8\,\mu\mathrm{F}$. Elkos (10 µF) reichen hier. Wichtig: Elko muss gepolt werden (Plus zum höheren Potential).

Praktischer Versuch: Klatsch-Detektor

Kleiner Lautsprecher als Mikrofon, Bias am Mittelabgriff, Code wertet Amplitude aus.

  • 1 kleiner Lautsprecher (8 Ω, z.B. aus altem Spielzeug/Radio)
  • 2 Widerstände 10 kΩ (Bias-Teiler)
  • 1 Elektrolytkondensator 1–10 µF (Kopplung)
  • Krokoklemmen oder Steckbrett
  1. Bias-Spannungsteiler aufbauen

    Schalte zwei 10 kΩ-Widerstände in Reihe von 5V nach GND. Der Knotenpunkt dazwischen ist dein 2,5-V-Mittelpunkt.

    Check: Mittelabgriff misst 2,5 V (ADC ≈ 512) ohne Signal.

    Tipp: Beide Widerstände gleich groß wählen, sonst sitzt der Ruhepunkt nicht in der Mitte.

  2. Lautsprecher koppeln

    Eine Lautsprecher-Klemme an GND. Andere Klemme über den Koppel-Elko an den Mittelpunkt. Der Mittelpunkt geht an A0.

    Check: Beim Pfeifen schwankt der ADC sichtbar um 512.

    Tipp: Plus-Bein des Elkos zum Mittelpunkt, Minus-Bein zum Lautsprecher.

  3. Statische Prüfung

    Vor dem ersten Geräusch nur den Ruhewert prüfen – ist der nicht stabil, hat es keinen Sinn, weiterzumachen.

    Check: Ohne Geräusch liefert A0 stabil ADC ≈ 510–520.

    Tipp: Wenn nicht: schau, ob beide R wirklich gleich groß sind und ob der Koppelkondensator richtig gepolt ist.

  4. Amplitude im Code messen

    Lade den Code hoch. Er nimmt 100 schnelle Samples und summiert |x - 512| auf. Bei Klatschen siehst du im Monitor klar einen Sprung.

    Check: Klatschen lässt den Wert sprunghaft steigen, leise Musik leicht.

    Tipp: Mehr Samples = mehr Empfindlichkeit, aber auch träger.

  5. Schwellwert finden

    Notiere ruhig und laut, setze die Schwelle dazwischen und prüfe, ob die LED korrekt reagiert.

    Check: LED an Pin 13 (interne LED) blinkt nur bei Klatschen, nicht bei Hintergrundgeräusch.

    Tipp: Schwelle ca. 50% höher als Ruhepegel ansetzen – Trial & Error.

5V → 10 kΩ → Mittelpunkt (= A0) → 10 kΩ → GND. Lautsprecher: GND ↔ über 1–10 µF Elko zum Mittelpunkt.

// ProtoPeaks - Lautsprecher als Mikrofon
const int micPin = A0;
const int ledPin = 13;
const int schwelle = 4000; // anpassen!

void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  long amp = 0;
  for (int i = 0; i < 100; i++) {
    int v = analogRead(micPin) - 512;
    if (v < 0) v = -v;
    amp += v;
    // kein delay - schnell samplen
  }
  Serial.println(amp);
  digitalWrite(ledPin, amp > schwelle ? HIGH : LOW);
}
  • Signal extrem leise (ADC zappelt nur ±1). — Lautsprecher zu klein oder zu gedämpft. Größeren Lautsprecher probieren, näher an Mund/Schallqülle halten, oder mit Vorverstärker arbeiten.
  • Werte hängen einseitig (z.B. konstant bei 0 oder 1023). — Koppelkondensator fehlt, falsch gepolt oder defekt – damit gelangt DC durch und kippt den Arbeitspunkt.
  • Konstantes Brummen. — Lautsprecherkabel fängt 50-Hz-Netzbrummen ein. Kabel kürzen, Verdrillen, oder Aufbau weg vom Steckernetzteil.

Kurzzusammenfassung

Mit einem ausrangierten Lautsprecher, zwei Widerständen und einem Kondensator ist ein einfacher Klatsch-/Lautstärkesensor entstanden. Das Geheimnis: DC-Bias auf 2,5 V, Koppelkondensator gegen Gleichanteile, Amplitude im Code summieren.

Ähnliche Themen