capteur PIR

capteur PIR

Les capteurs PIR, pour Passive Infrared Sensor (capteur infrarouge passif) permettent de détecter la présence d’humains mobiles dans le champ du capteur (ça ne fonctionne pas avec les zombies!). Ils sont utilisés dans divers systèmes de sécurité et détecteurs de mouvements. On en trouve à bas coût, et ils sont très simples à utiliser. Cet article servira de tutoriel sur l’utilisation d’un capteur PIR avec un Arduino.

Le capteur PIR

Ces capteurs n’émettent rien (d’ou le passive dans le nom), mais au contraire captent les rayonnement infrarouge émis les êtres vivants à sang chaud passant dans le champ de détection du capteur. Pour élargir la zone de détection, ceux ci sont souvent recouverts d’une lentille dite de Fresnel. Des composants électroniques divers traitent la sortie brute du capteur en lui même et permettent d’obtenir une sortie numérique en fonction du mouvement détecté. Vous pourrez trouver davantage d’informations à ce sujet sur cette page du site Adafruit (en anglais).

Capteur PIR et Arduino : le câblage

Le câblage est extrêmement simple, comme le montre le schéma suivant :

Capteur PIR et Arduino : circuit minimal

Capteur PIR et Arduino : circuit minimal

Il suffit en effet de connecter la broche + du capteur (qui ne ressemblera pas à celui du schéma, mais plutôt à celui de la photo en tête d’article) au 5V du Arduino (ou au 3.3V si votre carte fonctionne à cette tension), la broche gnd ou – à la masse du Arduino (gnd), et la broche out/signal à la broche D2 du Arduino (ou une autre, au choix). Et là… c’est fini! 🙂

Vérifiez bien toutefois les broches sur le capteur, une inversion du + et du – pourrait abîmer voir griller votre capteur.

Programme

Le programme est tout aussi simple, puisqu’il suffit de lancer Arduino, puis ouvrir le menu Fichier, cliquer sur Exemples, puis 02.Digital, et enfin Button. On utilise en effet le même code que pour l’exemple sur la lecture d’un bouton, car le capteur fonctionne d’une façon comparable. Si de l’activité est détectée, il enverra un signal logique haut (5V) sinon il enverra un signal logique bas (0V). De ce fait, en fonction de la valeur lue sur la broche D2 on pourra allumer ou eteindre la LED. Voici le code commenté en français:

const int buttonPin = 2; // broche du capteur PIR
const int ledPin = 13; // la LED du Arduino
int buttonState = 0; // etat de la sortie du capteur

void setup()
{
  pinMode(ledPin, OUTPUT); //la broche de la LED est mise en sortie
  pinMode(buttonPin, INPUT); //la broche du capteur est mise en entree
}

void loop()
{
  buttonState = digitalRead(buttonPin);//lecture du capteur
  if (buttonState == HIGH) //si quelquechose est detecte
  {
    digitalWrite(ledPin, HIGH); //on allume la LED
  }
  else //sinon
  {
    digitalWrite(ledPin, LOW); //on eteint la LED
  }
}

En compilant puis téléversant ce code, vous pourrez observer la LED du Arduino (qui est connectée à la sortie 13) s’allumer quand une activité est détectée par le capteur et s’éteindre dans le cas contraire

Conclusions

Ce capteur est très simple, mais également fiable, efficace, précis et peu coûteux. Autant de bonnes raisons de l’intégrer dans divers projets. Pour détecter le passage de personnes dans une zone, le code ci dessus conviendra bien, puisqu’on souhaitera une bonne réactivité du système. En revanche, si l’on souhaite commander un éclairage, il sera désagréable de voir celui ci s’éteindre à chaque fois qu’on reste immobile quelques secondes. Pour y remédier, il faudra modifier le code, en ajoutant un délai à l’extinction pour que l’éclairage ne se coupe que si aucune activité n’est détectée pendant une durée à déterminer.

Nous nous pencherons sur ces problématiques dans un prochain billet, sur la création d’un contrôleur d’éclairage à automatique basé sur le capteur PIR, et reprenant la base que nous avons développée et présentée dans le billet sur le contrôleur de LED simple.

 

 

 

Réseaux sociaux