Zum Hauptinhalt springen Zur Suche springen Zur Hauptnavigation springen
Menü

Soundmodul mit Arduino auslesen


In dieser Anleitung zeigen wir dir, wie du mit dem Soundmodul Töne erkennen kannst.

Das Modul reagiert super auf Händeklatschen, Schnipsen, Klopfen oder andere akustische Signale. Es besteht aus einer Schaltung mit einem Mikrofon, dessen Empfindlichkeit über das Potentiometer eingestellt werden kann. 

Einfach erklärt ist ein Mikrofon ein Schallwandler, der akustische Signale in elektrische Signale umwandelt. Mikrofone funktionieren im genauen Gegensatz zu Lautsprechern, die aus elektrischen Signalen Töne erzeugen.

Benötigte Komponenten: 

  • Arduino UNO R3 kompatibles Board
  • Soundmodul
  • 4 Buchse-Stecker Kabel

Produktgalerie überspringen
00:00:00 h 41
UNO R3 MEGA328P ATMEGA16U2 Board Arduino kompatibel UNO R3 MEGA328P ATMEGA16U2 Board Arduino kompatibel

Durchschnittliche Bewertung von 4.98 von 5 Sternen

(28)
UNO R3 ATMEGA328P ATMEGA16U2 Board Arduino kompatibel
RBS10911

Sofort verfügbar

Verkaufspreis: 3,95 € Regulärer Preis: 6,75 €
10
Soundmodul WTV020-SD-16P Soundmodul WTV020-SD-16P

Durchschnittliche Bewertung von 4.17 von 5 Sternen

(3)
Soundmodul WTV020-SD-16P
RBS10012

Sofort verfügbar

Verkaufspreis: Ab 2,42 € Regulärer Preis: 2,69 €
Dupont Kabel Buchse auf Stecker

Durchschnittliche Bewertung von 4.87 von 5 Sternen

(30)
40 Pin Jumper Kabel Buchse-Stecker 20 cm
RBS10038

Sofort verfügbar

Regulärer Preis: Ab 0,95 €

Funktionsweise

Mikrofone gibt es mit verschiedenen Formen, Größen und Technologien. Auf unserem Modul ist ein Kondensator-Mikrofon verbaut, mit dem wir uns etwas genauer beschäftigen. Kondensatormikrofone werden oft in Mobiltelefonen, Laptops ect. Verbaut. Sie arbeiten wie ein Plattenkondensator, der seine Kapazität ändern kann. Im Inneren ist eine hauchdünne, elektrisch leitende Membran dicht an einer elektrisch geladenen Metallplatte angebracht.

Wenn Schall auf die Membran trifft, fängt sie an zu schwingen, wodurch sich die Kapazität des Kondensators verändert. Diese Veränderung der Kapazität resultiert in einer variablen Spannung.

Der Pin DO ist ein Digitaler Ausgang, der „High“ ausgibt, wenn der Schwellenwert überschritten wird. Der Schwellenwert kann mit dem Potentiometer eingestellt werden. Mit diesem Anschluss kannst du nur erkennen, ob eine bestimmte Lautstärke überschritten wird.

Während der digitale Ausgang nur 1 oder 0 ausgibt, können mit dem analogen Ausgang AO nicht nur Geräusche erkannt, sondern auch die Lautstärke als analoges Signal verarbeiten werden.

zum Vergrößern auf Bilder klicken

Anschluss- und Schaltplan
Soundmodul
Arduino
-GND
+5V
AO (analoger Ausgang)A0
DO (digitaler Ausgang)3


Code für Arduino - Analoges Signal

Mit dem Code für den anlogen Ausgang kann die Lautstärke direkt im seriellen Monitor der Arduino IDE ausgelesen werden.

Code anzeigen / einklappen
int sensorPin = A0; // Pin vom Soundmodul
int ledPin = 13; // Pin der LED, 13 ist die integrierte LED des Arduino UNO
int sensorValue = 0; // Variable um den Messwert zwischenzuspeichern

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

void loop() {
  sensorValue = analogRead(sensorPin);
  digitalWrite(ledPin, HIGH);
  delay(sensorValue);
  digitalWrite(ledPin, LOW);
  delay(sensorValue);
  Serial.println(sensorValue, DEC);
}

Digitales Signal

Mit dem digitalen Ausgang kann man erkennen, ob eine gewisse Lautstärke überschritten wird. Der Schwellenwert kann am Potentiometer vom Modul eingestellt werden. Wenn ein Geräusch den Schwellenwert überschreitet, liegt am Pin 3 vom Arduino ein „High“-Signal an und die LED „L“ auf dem Arduino leuchtet auf.

Code anzeigen / einklappen
int ledPin = 13; // Pin der LED, 13 ist die integrierte LED des Arduino UNO
int sensorPin = 3; // Digitaler Sensor-Pin
int val; // Variable fuer den digitalen Zustand

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(sensorPin, INPUT);
}

void loop() {
  val = digitalRead(sensorPin);
  
  if (val == HIGH) { // Wenn an Pin 3 ein Signal anliegt, soll die LED aufleuchten
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW); // ansonsten soll die LED aus sein
  }
}