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); } } }


Rispondi quotando
