Bonjour, je suis en terminale STI2D SIN.
Pour le BAC, nous devons réaliser des projets par groupe de 3 ou 4.
Mon groupe fait le projet de maison sécurisée, qui consiste à faire une alarme qui sonne lorsque elle détecte un passant et qui permet à la personne habitant dans la maison de voir à tout moment grâce à une application sur tablette si il y a une personne ou non dans sa maison.
Voici notre matériel :
-Une carte Arduino SainSmart Uno
-Des fils
-Un capteur PIR
- Un buzzer
-Un shield Wifi
Là on en est à essayer de faire un programme qui permettrait que lorsqu'on inscrit une variable dans le moniteur série, si le capteur détecte un mouvement, le buzzer se met à sonner, et pour l'arrêter, on aimerai que ce soit grâce à une autre variable qu'on inscrit dans le moniteur série que la sonnerie du buzzer s'arrête.
On a fait ça:
// Choisir le Pin de la Led 13.
int inputPin = 2; // choisir l'entrée Pin 2 du capteur.
int val = 0; // On lit l'état du capteur
int pirState = LOW;
char rx_byte = 0;
void setup() {
pinMode(inputPin, INPUT); // On déclare le capteur comme entrée
Serial.begin(9600);
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
}
void loop(){
if (Serial.available() > 0) { // charactere valable?
rx_byte = Serial.read();
}
if (rx_byte == 'a'){
val = digitalRead(inputPin); // Lit la valeur d'entrée du capteur
if(val == HIGH) // si on détecte un mouvement
{
if(pirState == LOW) // on regarde s'il y a eu changement d'état
{
while (1) {
long temps_note = 0;
for (temps_note=0;temps_note < 750000;temps_note= temps_note+2000)
digitalWrite(9,HIGH);
delayMicroseconds(2000 / 2);
digitalWrite(9, LOW);
delayMicroseconds(2000 / 2);
delay(750);
}}
else
{
if(pirState == HIGH)
{
Serial.println("rien");
if (rx_byte == 'b')
{
while (1){
}
}
}}}}}
Malheureusement, ce programme ne marche pas, lorsqu'on entre une variable, le buzzer se met à sonner que le capteur détecte une présence ou non.
Merci d'avance de vos réponses ![]()