int threshold = 523; //set to value read when device is used //was 523 int bootdelay = 5000; //set to ms delay after boot int duration = 2000; //set to desired mute duration int sensorgnd = A3; int sensorvcc = A4; int sensor = A5; int relay = 11; //int relay = LED_BUILTIN; //for testing purposes bool mute = false; int value; unsigned long timer; unsigned long snapshot; void setup() { // initialize the digital pin as an output. pinMode(sensorgnd, OUTPUT); pinMode(sensorvcc, OUTPUT); pinMode(sensor, INPUT); pinMode(relay, OUTPUT); digitalWrite(sensorgnd, LOW); digitalWrite(sensorvcc, HIGH); digitalWrite(relay, LOW); delay(bootdelay); Serial.begin(9600); } void loop() { timer = millis(); value = analogRead(sensor); Serial.println(value); if (value >= threshold){ snapshot = timer; if (mute == false){ mute = true; digitalWrite(relay, HIGH); } } else if (value < threshold){ if (mute == true && timer - snapshot >= duration){ mute = false; digitalWrite(relay, LOW); } } }