Qu'est-ce qu'un capteur de mouvement ? Comment fonctionne t'il ? Comment le faire fonctionner ?

Introduction

Un capteur de mouvement  infrarouge passif (capteur PIR) est un capteur électronique qui mesure la lumière infrarouge émise par des objets dans son champ de vision.

Les capteurs PIR sont couramment utilisés dans les alarmes de sécurité et les applications d’éclairage automatique.

Les capteurs PIR détectent un mouvement général, mais ne donnent pas d’informations sur qui ou quoi a bougé. Pour cela, un capteur IR d’imagerie est nécessaire.

 

Nous avons fait un projet utilisant le PIR sensor dans une alarme anti-intrusion pour votre maison !

Comment le capteur détecte le mouvement ?

Tous les objets dont la température est supérieure au zéro absolu émettent de l’énergie thermique sous forme de rayonnement électromagnétique. Habituellement, ce rayonnement n’est pas visible à l’œil humain car il rayonne à des longueurs d’onde infrarouges, mais il peut être détecté par le capteur de mouvement.

Comment le capteur fonctionne t'il ?

Le capteur de mouvement comporte deux fentes, chaque fente est constituée d’un matériau spécial sensible aux infrarouges. Lorsque le capteur est inactif, les deux fentes détectent la même quantité d’IR, la quantité ambiante émise depuis la pièce. Lorsqu’un corps chaud comme un humain ou un animal passe, il intercepte d’abord une moitié du capteur de mouvement, ce qui provoque un changement différentiel positif entre les deux moitiés. Lorsque le corps chaud quitte la zone de détection, l’inverse se produit, le capteur générant un changement différentiel négatif. Ces impulsions de changement sont ce qui est détecté.

Broche du capteur de mouvement

Les broches du capteur de mouvement :

  • Vcc : Sur la broche 5V de la carte Arduino
  • Signal : On broche sur un des pins signal de la carte arduino
  • GND : Doit se connecter à la masse

Détection avec le moniteur série

On va maintenant voir comment afficher la détection d’un mouvement sur le moniteur série.

int valeur_capteur=0; // Variable pour la valeur du capteur
void setup (){
 Serial.begin(9600); // On initialise le moniteur série
}
void loop (){
  valeur_capteur=analogRead(A0); // Permet de récuperer la valeur du capteur
  if (valeur_capteur >100){ //si un mouvement est detectée
    Serial.println("Mouvement detecte");
  }
 if (valeur_capteur <100){//si aucun mouvement est detectée
    Serial.println("Pas de Mouvement");
  }
  delay(200); // On fait une pause entre chaque mesure
}

Voici le résultat sur le moniteur série :

Alerte lumineuse avec mouvement

On va voir comment allumer une led sur le capteur détecte un mouvement.

int valeur_capteur=0;
int valeur_led=0; 
int led_broche=11;
void setup (){
  pinMode(led_broche,OUTPUT); //On assigne la led en sortie
}
void loop (){
  valeur_capteur=analogRead(A0); // Permet de récuperer la valeur du capteur
  valeur_led=map(valeur_capteur,0,1023,0,255); // Permet de convertir cette valeur sur 5V.
  analogWrite(led_broche, valeur_led); // On assigne cette valeur à la led
 
}

Vous pouvez remplacer la led par une ampoule avec un relais pour allumer une pièce lors de l’entrée d’une personne.

Alerte bruit avec mouvement

On va maintenant voir comment allumer un buzzer lorsque le capteur détecte un mouvement.

int buzzer_broche=3; // La broche de votre buzzer
int capteur_mouvement=A0; // La broche de votre capteur
void setup (){
  pinMode(buzzer_broche,OUTPUT); //On assigne le buzzer en sortie
}
void loop (){
  if (analogRead(capteur_mouvement)> 100){ // Si le capteur détecte un mouvement
    digitalWrite(buzzer_broche,HIGH); // On allume le buzzer
  }
  if (analogRead(capteur_mouvement)< 100){ // Si le capteur ne détecte pas de mouvement
    digitalWrite(buzzer_broche,LOW); // On éteint le buzzer
  }
}

Ce projet peut vous aider faire une alarme pour protéger une pièce par exemple.