Configurer un capteur de mouvement PIR HC-SR501 avec Arduino

Introduction

Les capteurs infrarouges passifs (PIR, pour Passive Infrared) sont largement utilisés dans les systèmes de sécurité domestique, l’automatisation d’éclairage intérieur, ou pour déclencher des caméras vidéo lorsqu’un mouvement est détecté. Dans cet article, nous allons explorer comment connecter un capteur PIR HC-SR501 à un Arduino pour contrôler un relais 5V, qui peut activer des appareils comme des lumières ou des alarmes. Nous détaillerons le fonctionnement du capteur, le montage du circuit, et fournirons le code Arduino nécessaire pour mettre en œuvre ce projet.


Matériel nécessaire

Pour réaliser ce projet, vous aurez besoin des composants suivants :

  • Arduino (par exemple, un Arduino Uno)
  • Capteur PIR HC-SR501
  • Relais 5V (module relais compatible avec Arduino)
  • Fils de connexion (jumpers)
  • Breadboard (optionnel, pour faciliter les connexions)
  • Ordinateur avec l’IDE Arduino installé

Comprendre le capteur PIR HC-SR501

Fonctionnement

Le capteur PIR HC-SR501 détecte le mouvement en mesurant les variations de rayonnement infrarouge dans son champ de vision. Tous les objets émettent un rayonnement infrarouge proportionnel à leur température, et les êtres humains ou animaux (corps chauds) émettent un rayonnement détectable par ce capteur.

Le capteur est équipé de deux éléments de détection pyroélectriques séparés. Lorsqu’un objet émetteur d’infrarouge, comme une personne, passe devant le capteur :

  1. Le premier élément détecte le rayonnement infrarouge et génère un signal HIGH (haut).
  2. Lorsque l’objet passe devant le second élément, un signal LOW (bas) est généré.
  3. La puce BISS0001 à l’intérieur du capteur analyse la différence entre ces deux signaux. Si la différence est significative, le capteur produit un signal HIGH à sa sortie, indiquant un mouvement.

Caractéristiques du HC-SR501

  • Champ de vision : 110 degrés grâce à une lentille de Fresnel (le dôme blanc sur le dessus du capteur) qui élargit l’angle de détection.
  • Portée : Jusqu’à 7 mètres, ajustable via un potentiomètre de sensibilité.
  • Consommation électrique : Très faible (< 2 mA), idéal pour les projets alimentés par batterie.
  • Sortie : Signal numérique (HIGH lorsque le mouvement est détecté, LOW sinon).
  • Broches : Trois broches – Vcc (alimentation, généralement 5V), OUT (sortie), et GND (masse).
  • Potentiomètres :
    • Délai : Ajuste la durée pendant laquelle la sortie reste HIGH après détection (de 0,3 seconde à 5 minutes).
    • Sensibilité : Contrôle la distance de détection (3 à 7 mètres).
  • Jumper : Permet de basculer entre le mode Single Trigger (L, déclenchement unique) et Repeatable Trigger (H, déclenchement répété tant que le mouvement persiste).

Connexion du circuit

Étapes de connexion

  1. Connectez le capteur PIR :
    • Branchez la broche Vcc du capteur à la broche 5V de l’Arduino.
    • Branchez la broche GND à une broche GND de l’Arduino.
    • Connectez la broche OUT à la broche numérique 10 de l’Arduino.
  2. Connectez le relais :
    • Branchez la broche Vcc du module relais à la broche 5V de l’Arduino.
    • Branchez la broche GND à une broche GND de l’Arduino.
    • Connectez la broche IN (entrée de commande) à la broche numérique 12 de l’Arduino.
  3. Vérifiez les connexions : Assurez-vous que toutes les connexions sont sécurisées et que les polarités sont correctes pour éviter d’endommager les composants.

Remarque sur le relais

Le relais 5V permet de contrôler des appareils à haute tension (comme une lampe 220V) à partir du signal basse tension de l’Arduino. Assurez-vous que le relais est correctement configuré pour votre application (par exemple, connectez une lampe ou un autre appareil aux bornes NO (Normalement Ouvert) ou NC (Normalement Fermé) du relais).


Code Arduino

Voici le code Arduino pour lire le signal du capteur PIR et activer le relais lorsqu’un mouvement est détecté :

int sensorPin = 10;  // Broche de sortie du capteur PIR
int relayPin = 12;   // Broche de commande du relais

