Recognizing loud sounds.

Just remembered now and thought i post my final code here:

int sensorValue;

boolean measuring = false;

boolean action = false;

unsigned long startTime;

unsigned long duration = 0;

unsigned long LEDStart;

const int threshold = 600;



void setup()

{ 

  pinMode(12, OUTPUT);      

  Serial.begin(9600);  // sets the serial port to 9600

}



void loop()

{

  sensorValue = analogRead(0);       // read analog input pin 0

  delay(100);      // wait 100ms for next reading

  

  //Messung anfangen falls gerade nicht gemessen wird und die

  //Lautstaerke den Schwellwert ueberschreitet

  if(measuring == false && sensorValue >= threshold)  {

    startTime= millis();

    measuring = true;

  }

  

  //Messung beenden falls gemessen wurde und die Lautstaerke

  //den Schwellwert unterschreitet

  if(measuring == true && sensorValue < threshold) {

    duration = millis() - startTime;

    measuring = false;

  }

  

  Serial.print("sensorValue:\t ");

  Serial.println(sensorValue, DEC);

  Serial.print("duration:\t ");

  Serial.println(duration);

  

  //30% der gemessenen Zeit nichts machen

  delay(0.5*duration);

  

  //LED 100% der gemessenen Zeit aktivieren

  LEDStart = millis();

  while(millis() - duration < LEDStart) {

    digitalWrite(12, HIGH);

    if(!action) action = true;

  }

  if(action) {

    digitalWrite(12, LOW);

    duration = 0;

    action = false;

    delay(10000);

  }

  

    

    

  }

sorry for german comments and maybe not the best style but i think everyone get it anyway :slight_smile: