You are currently viewing Utilisation d’un détecteur infrarouge HC-SR501
Utilisation du détecteur infrarouge HC-SR501

Utilisation d’un détecteur infrarouge HC-SR501

Les détecteurs infrarouges sont assez communs dans notre environnement. On les retrouve dans les alarmes d’intrusion de domicile/bureau ou la commande automatique d’éclairage. Leur fonctionnement est basé sur la mesure du rayonnement infrarouge de leur environnement et la détection d’une modification de ce rayonnement.

Dans cet article, nous nous intéressons au module HC-SR501 très utilisé avec Arduino:

Présentation du détecteur infrarouge HC-SR501
Le détecteur infrarouge HC-SR501
Le HC-SR501 est construit à partir des principaux suivants:
  • Le détecteur infrarouge pyroélectrique LHi 778
Détecteur de mouvement infrarouge pyroélectrique LHi 778
  • Une lentille multi-facette, chaque facette étant elle-même une lentille de Fresnel qui concentre les faisceaux d’images projetées depuis l’extérieur vers des formes plus condensées à l’intérieur. Cela fournit au capteur la capacité de couvrir une zone plus large et de détecter des mouvements plus faibles.
Lentille de Fresnel multi-facette
  • Le contrôleur de capteur passif infrarouge BISS0001 qui facilite le pilotage du détecteur HC-SR501.
Circuits intégré BISS0001 de traitement de signal pour capteur infrarouge

Montage utilisé

Dans ce montage, l’Arduino Uno est utilisé comme source de tension et pour mesurer les caractéristiques de temps du détecteur.

Montage utilisé avec le détecteur infrarouge HC-SR501
Montage utilisé avec le détecteur infrarouge HC-SR501

Remarque: Le détecteur ne fournit pas un courant suffisant pour allumer une LED 5mm, c’est pourquoi nous l’avons relié à une sortie de la carte Arduino dans ce montage. Une autre possibilité serait d’utiliser un transistor.

Matériel utilisé

Les produits suivants ont été utilisés pour rédiger cet article:

Carte Arduino UNO Rev 3 Détecteur de mouvements infrarouge HC-SR501 Détecteur de mouvements infrarouge HC-SR501
Carte Arduino HC-SR501 standard HC-SR501 désinhibé
Câbles Dupont Mâle / Femelle Câbles de connexion Arduino Platine d'essai 400 points
Câbles mâle/femelle Câbles mâle/mâle Plaque d’essai
Résistance de 220 Ohm Led rouge traversante 5mm  
Résistance 220 Ohm Led 5 mm  

Programme utilisé

Il est à noter que ce programme nécessite l’installation préalable de la bibliothèque Arduino “elapsedMillis” de “Paul Stoffregen”. Si vous avez besoin d’aide pour installer une bibliothèque sous Arduino, je vous invite à vous reporter au chapitre “Installation d’une bibliothèque pour l’écran OLED” de l’article “Température et humidité avec Arduino”.

Voici le code source complet du programme de tests:

/* Déclaration des bibliothèques utilisées */
#include <elapsedMillis.h>

/* Définition du brochage */
#define PORT_DETECTEUR    3
#define PORT_LED          8

/* Déclaration des variables globales */
bool etat_precedent_detecteur_g;
static elapsedMillis chronometre_g;

// Fonction de démarrage, s'exécute une seule fois:
void setup()
{
  // Ouverture du port USB pour l'envoi des traces au PC
  Serial.begin(115200);
  Serial.print("-----------------\n\n");

  // Configuration des broches utilisées pour le détecteur et la LED
  pinMode(PORT_DETECTEUR, INPUT);
  pinMode(PORT_LED, OUTPUT);
 
  // Initialisation des variables globales
  etat_precedent_detecteur_g = false;
}

// Fonction principale du programme, s'exécute en boucle:
void loop()
{
  bool etat_detecteur_l;
  
  etat_detecteur_l = digitalRead(PORT_DETECTEUR);
  // La LED est un miroir de l'état de la sortie du détecteur
  digitalWrite(PORT_LED, etat_detecteur_l);
  if(etat_detecteur_l!=etat_precedent_detecteur_g)
  {
    if(etat_detecteur_l)
    {   // Détecteur à l'état haut
      Serial.print("\nDélai entre 2 détections = ");
      Serial.print(chronometre_g/1000.0);
      Serial.println("s");
      chronometre_g = 0;
      Serial.print("Détection en cours -");
    }
    else
    {   // Détecteur à l'état bas
      Serial.print(" fin de détection. Durée = ");
      Serial.print(chronometre_g/1000.0);
      Serial.println("s");
      chronometre_g = 0;
    }
    etat_precedent_detecteur_g = etat_detecteur_l;  
  }
}

Déclenchement d’un détecteur infrarouge

Les conditions de déclenchement d’un détecteur infrarouge