void setup() {
  pinMode(sensorPin, INPUT);   // Configure la broche du capteur comme entrée
  pinMode(relayPin, OUTPUT);   // Configure la broche du relais comme sortie
}

void loop() {
  int value = digitalRead(sensorPin);  // Lit l’état du capteur PIR
  digitalWrite(relayPin, value);      // Écrit l’état sur la broche du relais
}

Explication du code

  • Déclaration des variables :
    • sensorPin est défini sur la broche 10, qui reçoit le signal du capteur PIR.
    • relayPin est défini sur la broche 12, qui contrôle le relais.
  • Fonction setup() :
    • Configure sensorPin comme INPUT pour lire le signal du capteur.
    • Configure relayPin comme OUTPUT pour envoyer un signal au relais.
  • Fonction loop() :
    • Lit l’état de la broche sensorPin (HIGH si mouvement détecté, LOW sinon) et le stocke dans la variable value.
    • Écrit cette valeur sur relayPin, activant ou désactivant le relais en fonction de la détection de mouvement.

Configuration du capteur PIR

Initialisation

Lorsque vous alimentez le capteur pour la première fois, il a besoin de 30 à 60 secondes pour se calibrer. Pendant cette période, il analyse le rayonnement infrarouge ambiant pour établir une référence. Évitez de bouger devant le capteur pendant ce temps pour éviter les fausses détections.

Ajustement des potentiomètres

  1. Délai :
    • Tournez le potentiomètre dans le sens des aiguilles d’une montre pour augmenter le temps pendant lequel la sortie reste HIGH après une détection (jusqu’à 5 minutes).
    • Tournez dans le sens inverse pour réduire ce délai (minimum 0,3 seconde).
    • Pour une lumière activée par mouvement, utilisez un délai plus long afin que la lumière reste allumée tant que des personnes sont présentes.
  2. Sensibilité :
    • Tournez dans le sens des aiguilles d’une montre pour augmenter la portée de détection (jusqu’à 7 mètres).
    • Tournez dans le sens inverse pour réduire la portée (minimum 3 mètres).
  3. Mode de déclenchement :
    • Position H (Repeatable Trigger) : Le capteur reste actif tant que le mouvement est détecté.
    • Position L (Single Trigger) : Le capteur ne se déclenche qu’une fois par détection, même en cas de mouvement continu.

Test du circuit

  1. Téléversez le code : Ouvrez l’IDE Arduino, copiez le code ci-dessus, et téléversez-le sur votre carte Arduino.
  2. Alimentez le circuit : Connectez l’Arduino à votre ordinateur via un câble USB ou à une source d’alimentation externe.
  3. Testez le capteur : Après la période de calibration, passez votre main devant le capteur. Vous devriez entendre le relais cliquer et voir sa LED s’allumer. Le relais restera actif pendant la durée du délai configuré.

Applications pratiques

Le capteur PIR HC-SR501 est polyvalent et peut être utilisé dans de nombreuses applications, telles que :

  • Éclairage automatique : Allumer une lumière lorsqu’une personne entre dans une pièce.
  • Systèmes de sécurité : Déclencher une alarme ou une caméra en cas de détection de mouvement.
  • Automatisation domestique : Activer des appareils (ventilateurs, climatiseurs) en fonction de la présence humaine.
  • Projets IoT : Combiner le capteur avec un module Wi-Fi (comme l’ESP8266) pour envoyer des notifications via Internet.

Dépannage

Si le circuit ne fonctionne pas comme prévu, vérifiez les points suivants :

  • Connexions : Assurez-vous que toutes les connexions sont correctes et que les broches Vcc et GND ne sont pas inversées.
  • Calibration : Laissez le capteur se calibrer pendant 60 secondes sans mouvement dans son champ de vision.
  • Potentiomètres : Ajustez la sensibilité et le délai pour optimiser la détection.
  • Alimentation : Vérifiez que l’Arduino fournit une tension stable de 5V.
  • Faux déclenchements : Éloignez le capteur de sources de chaleur (radiateurs, sunlight direct) ou d’objets en mouvement (rideaux, ventilateurs).

Conclusion

Configurer un capteur PIR HC-SR501 avec un Arduino est un projet simple et éducatif qui permet de comprendre les bases de la détection de mouvement et du contrôle d’appareils via un microcontrôleur. En suivant les étapes de cet article, vous pouvez créer un système de détection de mouvement fiable pour des applications variées, de l’éclairage automatique aux systèmes de sécurité. Expérimentez avec les réglages du capteur et le code pour adapter le projet à vos besoins spécifiques !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *