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
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.
| 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
}
}