Détecteur de mouvements à infra rouge HCSR501 : notice

Utilisation de capteurs et composants électroniques avec Arduino.
Une fiche de tutoriel pour chaque.

Détecteur de mouvements à infra rouge HCSR501 : notice

Messagepar tiptop » Lun 2 Sep 2013 12:34

Détecteur de mouvements à infra rouge HCSR501 : notice d'utilisation

Image
Composants utilisés

Principe de fonctionnement
Le capteur PIR (Passive Infra Red) détecte une source d'infra-rouge placée dans son champ de "vision" et détecte ses mouvements.
Il permet de détecter une présence humaine ou animale dans un périmètre et déclencher une réponse.

Câblage à réaliser avec une carte Arduino
Le capteur vu de dessous comporte en bas, de gauche à droite, les pins :
  • pin1 +V --> Alim +5V de l'arduino
  • pin2 OUT --> Signal pin 2 digital Arduino
  • pin3 GND --> GND

Image

On rajoute sur une sortie digitale de l'Arduino une LED couleur (en série avec 470 Ohm).
Image

Le code Arduino
Code: Tout sélectionner
//====================================================
//  Détecteur de mouvements à infrarouge HCSR 501
//  Allume une LED si détection
// tiptopboards.com
//  01 09 2013
//  demo_PIR
//===================================================
// Voir aussi  http://blog.makezine.com/projects/pir-sensor-arduino-alarm/
// John Park, at jp@jpixl.net
// // PIR sensor tester by Limor Fried of Adafruit
// tone code by michael@thegrebs.com

 
int ledPin = 13;       // LED qui s'allume si détection
int inputPin = 2;      // capteur infrarouge PIR
int pirState = LOW;    // pas encore de mouvement détecté au départ
int val = 0;           // Lecture deu statut
long previousMillis = 0;   //instant du déclenchement

void setup() {
  pinMode(ledPin, OUTPUT);      //  LED en sortie
  pinMode(inputPin, INPUT);     // Détecteur PIR en entrée
  Serial.begin(9600);           //Affichage série
}

void loop(){
  val = digitalRead(inputPin);  // Lire le statut
  unsigned long currentMillis = millis();  //Heure
 
  if (val == HIGH) {            // Si HIGH, détection
    digitalWrite(ledPin, HIGH);  // Allumer la LED
    //delay(150);
   
    if (pirState == LOW) {  //Front montant (début de détection)
      Serial.print("Mouvement detecte ");  //Affiche une seule fois
      pirState = HIGH;  //Mémoriser l'état haut
      previousMillis = currentMillis;    //Mémoriser debut du signal
    }
   
  } else {   //Sinon pas de mouvement détecté
      digitalWrite(ledPin, LOW); // éteindre la ELd
      //delay(300);   
      if (pirState == HIGH){ //Détecter le front descendant
      Serial.print(" stop ");
      pirState = LOW;  //Mémoriser l'état bas
      unsigned long duree = currentMillis - previousMillis;
      Serial.print(" Duree ");
      Serial.println(duree);  //Durée en millisecondes
    }
  }
}



La sortie du capteur p2 peut aussi commander directement la base d'un transistor, ou un relais si on ne veut pas passer par un micro contrôleur.

Caractéristiques du capteur
  • Alimentation de 4.5 V à 20 V DC
  • Sortie high 3v3, low 0v (capteur LHI 778)
  • Délai de sortie ajustable par potentiomètre
  • Déclenchement L sans répétition, H avec répétition (mode par défaut)
  • Portée de 7 m et angle de 120°
  • Sensibilité réglable par potentiomètre

Réglages du capteur
Il y a deux potentiomètres, à tourner avec un petit tournevis :
  • P1 = Ajustement du délai pendant lequel la sortie reste verrouillée sur HIGH après une détection de mouvement (Tx).
    J'ai mesuré un minimum de 2812 ms si P1 est dévissé à fond (~3 sec de réponse). Visser pour augmenter la durée, jusqu'à 200 sec.

    Le temps de latence avant le redéclenchement suivant est de 2.5 sec environ (par défaut).
  • P2 = Ajustement de la sensibilité du capteur de 3-7m, visser pour augmenter

Le jumper permet de choisir le mode : avec ou sans re-déclenchement.
Image
  • Sans re-déclenchement, la sortie passe à l'état HIGH lors du premier contact, y reste durant toute la durée réglée sur le potentiomètre, pendant ce temps le capteur ne "regarde plus".
    Jumper branché sur 1&2. La durée de sortie HIGH est alors fixe.
    Exemple : déclencher une alerte, alarme
  • Avec re-déclenchement, la sortie passe à l'état HIGH lors du premier contact, y reste durant toute la durée réglée sur le potentiomètre, mais chaque nouvelle détection remet le chronométrage de durée de soertie à zéro.
    Ceci permet une détection en continu, le capteur répond tant que la source d'infra-rouges est mobile.
    Par défaut, le brancher sur 2&3 (H = retriggering). La durée de sortie HIGH peut être prolongée tant que il y a détection.
    Exemple : garder une lumière éclairée le temps nécessaire.


Utilisations
Alarmes, déclenchement d'appareil photo ou de caméra, piège photographique, mise en route de minuterie d'éclairage avec temporisation réglable, déclenchement de webcam, surveillance automatique, ...
tiptopboards - admin
Avatar de l’utilisateur
tiptop
Administrateur du site
 
Messages: 93
Inscription: Mar 13 Aoû 2013 20:38
Localisation: 38

Retourner vers Capteurs et composants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités