Comment fonctionne le capteur PIR et comment l'utiliser avec Arduino
Dans ce didacticiel Arduino, nous apprendrons comment fonctionne un capteur PIR et comment l'utiliser avec la carte Arduino pour détecter les mouvements. Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous.
Expliquons d'abord le principe de fonctionnement. Le module consiste en fait en un capteur pyroélectrique qui génère de l'énergie lorsqu'il est exposé à la chaleur.
Cela signifie que lorsqu'un corps humain ou animal entrera dans la portée du capteur, il détectera un mouvement car le corps humain ou animal émet de l'énergie thermique sous forme de rayonnement infrarouge. C'est de là que vient le nom du capteur, un capteur infrarouge passif. Et le terme "passif" signifie que le capteur n'utilise aucune énergie à des fins de détection, il fonctionne simplement en détectant l'énergie dégagée par les autres objets.
Le module se compose également d'un couvercle spécialement conçu nommé lentille de Fresnel, qui concentre les signaux infrarouges sur le capteur pyroélectrique.
Le module n'a que trois broches, une masse et un VCC pour alimenter le module et une broche de sortie qui donne un niveau logique élevé si un objet est détecté. Il dispose également de deux potentiomètres. L'un pour régler la sensibilité du capteur et l'autre pour régler la durée pendant laquelle le signal de sortie reste élevé lorsqu'un objet est détecté. Ce temps peut être ajusté de 0,3 seconde à 5 minutes.
Le module a trois autres broches avec un cavalier entre deux d'entre elles. Ces broches servent à sélectionner les modes de déclenchement. Le premier est appelé "déclencheur non répétable" et fonctionne comme ceci :lorsque la sortie du capteur est élevée et que le temps de retard est écoulé, la sortie passe automatiquement du niveau haut au niveau bas. L'autre mode appelé "déclencheur répétable" maintiendra la sortie élevée tout le temps jusqu'à ce que l'objet détecté soit présent dans la plage du capteur.
Vous pouvez obtenir les composants sur l'un des sites ci-dessous :
Comme exemple pour ce tutoriel, je vais faire un circuit qui allumera une lampe à haute tension lorsque le capteur détectera un objet. Voici les schémas du circuit. La broche de sortie du capteur sera connectée à la broche numéro 8 sur la carte Arduino et lorsqu'un objet sera détecté, la broche numéro 7 activera le module de relais et la lampe haute tension s'allumera.
Pour plus de détails sur le fonctionnement du module de relais, vous pouvez consulter mon didacticiel de relais Arduino. (Gardez à l'esprit que nous utilisons une haute tension dans l'exemple, vous devez donc être très prudent, car je n'assume aucune responsabilité de vos actions)
Voici le code Arduino pour cet exemple. C'est assez simple. Nous avons juste besoin de définir la broche du capteur PIR comme entrée et la broche du relais comme sortie. En utilisant la fonction digitalRead(), nous lirons la sortie du capteur et si elle est élevée ou si un objet est détecté, il activera le relais. Pour activer le module de relais, nous enverrons une logique basse car la broche d'entrée du relais fonctionne en sens inverse.
La démonstration de l'exemple est visible à la fin de la vidéo jointe ci-dessus. Notez qu'après avoir alimenté le module de capteur, il lui faut environ 20 à 60 secondes pour se « préchauffer » afin de fonctionner correctement. Maintenant, lorsque vous placerez votre main devant le capteur, le relais activera la lampe. Mais notez que même si vous bougez constamment votre main, la lampe s'éteindra une fois le délai ajusté écoulé, car le capteur PIR est en mode "déclenchement non répétable". Si vous changez le capteur avec le cavalier en mode "déclenchement répétable" et que vous déplacez constamment la main, la lampe sera également constamment allumée et elle s'éteindra une fois le mouvement terminé et le temps de retard défini terminé.Comment ça marche
Le module de capteur PIR HC-SR501
Composants nécessaires pour ce tutoriel
Schéma du circuit
Code source
/* Arduini PIR Motion Sensor Tutorial
*
* by Dejan Nedelkovski, www.HowToMechatronics.com
*
*/
int pirSensor = 8;
int relayInput = 7;
void setup() {
pinMode(pirSensor, INPUT);
pinMode(relayInput, OUTPUT);
}
void loop() {
int sensorValue = digitalRead(pirSensor);
if (sensorValue == 1) {
digitalWrite(relayInput, LOW); // The Relay Input works Inversly
}
}
Code language: Arduino (arduino)
Processus de fabrication
- Circuit de capteur PIR et module fonctionnant
- File d'attente C# avec exemples :qu'est-ce que la file d'attente C# et comment l'utiliser ?
- Capteur DHT11 avec LED et haut-parleur piézo
- Comment interfacer Arduino Mega avec le module GPS NEO-6M
- module GPS u-blox LEA-6H 02 avec Arduino et Python
- Comment lire la température et l'humidité sur Blynk avec DHT11
- Est-il facile d'utiliser une thermistance ? !
- Comment utiliser NMEA-0183 avec Arduino
- Comment utiliser Modbus avec Arduino