Pour que le détecteur se déclenche, 3 conditions doivent être réunies :

  • Une source de chaleur est présente dans le cône de détection
  • Cette source de chaleur se déplace
  • Le détecteur n’est pas dans sa période d’inhibition
Déclenchement d’un détecteur infrarouge HC-SR501

Le cône de détection du HC-SR501

La zone de détection du capteur infrarouge HC-SR501 a une forme de cône dont l’angle est de 110° (valeur non-modifiable).

Cône de détection du HC-SR501

La période d’inhibition

La période d’inhibition est la durée pendant laquelle le détecteur, une fois revenu à l’état “repos”, sera incapable de détecter une nouvelle présence.

La période d'inhibition du détecteur infrarouge HC-SR501
La période d’inhibition du détecteur infrarouge HC-SR501

Voici le résultat obtenu avec le montage et le programme décrits précédemment:

  • Test de la durée d’inhibition d’un détecteur HC-SR501 standard
Période d’inhibition sur un détecteur infrarouge HC-SR501 standard
  • Test de la durée d’inhibition d’un détecteur HC-SR501 désinhibé
Période d’inhibition sur un détecteur infrarouge HC-SR501 désinhibé

En utilisant le programme précédent pour mesurer la durée d’inhibition d’un HC-SR501 standard on obtient une valeur de l’ordre de 5 secondes :

Durée d’inhibition mesurée pour un HC-SR501 standard
Durée d’inhibition mesurée pour un HC-SR501 standard

La sensibilité du HC-SR501

Ce que l’on nomme « sensibilité » sur ce détecteur est la distance de détection du capteur.
Cette distance est modifiable à l’aide du potentiomètre de droite.

Potentiomètre de réglage de la sensibilité du HC-SR501
Potentiomètre de réglage de la sensibilité du HC-SR501
Distance de détection du capteur infrarouge HC-SR501

 

La temporisation

La temporisation est la durée pendant laquelle le détecteur HC-SR501 va laisser sa sortie à l’état haut une fois sa détection terminée. Cette temporisation est surtout utile dans le cas d’une utilisation pour de l’éclairage (sans recours à un microcontrôleur).
Cette temporisation est ajustable à l’aide du potentiomètre de gauche.

Potentiomètre de réglage de la temporisation du HC-SR501
Potentiomètre de réglage de la temporisation du HC-SR501
La temporisation du détecteur infrarouge HC-SR501
La temporisation du détecteur infrarouge HC-SR501

L’exécution du programme donne une valeur paramétrable minimale de 1,2 seconde.

Durée mesurée de la temporisation minimale d'un HC-SR501
Durée mesurée de la temporisation minimale d’un HC-SR501

Et une valeur paramétrable maximale de 7 minutes et 38 secondes.

Durée mesurée de la temporisation maximale d'un HC-SR501
Durée mesurée de la temporisation maximale d’un HC-SR501

Démarrage du détecteur

A sa mise sous-tension le HC-SR501 déclenche systématiquement un signal de présence. Il est important de l’avoir en tête pour nos projets et de filtrer ce faux positif lié au démarrage du détecteur si nécessaire.

Les modes de fonctionnement du HC-SR501

Le détecteur HC-SR501 propose 2 modes de fonctionnement:

  • le mode de déclenchement répété,
  • le mode de déclenchement unique.

Le basculement entre ces 2 modes de déclenchement s’effectue en modifiant la position du petit cavalier jaune présent sur la carte.

Cavalier de sélection du mode de détection du HC-SR501
Cavalier de sélection du mode de détection du HC-SR501

Le mode de déclenchement répété

Une position haute (High) du cavalier de déclenchement positionne le détecteur en mode “déclenchement répété”. Dans ce mode, la sortie du détecteur reste à l’état haut (3,3V) tout le temps de la détection d’un mouvement d’une source de chaleur par le HC-SR501. Elle reste même à l’état haut un peu plus longtemps, durant le temps de temporisation.

Schéma de fonctionnement du HC-SR501 en mode déclenchement répété
Schéma de fonctionnement du HC-SR501 en mode déclenchement répété
Fonctionnement du HC-SR501 standard en mode déclenchement répété

Le mode de déclenchement unique

Une position basse (Low) du cavalier de déclenchement positionne le détecteur en mode “déclenchement unique”. Dans ce mode, la sortie du détecteur alterne entre état haut (3,3V) et état bas (0V) durant la détection d’un mouvement d’une source de chaleur par le HC-SR501. Cette succession d’états respecte les durées de temporisation (état haut) et d’inhibition (état bas).

Schéma de fonctionnement du HC-SR501 en mode déclenchement unique
Schéma de fonctionnement du HC-SR501 en mode déclenchement unique
Fonctionnement du HC-SR501 standard en mode déclenchement unique

Pour compléter cette analyse, je vous invite à consulter les fiches produits du HC-SR501 standard et du HC-SR501 désinhibé.

S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires