Ciao a tutti, sto tentando di programmare un allarme con arduino ed ho riscontrato qualche difficoltà.
In sostanza il programma funziona, il fatto è che se ad esempio la sirena sta suonando perchè appunto uno dei sensori è on ed io stacco improvvisamente l' abilitazione anche la sirena dovrebbe staccarsi immediatamente, ma non lo fa.
Che ciclo potrei utilizzare?
Spero di essermi spiegato bene, grazie a tutti in anticipo
Vi posto il codice sotto
codice:
int abilitazione=1,sensore1=2,sensore2=3,sensore3=4,sensore4=5,sirena=13,i;
void setup()
{
pinMode(abilitazione,INPUT);
pinMode(sensore1,INPUT);
pinMode(sensore2,INPUT);
pinMode(sensore3,INPUT);
pinMode(sensore4,INPUT);
pinMode(sirena,OUTPUT);
}
void loop()
{
if(digitalRead(abilitazione)==HIGH)
{
if(digitalRead(sensore1)==HIGH)
{
i=0;
while((i<20)&&(digitalRead(abilitazione)==HIGH))
{
delay(500);
i++;
if(i==20)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
if(digitalRead(sensore2)==HIGH)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
if(digitalRead(sensore3)==HIGH)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
if(digitalRead(sensore4)==HIGH)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
}
}
if(digitalRead(sensore2)==HIGH)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
if(digitalRead(sensore3)==HIGH)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
if(digitalRead(sensore4)==HIGH)
{
digitalWrite(sirena,HIGH);
delay(5000);
digitalWrite(sirena,LOW);
}
}
}