KY-038 Microphone Module

Last Updated on 18. October 2026 by SuffocationLink status: OK

Hier mal eine akustische Anbindung für Microcontroller. Das Modul KY-038 beherbergt ein Mikrofon und einen Schwellwertschalter, welcher über einen veränderlichen Widerstand einstellbar ist. Beide Signale, die des Schwellwertschalters und das invertierte Mikrofon Signal werden an den Pins A0 und D0 bereitgestellt.

ATTENTION I could not operate this module meaningfully!!!

Facts

KY-038 Mikrofon-Sensormodul
MessgrößeSchallpegel
Sensor-BausteinKomparator LM393
Operating voltage3,3–5 V
SchnittstellenDigitalausgang D0 (Schwellwert per Potentiometer), Analogausgang A0 (invertiert)
DescriptionLED für Versorgung und für erreichten Schwellwert; Schwellwert per Potentiometer einstellbar

Areas of application

  • Sound measurement
  • Security technology
  • Sound level alert
  • …

Views

Programming

Libraries

Zur reinen Anbindung sind keine zusätzlichen Bibliotheken notwendig. Es wird nur der analogRead und der digitalRead der Arduino Bibliothek verwendet.

Test programme

Das Programm liest den digitalen Schwellwert und den analogen Pegel aus. Der Analogwert wird zudem noch in Volt umgerechnet.

Pinning

ArduinoKY-038
D2D0
A1A0
GroundGround
+5V+

Source code KY038Test.ino (GitHub GistLink status: OK)

/**
 * Code snippet to read data from KY-037 / KY-038 sound sensor board
 * define ports for digital and analog input
 * Fambach.net
 */


// please adapt to your wiring 
#define MIC_SIGNAL_PIN    A1
#define MIC_THRESHOLD_PIN 2

// factor to calculate voltage
const float VOLTAGE_FACTOR  = 5.0f / 1023.0f;



void setup(){

  // init serial port
  Serial.begin(115200);

  // init Pins
  pinMode(MIC_SIGNAL_PIN, INPUT);
  pinMode(MIC_THRESHOLD_PIN, INPUT);
  digitalWrite(MIC_SIGNAL_PIN, LOW);
  digitalWrite(MIC_THRESHOLD_PIN, LOW);
  analogReference(DEFAULT);
  
}


void loop(){

  bool treshold = false;
  long  level = 0 ;
  String voltage = "";
 
  // get treshhold pin
  treshold = digitalRead(MIC_THRESHOLD_PIN);

  // get analog pin 
  level = analogRead(MIC_SIGNAL_PIN);

  // calc. average and invert
  voltage = String (((float)level)* VOLTAGE_FACTOR);

  // doing output
  char buffer[255];
  sprintf (buffer,"Treshold: %s Level: %4d Voltage: ",treshold?"ON ":"OFF", level);
  Serial.print(buffer);
  Serial.print(voltage);
  Serial.println();

  delay(100);
}

https://gist.github.com/sfambach/92f57fef7c21430029afc43df57680df/archive/32f5c32dd272ce5f5baa378f9a3bfc05c57f3477.zipLink status: OK

Problems

It doesn't work properly for me, see conclusion. Others also seem to have the problem that the sensor only works at high volumes.

There is a correction proposal that adds a few additional resistors on the board. Please refer to this https://www.arduinoforum.de/arduino-Thread-Sound-Sensor-KY-038Link status: Broken.

Conclusion

Das Modul wäre eine schöne Erweiterung für den Arduino. Leider konnte ich das Modul nicht sinnvoll betreiben. Trotz mehrfacher Versuche war es mir nicht möglich, mehr als 0.2 Volt Unterschied am analogen Eingang zu erzeugen. Dies hängt damit zusammen, dass das Mikrofonsignal direkt, ohne Verstärkung, auf den analogen Ausgang des Modules gegeben wird. Der Schwellwertschalter funktioniert, ist aber leider nur sehr ungenau einstellbar. Ich habe zwei Module aus Fernost verwendet, evtl. haben diese Fehler oder ein Mikrofon mit falschem Pegel.

Ich habe mir 3 andere Module bestellt, unter anderem den KY-037 mit hoher Empfindlichkeit, evtl. bringt dieser bessere Ergebnisse.

Related Posts

Sources

http://sensorkit.joy-it.net/index.php?title=KY-038_Mikrofon_Sound_Sensor_Modul
http://arduinolearning.com/code/ky038-microphone-module-and-arduino-example.php
https://www.arduinoforum.de/arduino-Thread-Sound-Sensor-KY-038
DateChangeAuthor
19.10.2026Fakten-Tabelle durch Datenblock aus dem Modell ersetztSuffocation
10.10.2026Gist-Einbettung durch Code-Block ersetzt (Gist als Quelle verlinkt)Suffocation
04.10.2026Rechtschreibung korrigiert: Tippfehler, Kommas, GrammatikSuffocation
03.10.2026Log-Liste eingefügtSuffocation
13.01.2020Post createdSuffocation
Changelog

Leave a Reply

Your email address will not be published. Required fields are marked *