Comprendre le capteur de mouvement infrarouge et créer un système de détection avec Arduino.
Le capteur PIR (Passive Infrared Sensor) est un composant électronique très utilisé dans les systèmes de sécurité, les alarmes, l'éclairage automatique et les projets de domotique. Grâce à sa capacité à détecter les variations du rayonnement infrarouge émis par les corps, il permet de reconnaître le passage d'une personne sans contact physique.
Associé à une carte Arduino Uno, Nano ou Mega, le capteur PIR devient un excellent outil pour apprendre l'électronique et la programmation. Il permet notamment de commander une LED, de déclencher un buzzer ou de concevoir un système d'alarme automatique.
Dans ce guide, nous allons découvrir le fonctionnement du capteur PIR, le rôle de sa lentille blanche, son branchement sur Arduino, les différents modes de déclenchement et un programme simple pour réaliser une première expérience.
1. Qu'est-ce qu'un capteur PIR ?
PIR signifie Passive Infrared Sensor, ou capteur infrarouge passif en français. Le terme « passif » indique que le capteur reçoit le rayonnement infrarouge provenant de son environnement au lieu d'émettre lui-même un signal pour détecter les objets.
Les êtres humains et les animaux émettent naturellement un rayonnement infrarouge lié à leur température. Lorsqu'une personne se déplace dans le champ de détection d'un capteur PIR, la distribution du rayonnement infrarouge reçue par le capteur change. L'électronique du module analyse cette variation et produit un signal de sortie.
Le capteur PIR ne mesure donc pas directement la distance d'une personne et ne fournit pas une image. Il sert principalement à détecter les mouvements associés aux variations du rayonnement infrarouge.
Le module HC-SR501 est l'un des modèles les plus connus dans les projets Arduino. Il est généralement équipé d'une lentille blanche, de deux potentiomètres de réglage et d'un cavalier permettant de sélectionner le mode de déclenchement.
2. Comment fonctionne le capteur PIR ?
Le fonctionnement du capteur PIR repose sur un élément pyroélectrique sensible aux variations du rayonnement infrarouge.
Lorsque le rayonnement reçu par cet élément varie, une modification électrique apparaît. Le circuit électronique intégré traite ensuite ce signal et détermine si une détection doit être signalée à la sortie du module.
Le fonctionnement peut être résumé en quatre étapes :
Une personne entre dans le champ de détection du capteur.
Le rayonnement infrarouge reçu par l'élément pyroélectrique varie.
Le circuit électronique analyse le changement détecté.
La sortie du module passe généralement à l'état logique HIGH pendant une durée déterminée.
Arduino peut lire ce signal avec la fonction digitalRead() et exécuter une action, par exemple allumer une LED ou déclencher une alarme.
Il est important de comprendre qu'un capteur PIR réagit surtout aux changements de rayonnement infrarouge. Une personne immobile peut donc ne plus être détectée après le mouvement initial.
3. À quoi sert la lentille blanche du capteur PIR ?
La pièce blanche en forme de dôme placée sur de nombreux modules PIR est une lentille de Fresnel. Elle ne constitue pas simplement une protection plastique : elle joue un rôle optique essentiel.
Cette lentille divise le champ de vision en plusieurs zones et dirige le rayonnement infrarouge vers l'élément sensible situé à l'intérieur du capteur. Lorsqu'une personne traverse ces zones, le rayonnement reçu varie, ce qui facilite la détection du mouvement.
La lentille de Fresnel contribue également à élargir le champ de détection. La portée et l'angle réels dépendent toutefois du modèle du capteur, de la lentille et des conditions d'installation.
Une lentille endommagée, obstruée ou remplacée par un matériau qui transmet mal l'infrarouge peut réduire les performances du système.
4. Les principales broches du module PIR HC-SR501
Le module HC-SR501 comporte généralement trois broches :
VCC : alimentation électrique du module.
OUT : sortie logique qui indique la détection.
GND : connexion à la masse du circuit.
Sur de nombreux modules HC-SR501, l'alimentation est comprise entre environ 4,5 V et 20 V, mais il faut toujours vérifier la documentation de la version utilisée.
Pour un projet avec Arduino Uno, le module peut généralement être alimenté par la broche 5 V de la carte. La sortie OUT est reliée à une entrée numérique d'Arduino.
Attention : les tensions admissibles varient selon les cartes et les capteurs. Pour un ESP32, qui utilise une logique de 3,3 V, il faut vérifier la compatibilité de la sortie du module et ne jamais appliquer directement une tension supérieure à la limite des GPIO.
5. Comment brancher un capteur PIR sur Arduino Uno ?
Pour réaliser un montage simple, préparez le matériel suivant :
Une carte Arduino Uno.
Un capteur PIR HC-SR501.
Une LED.
Une résistance de 220 à 330 ohms.
Une plaque d'expérimentation.
Des fils de connexion.
Un câble USB pour programmer Arduino.
Schéma de câblage
| Module PIR ou composant | Arduino Uno |
|---|---|
| VCC du PIR | 5V, si compatible avec le module |
| OUT du PIR | D2 |
| GND du PIR | GND |
| Anode de la LED | D13 à travers une résistance |
| Cathode de la LED | GND |
La LED peut également être remplacée par la LED intégrée de nombreuses cartes Arduino Uno, reliée à D13.
Avant de tester le programme, laissez au capteur le temps de se stabiliser après la mise sous tension. Cette durée dépend du module et peut atteindre plusieurs dizaines de secondes.
6. Programme Arduino pour détecter un mouvement
Le programme suivant lit l'état de la sortie du capteur PIR. Lorsque le module signale une détection, Arduino allume la LED. Lorsque le signal redevient LOW, la LED s'éteint.
const int pirPin = 2;
const int ledPin = 13;
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Initialisation du capteur PIR...");
}
void loop() {
int mouvement = digitalRead(pirPin);
if (mouvement == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.println("Mouvement detecte !");
} else {
digitalWrite(ledPin, LOW);
}
delay(100);
}Explication du code
La variable pirPin indique que la sortie du capteur est reliée à la broche numérique 2. La variable ledPin correspond à la LED connectée à la broche 13.
La fonction pinMode() configure les broches. Ensuite, digitalRead() récupère l'état logique envoyé par le capteur.
Si le résultat est HIGH, Arduino considère qu'une détection est signalée et allume la LED avec digitalWrite(). Si le résultat est LOW, la LED s'éteint.
Enfin, Serial.begin(9600) permet d'afficher des messages dans le moniteur série de l'IDE Arduino.
7. Comprendre les modes Repeatable Trigger et Non-Repeatable Trigger
Le module HC-SR501 propose généralement deux modes de déclenchement, sélectionnés grâce à un petit cavalier placé sur les positions H et L.
Repeatable Trigger : mode H
Dans ce mode, lorsqu'un mouvement est détecté, la sortie passe à HIGH. Si une nouvelle détection se produit pendant la durée d'activation, le délai est prolongé ou redémarre selon le fonctionnement du module.
Ce mode est utile pour les éclairages automatiques. Tant que de nouveaux mouvements sont détectés, la lumière peut rester allumée plus longtemps.
Non-Repeatable Trigger : mode L
Dans ce mode, la durée de sortie HIGH est généralement fixée par le déclenchement initial. Une nouvelle détection pendant cette période ne prolonge normalement pas le délai.
Ce fonctionnement peut convenir aux applications dans lesquelles on souhaite une durée d'activation définie.
Le comportement précis dépend de la version du module et de ses réglages. Le potentiomètre de temporisation permet généralement de modifier la durée pendant laquelle la sortie reste active.
8. Comment régler la sensibilité et la temporisation ?
Le HC-SR501 possède généralement deux potentiomètres.
Le premier règle la sensibilité de détection. Une sensibilité plus élevée peut permettre de détecter un mouvement plus éloigné, mais elle peut aussi augmenter les déclenchements indésirables.
Le second règle la temporisation, c'est-à-dire la durée pendant laquelle la sortie reste à HIGH après une détection. La plage disponible dépend du modèle.
Pour régler correctement le module, procédez progressivement : commencez avec une sensibilité moyenne, testez à différentes distances et ajustez la durée selon l'application.
Évitez d'installer le capteur face à une source de chaleur mobile ou dans un environnement où les variations thermiques sont importantes. Ces conditions peuvent provoquer des détections inattendues.
9. Applications du capteur PIR avec Arduino
Le capteur PIR peut être utilisé dans de nombreux projets éducatifs et pratiques :
Alarme de mouvement : déclencher un buzzer lorsqu'une personne est détectée.
Éclairage automatique : allumer une lampe lorsqu'une personne entre dans une pièce.
Domotique : envoyer une commande à un système de contrôle de la maison.
Robotique éducative : créer une interaction entre un robot et son environnement.
Compteur de passages simple : détecter des événements de passage dans des conditions adaptées, en utilisant une logique de comptage et un placement approprié.
Pour commander un appareil fonctionnant sur le secteur, il ne faut pas connecter directement celui-ci aux broches Arduino. Il faut utiliser un dispositif de commande adapté, correctement isolé et installé en respectant les règles de sécurité électrique.
10. Problèmes fréquents et solutions
Si la LED ne s'allume pas, vérifiez d'abord les connexions VCC, OUT et GND. Assurez-vous que la sortie OUT est reliée à la bonne broche Arduino et que le programme utilise le même numéro de broche.
Si le capteur déclenche sans raison apparente, réduisez progressivement sa sensibilité et vérifiez son emplacement. Les courants d'air chaud, les sources thermiques mobiles, les vibrations et les variations de l'environnement peuvent influencer le résultat.
Si le capteur ne détecte pas une personne, vérifiez l'orientation de la lentille, la distance, l'alimentation et le temps de stabilisation. Le déplacement transversal dans le champ de détection est souvent plus facile à détecter qu'un mouvement directement vers le capteur.
Enfin, n'oubliez pas que le PIR n'est pas une caméra et qu'il ne permet pas d'identifier une personne.
Conclusion
Le capteur PIR est un composant simple et utile pour découvrir la détection de mouvement avec Arduino. Son fonctionnement repose sur la détection des variations du rayonnement infrarouge, tandis que sa lentille de Fresnel contribue à diriger ce rayonnement et à organiser le champ de vision.
Grâce à quelques fils, une carte Arduino et une LED, il est possible de réaliser un premier projet de détection. En comprenant les broches, le programme, la sensibilité, la temporisation et les modes Repeatable Trigger et Non-Repeatable Trigger, vous pourrez ensuite concevoir des systèmes plus avancés pour la domotique, les alarmes et la robotique éducative.
Le capteur PIR constitue ainsi une excellente étape pour progresser en électronique et en programmation Arduino.

%20-%20Foxit%20PD.png)

%20-%20Foxit%20PD.png)
%20-%20Foxit%20PD.png)
%20-%20Foxit%20PD.png)









