Allarme volumetrico con sensore di suono

Ciao ragazzi, sono nuovissimo e questo è il mio primo post, nonchè il mio primo progetto. Teoricamente ciò che volevo fare era che dopo una soglia di volume, stabilita tramite potenziometro un buzzer facesse rumore per tre secondi. Pensavo di esserci riuscito ma mi sono accorto che il buzzer a volte continua a fare rumore all'infinito, finché non tappo con il dito il "buco" del buzzer, il che non ha senso a mio parere. Qui di seguito vi lascio lo sketch che ho creato. Potete aiutarmi? Grazie mille a tutti! :slight_smile:

int Led = 13 ;// define LED Interface
int buttonpin = 3; // define D0 Sensor Interface
int val = 0;// define numeric variables val

void setup ()
{
pinMode (Led, OUTPUT) ;// define LED as output interface
pinMode (buttonpin, INPUT) ;// output interface D0 is defined sensor
}

void loop ()
{
val = digitalRead(buttonpin);// digital interface will be assigned a value of pin 3 to read val
if (val == HIGH) // When the sound detection module detects a signal, LED flashes
{
digitalWrite (Led, HIGH);
delay (1000);
}
else
{
digitalWrite (Led, LOW);
}
}

Prima di tutto, nella sezione dove avevi messo il post c'è chiaramente scritto, in grassetto, di non postare nulla ... quindi, per favore, la prossima volta presta più attenzione, poi, essendo questo il tuo primo post, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, edita (in basso a destra del post, bottone More -> Modify) il tuo post e racchiudi il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie. :slight_smile:

Guglielmo