WYSIWYG Web Builder
// Duckerschakelaar
// (C) 2015 PA9Y

const int PEN_LED = 13;        // LED-pen (of pen met relais)
const int PEN_MICROFOON = A0;   // Analoge pen waar digitale uitgang van microfoonmodule aan zit

const int SAMPLE_LENGTE = 50; // Duur in ms van sample-tijd 50 msec
unsigned int geluid;

void setup() {
pinMode(PEN_LED, OUTPUT);
pinMode(PEN_MICROFOON, INPUT);
// Serial.begin(9600);
}

void loop() {
unsigned long startMillis= millis(); // Begin van de sample-tijd
unsigned int peakToPeak = 0; // top-top-niveau

unsigned int Max = 0;
unsigned int Min = 1024;

// Verzamel gegevens voor gedurende SAMPLE_LENGTE (50) mS
while (millis() - startMillis < SAMPLE_LENGTE)
{
  geluid = analogRead(0);
  if (geluid < 1024)
  {
   if (geluid > Max)
    Max = geluid;
   else if (geluid < Min)
    Min = geluid;
  }
}
peakToPeak = (Max - Min); // max - min = peak-peak amplitude

if(peakToPeak>2) {
  // Klap-signaal ontvangen: zet de LED even aan
  digitalWrite(PEN_LED,LOW);
  delay(1500); 
}

if(peakToPeak<1) {
digitalWrite(PEN_LED,HIGH);
delay(300);
}
}