HC-SR501 Module Détecteur de Mouvement – Infrarouge

Disponibilité:

213 en stock

Comparer
UGS : 0122 Catégories : ,

Description

Module Détecteur de Mouvement PIR – Infrarouge HC-SR501

Le module détecteur de mouvement infrarouge HC-SR501 est un capteur PIR (Passive Infrared) utilisé pour détecter le mouvement humain ou animal dans un champ de détection. Ce capteur est largement utilisé dans les systèmes de sécurité, l’automatisation de la maison, et les projets de détection de mouvement.

Caractéristiques en détail

  • Tension d’alimentation : 4.5V à 20V DC
  • Sortie : Signal digital HIGH (3.3V) ou LOW (0V)
  • Angle de détection : < 120 degrés
  • Distance de détection : Jusqu’à 7 mètres
  • Temps de retard : Ajustable de 5 secondes à 5 minutes
  • Dimensions : 32 mm x 24 mm
  • Consommation de courant : < 60µA
  • Température de fonctionnement : -15°C à 70°C

Fonctionnement

Le capteur PIR HC-SR501 détecte les changements dans les niveaux d’infrarouge dans son champ de vision. Lorsqu’un objet chaud (comme un humain ou un animal) entre dans ce champ, le capteur envoie un signal HIGH. Le module est équipé de deux potentiomètres pour ajuster la sensibilité et le délai de temporisation.

Applications

  • Systèmes de sécurité
  • Éclairage automatique
  • Comptage de personnes
  • Systèmes d’alarme
  • Projets domotiques

Brochage

  • VCC : Alimentation (4.5V à 20V)
  • OUT : Sortie numérique
  • GND : Masse

Comment l’utiliser

Pour utiliser le capteur HC-SR501 avec un Arduino, connectez la broche VCC à l’alimentation 5V de l’Arduino, la broche GND à la masse, et la broche OUT à une entrée numérique de l’Arduino (par exemple, D2).

Comment l’utiliser avec Arduino Uno

Exemple de code Arduino de base

#define PIR_PIN 2
#define LED_PIN 13


