Sirena en una tarjeta de alarmas

Hola, soy nuevo en esto del Arduino, la necesidad me esta haciendo aprenderlo y hasta ahora me gusta mucho… quisiera una ayuda con mi código, mi proyecto se trata sobre una tarjeta de alarmas, son 8 señales digitales que llegan al Arduino UNO y este imprima en una pantalla LCD 2x16 las señales que se registren, en la parte superior en el centro… dice ALARMAS… y en la inferior, cuando no llega nada dice Okey…Las alarmas que llegan son 8. Necesito ayuda en la sirena, esta responde ante la señal de una alarma, quiero que solo suene 5 segundos sin que se repita en el bucle, esta se activa cuando le llega una señal de alarma.
PIN TAG
1 -
2 -
3 -
4 LCD
5 LCD
6 LCD
7 LCD
8 LCD
9 LCD
10 ALARMA
11 -
ENTRADA DIGITAL DE ALARMA
12 FLTZ
13 FLTR
14 FLTS
15 OFLTC
16 ALM
17 OFBF
18 FUEL
19 FLT

CODIGO:

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
lcd.begin(14, 2);
lcd.setCursor(5,0);
lcd.print(“ALARMAS”);
pinMode(10,OUTPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);
pinMode(14,INPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);
pinMode(18,INPUT);
pinMode(19,INPUT);
}

void loop() {
if (digitalRead(12) ==1 || digitalRead(13) ==1 || digitalRead(14) ==1 || digitalRead(15) ==1 || digitalRead(16) ==1 || digitalRead(17)==1 || digitalRead(18) ==1 || digitalRead(19) ==1) {
digitalWrite(10,HIGH);
lcd.setCursor(0, 1);
}
else{
digitalWrite(10,LOW);
}
if(digitalRead(10) == HIGH){
lcd.setCursor(5,0);
lcd.print(“ALARMAS”);
lcd.setCursor(0, 1);
if(digitalRead(12) ==1) {
lcd.println(“FLTZ”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(13) ==1) {
lcd.println(“FLTR”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(14) ==1) {
lcd.println(“FLTS”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(15) ==1) {
lcd.println(“OFLTC”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(16) ==1) {
lcd.println(“ALM”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(17) ==1) {
lcd.println(“OFBF”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(18) ==1) {
lcd.println(“FUEL”);
delay(1000);

}
lcd.setCursor(0, 1);
if(digitalRead(19) ==1) {
lcd.println(“FLT”);
delay(1000);

}}
lcd.setCursor(0, 1);
if(digitalRead(10) == LOW){
lcd.println(“OKEY”);
delay(1000);

}}

Podría habilitar una salida a parte para la sirena si se diera el caso, pero no se como programarlo para que suene solo una vez por 5 segundos, sin buclearse… Muchas gracias de antemano, y si me pase alguna regla o norma de publicación a pesar que las leí mil disculpas, es mi primera vez :smiley:

Edita y usas etiquetas paras códigos.