
Composants utilisés
- 1 Détecteur de mouvements à infra rouge HCSR501
- 1 Carte Arduino Uno
- 1 Câbles de branchement mâle femelle Dupont
- 1 LED et 470 ohm
Principe de fonctionnement
Le capteur PIR (Passive Infra Red) détecte une source d'infra-rouge placée dans son champ de "vision" et détecte ses mouvements.
Il permet de détecter une présence humaine ou animale dans un périmètre et déclencher une réponse.
Câblage à réaliser avec une carte Arduino
Le capteur vu de dessous comporte en bas, de gauche à droite, les pins :
- pin1 +V --> Alim +5V de l'arduino
- pin2 OUT --> Signal pin 2 digital Arduino
- pin3 GND --> GND

On rajoute sur une sortie digitale de l'Arduino une LED couleur (en série avec 470 Ohm).

Le code Arduino
- Code: Tout sélectionner
//====================================================
// Détecteur de mouvements à infrarouge HCSR 501
// Allume une LED si détection
// tiptopboards.com
// 01 09 2013
// demo_PIR
//===================================================
// Voir aussi http://blog.makezine.com/projects/pir-sensor-arduino-alarm/
// John Park, at jp@jpixl.net
// // PIR sensor tester by Limor Fried of Adafruit
// tone code by michael@thegrebs.com
int ledPin = 13; // LED qui s'allume si détection
int inputPin = 2; // capteur infrarouge PIR
int pirState = LOW; // pas encore de mouvement détecté au départ
int val = 0; // Lecture deu statut
long previousMillis = 0; //instant du déclenchement
void setup() {
pinMode(ledPin, OUTPUT); // LED en sortie
pinMode(inputPin, INPUT); // Détecteur PIR en entrée
Serial.begin(9600); //Affichage série
}
void loop(){
val = digitalRead(inputPin); // Lire le statut
unsigned long currentMillis = millis(); //Heure
if (val == HIGH) { // Si HIGH, détection
digitalWrite(ledPin, HIGH); // Allumer la LED
//delay(150);
if (pirState == LOW) { //Front montant (début de détection)
Serial.print("Mouvement detecte "); //Affiche une seule fois
pirState = HIGH; //Mémoriser l'état haut
previousMillis = currentMillis; //Mémoriser debut du signal
}
} else { //Sinon pas de mouvement détecté
digitalWrite(ledPin, LOW); // éteindre la ELd
//delay(300);
if (pirState == HIGH){ //Détecter le front descendant
Serial.print(" stop ");
pirState = LOW; //Mémoriser l'état bas
unsigned long duree = currentMillis - previousMillis;
Serial.print(" Duree ");
Serial.println(duree); //Durée en millisecondes
}
}
}
La sortie du capteur p2 peut aussi commander directement la base d'un transistor, ou un relais si on ne veut pas passer par un micro contrôleur.
Caractéristiques du capteur
- Alimentation de 4.5 V à 20 V DC
- Sortie high 3v3, low 0v (capteur LHI 778)
- Délai de sortie ajustable par potentiomètre
- Déclenchement L sans répétition, H avec répétition (mode par défaut)
- Portée de 7 m et angle de 120°
- Sensibilité réglable par potentiomètre
Réglages du capteur
Il y a deux potentiomètres, à tourner avec un petit tournevis :
- P1 = Ajustement du délai pendant lequel la sortie reste verrouillée sur HIGH après une détection de mouvement (Tx).
J'ai mesuré un minimum de 2812 ms si P1 est dévissé à fond (~3 sec de réponse). Visser pour augmenter la durée, jusqu'à 200 sec.
Le temps de latence avant le redéclenchement suivant est de 2.5 sec environ (par défaut). - P2 = Ajustement de la sensibilité du capteur de 3-7m, visser pour augmenter
Le jumper permet de choisir le mode : avec ou sans re-déclenchement.

- Sans re-déclenchement, la sortie passe à l'état HIGH lors du premier contact, y reste durant toute la durée réglée sur le potentiomètre, pendant ce temps le capteur ne "regarde plus".
Jumper branché sur 1&2. La durée de sortie HIGH est alors fixe.
Exemple : déclencher une alerte, alarme - Avec re-déclenchement, la sortie passe à l'état HIGH lors du premier contact, y reste durant toute la durée réglée sur le potentiomètre, mais chaque nouvelle détection remet le chronométrage de durée de soertie à zéro.
Ceci permet une détection en continu, le capteur répond tant que la source d'infra-rouges est mobile.
Par défaut, le brancher sur 2&3 (H = retriggering). La durée de sortie HIGH peut être prolongée tant que il y a détection.
Exemple : garder une lumière éclairée le temps nécessaire.
Utilisations
Alarmes, déclenchement d'appareil photo ou de caméra, piège photographique, mise en route de minuterie d'éclairage avec temporisation réglable, déclenchement de webcam, surveillance automatique, ...