Bonjour
Normalement ton code ne compile pas car il comporte des erreurs :
int PIR_1 = 4; //
int PIR_2 = 6;
int PIR_3 = 11;
int PIR_4 = 12;
int PIR_5 = 13;
int buzzer = 13;
int intrusion1 = LOW; //
int intrusion2 = LOW;
int intrusion3 = LOW;
int intrusion4 = LOW;
int intrusion5 = LOW;
void setup() // put your setup code here, to run once:
{
pinMode (PIR_1, INPUT); // declaration du PIR_1 comme etant une ENTREE
pinMode (PIR_2, INPUT); // idem
pinMode (PIR_3, INPUT); // idem
pinMode (PIR_4, INPUT); // iedm
pinMode (PIR_5, INPUT); // idem
pinMode (buzzer, OUTPUT); // declaration du buzzer comme etant une SORTIE
Serial.begin (9600);
}
void loop() // put your main code here, to run repeatedly:
{
intrusion1 = digitalRead (PIR_1); // prends l'information qu'apporte le PIR_1
intrusion2 = digitalRead (PIR_2); // prends l'information qu'apporte le PIR_2
intrusion3 = digitalRead (PIR_3); // prends l'information qu'apporte le PIR_3
intrusion4 = digitalRead (PIR_4); // prends l'information qu'apporte le PIR_4
intrusion5 = digitalRead (PIR_5); // prends l'information qu'apporte le PIR_5
if (intrusion1 == HIGH)
{
digitalWrite(buzzer, HIGH); // envoie l'information a la sortie (fais _sonner_ le buzzer)
digitalWrite(buzzer, LOW);
}
else if (intrusion2 == HIGH)
{
delay (30000);
digitalWrite(sirene, HIGH); <-- "sirene" à la place de "buzzer"
}
else if (intrusion3 == HIGH)
{
digitalWrite(sirene, HIGH); <-- "sirene" à la place de "buzzer"
}
else if (intrusion4 == HIGH)
{
digitalWrite(sirene, HIGH); <-- "sirene" à la place de "buzzer"
}
else if (intrusion5 == HIGH)
{
digitalWrite(sirene, HIGH); <-- "sirene" à la place de "buzzer"
}
}
} <-- accolade en trop
Si tu corriges ça, ça va compiler.
Ensuite, il faut bien décider de ce que tu veux que ton code fasse : pour l'instant, tu as priorisé l'ordre de détection de tes capteurs. Une intrusion en 2 ne sera pas détecté s'il y a déjà une intrusion en 1 (etc).
De plus, ta manière de faire sonner est incorrecte :
digitalWrite(buzzer, HIGH); // envoie l'information a la sortie (fais _sonner_ le buzzer)
digitalWrite(buzzer, LOW);
Tu allumes le buzzer et tu l'éteins dans la foulée : il n'a pas le temps de faire du bruit. Il faut ajouter un delay entre les deux. Ou tu utilises la fonction tone, plus appropriée.
Enfin, lorsque ton code fonctionnera comme tu le veux, tu pourras l'optimiser en utilisant des tableaux et une boucle 'for' pour lire les capteurs et faire des sons différents selon le capteur qui détecte.