problème avec un capteur de mouvement

J'ai essayé de brancher un capteur de mouvement comme il est montré dans l'image


avec ce code :

 * PIR sensor tester
 */
 
int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  if (val == HIGH) {            // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
    digitalWrite(ledPin, LOW); // turn LED OFF
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}

quand il y a un mouvement la led s'allume mais elle s'éteint très vite meme avec le mouvement puis elle se rallume.
remarque: lorsque il n'y a pas de mouvement la led ne s'allume pas

aidez moi svp j'ai pas trouvé de solution

Tu demandes de l'aide mais tu ne dis pas ce que tu voudrais obtenir.

Avec ton programme, la LED recopie l'état de la sortie du capteur.
Donc soit tu as un problème avec ton capteur (panne ou mauvais réglage), soit il faut que tu modifies ton programme pour qu'il adopte un comportement différent lorsque son entrée reste haute un court instant.

Votre capteur peut nécessiter entre 30 et jusqu’à 60 secondes pour se calibrer. dans le setup prévoir une longue pause au début

rajoutez dans le setup() qque chose comme:

  Serial.print("Calibration du capteur PIR ");
  digitalWrite(inputPin, LOW); // enlève au cas où le pullup
    for(int i = 0; i < 60; i++){
      Serial.print(".");
      delay(1000); // 1 seconde x 60 fois = 60 secondes
      }
    Serial.println("\nc'est fait");
    Serial.println("capteur PIR  actif");

assurez vous aussi de vous être bien connecté à la bonne sortie du PIR. certains on 2 sorties, une analogique qui donne une idée du niveau d’infra-rouge détecté et une TTL qui dit si oui ou non il y a qque chose. c’est cette seconde qui vous intéresse.

ils ont aussi généralement 2 potentiomètres qui définissent la sensibilité et la durée d’allumage → ce second réglage fait que la pin restera active pendant un certain temps, même quand la personne n’est plus détectée

Bonjour,

Un lien vers le capteur que tu utilises ?

3Sigma:
Bonjour,

Un lien vers le capteur que tu utilises ?

+1
certains modules emporte un reglage de sensibilité et un reglage de la durée d'etat apres detection

Artouste:
+1
certains modules emporte un reglage de sensibilité et un reglage de la durée d'etat apres detection

http://www.tunisia-store.com/44-capteur-de-mouvement-pir.html#

cassano:
http://www.tunisia-store.com/44-capteur-de-mouvement-pir.html#

voilà
tu a 2 reglages à adapter à ton cas (les petits potentiometres orange)

S(ensibilté) et T(rigger)