void setup() {
  pinMode(PIR_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
}


void loop() {
  int pirState = digitalRead(PIR_PIN);
  if (pirState == HIGH) {
    digitalWrite(LED_PIN, HIGH);
    Serial.println("Mouvement détecté !");
  } else {
    digitalWrite(LED_PIN, LOW);
    Serial.println("Pas de mouvement.");
  }
  delay(1000);
}

But du code

Ce code lit l’état du capteur de mouvement et allume une LED si un mouvement est détecté. Il affiche également l’état du capteur sur le moniteur série.

Composants nécessaires pour le code de base

  • Arduino Uno
  • Module détecteur de mouvement HC-SR501
  • Câbles de connexion

Explication détaillée du code de base

  1. Initialisation : La communication série est établie à 9600 bauds. Les broches PIR_PIN et LED_PIN sont configurées respectivement en entrée et sortie.
  2. Lecture des données : La valeur de la broche PIR_PIN est lue et stockée dans la variable pirState. Si un mouvement est détecté, la LED s’allume et un message est affiché sur le moniteur série. Sinon, la LED s’éteint et un autre message est affiché.

Brochage détaillé des connexions du code de base

  • VCC : Connecter à l’alimentation 5V (Arduino)
  • GND : Connecter à la masse (Arduino)
  • OUT : Connecter à D2 (Arduino)

Exemple de code Arduino avancé pour affichage sur LCD avec gestion d’erreurs et améliorations

#include <LiquidCrystal_I2C.h>


// Constantes
const int PIR_PIN = 2; // Broche du capteur PIR
const int LED_PIN = 13; // Broche de la LED interne de l'Arduino
const int DELAY_TIME = 1000; // Délai entre les lectures en millisecondes


LiquidCrystal_I2C lcd(0x27, 16, 2); // Initialisation de l'écran LCD I2C avec l'adresse 0x27 et une taille de 16x2


void setup() {
  pinMode(PIR_PIN, INPUT); // Configurer la broche PIR_PIN en entrée
  pinMode(LED_PIN, OUTPUT); // Configurer la broche LED_PIN en sortie
  lcd.begin(); // Initialisation de l'écran LCD
  lcd.backlight(); // Allumer le rétroéclairage de l'écran LCD
  Serial.begin(9600); // Initialisation de la communication série à 9600 bauds
}


void readSensorValue(int& pirState) {
  pirState = digitalRead(PIR_PIN); // Lire l'état du capteur PIR
}


void displayValuesOnLCD(int pirState) {
  static int lastPirState = -1; // Variable pour stocker le dernier état du capteur PIR affiché


  if (pirState != lastPirState) { // Met à jour l'affichage uniquement si l'état a changé
    lcd.clear(); // Efface l'écran LCD
    lcd.setCursor(0, 0); // Positionne le curseur à la première ligne
    lcd.print("PIR Sensor: "); // Affiche le texte "PIR Sensor: "
    if (pirState == HIGH) {
      lcd.setCursor(0, 1); // Positionne le curseur à la deuxième ligne
      lcd.print("Mouvement!"); // Affiche "Mouvement!"
    } else {
      lcd.setCursor(0, 1); // Positionne le curseur à la deuxième ligne
      lcd.print("Pas de mouv."); // Affiche "Pas de mouv."
    }
    lastPirState = pirState; // Met à jour le dernier état affiché
  }
}


void displayValuesOnSerialConsole(int pirState) {
  if (pirState == HIGH) {
    Serial.println("Mouvement détecté !"); // Affiche "Mouvement détecté !" sur la console série
  } else {
    Serial.println("Pas de mouvement."); // Affiche "Pas de mouvement." sur la console série
  }
}


void loop() {
  int pirState;
  readSensorValue(pirState); // Lire l'état du capteur PIR
  digitalWrite(LED_PIN, pirState); // Allumer ou éteindre la LED en fonction de l'état du capteur PIR
  displayValuesOnLCD(pirState); // Afficher l'état sur l'écran LCD
  displayValuesOnSerialConsole(pirState); // Afficher l'état sur la console série
  delay(DELAY_TIME); // Attendre avant de refaire une lecture
}

Composants nécessaires pour le code avancé

  • Arduino Uno
  • Module détecteur de mouvement HC-SR501
  • Écran LCD I2C 1602
  • Câbles de connexion

Explication détaillée du code amélioré

  1. Inclusion de la bibliothèque : La bibliothèque LiquidCrystal_I2C.h est incluse pour permettre la communication avec l’écran LCD utilisant le protocole I2C.
  2. Définition des constantes : Les constantes définissent les broches du capteur PIR (PIR_PIN) et de la LED (LED_PIN), ainsi que le délai entre les lectures (DELAY_TIME).
  3. Initialisation de l’écran LCD : La fonction setup() initialise l’écran LCD et la communication série à une vitesse de 9600 bauds. Les broches PIR_PIN et LED_PIN sont configurées respectivement en entrée et sortie.
  4. Lecture des valeurs des capteurs : La fonction readSensorValue(int& pirState) lit l’état du capteur PIR et le stocke dans la variable pirState.
  5. Affichage des valeurs sur l’écran LCD : La fonction displayValuesOnLCD(int pirState) affiche l’état du capteur PIR sur l’écran LCD avec des mises à jour uniquement lorsque l’état change. Elle utilise une variable statique pour suivre le dernier état affiché.
  6. Affichage des valeurs sur la console série : La fonction displayValuesOnSerialConsole(int pirState) envoie l’état du capteur PIR à la console série.
  7. Boucle principale : La boucle loop() lit l’état du capteur PIR, met à jour la LED en conséquence, affiche l’état sur l’écran LCD et sur la console série. Elle attend ensuite une seconde avant de refaire une lecture.

Installation de Drivers/bibliothèques

Codes de base et avancé Aucune bibliothèque spéciale n’est nécessaire pour le code de base. Pour le code avancé utilisant un écran LCD I2C, installez la bibliothèque LiquidCrystal_I2C via le gestionnaire de bibliothèques de l’IDE Arduino.

  1. Ouvrez l’IDE Arduino.
  2. Allez dans le menu Sketch -> Include Library -> Manage Libraries…
  3. Recherchez LiquidCrystal_I2C et cliquez sur Installer.

 

Mots clés: capteur de mouvement, infrarouge passif, détection PIR, HC-SR501, sécurité domestique, automatisation industrielle, économie d’énergie, motion, sensor, mouvment.