Arduino


Détecteur de mouvement à base de PIR

Publié le 25/11/2018



Détecter les mouvements à base d'un PIR dans une pièce en traitant l'information par un Arduino nano.

L'utilisation d'un PIR est vraiment très simple. Le PIR renvoie uniquement deux information : Voltage High ou voltage Low.

Donc il suffit juste "d'écouter" le PIR, pour voir s'il a détecté un mouvement : High voltage (détection) ou Low voltage (pas de détection) en écoutant directement sur une entrée digital de l'Arduino.

Le PIR doit être alimenté en 5V.

Liste des composants nécessaires pour la réalisation du circuit :

  • Arduino nano1
  • Détecteur PIR1


Schéma du montage électronique :


Pour les personnes possédant Fritzing, voici le schéma électronique.


Voici le code à télécharger dans votre Arduino:

#define pinPIR      2                    // Pin pour le capteur PIR

void setup()
{
	Serial.println(F("************"));
	Serial.println(F("Arduino Nano"));
	Serial.println(F("************"));

	Serial.println(F(""));
	Serial.println(F("\nInitialisation..."));
	Serial.println(F(""));

	Serial.println(F("Connection du capteur PIR"));
	Serial.println(F(""));

	Serial.println(F("************************"));
	Serial.println(F("          3.3v  5v     *"));
	Serial.println(F("*     GND DATA  VCC    *"));
	Serial.println(F("*      .    .    .     *"));
	Serial.println(F("*                      *"));
	Serial.println(F("*                      *"));
	Serial.println(F("*      O         O     *"));
	Serial.println(F("*    Timer     Sensi   *"));
	Serial.println(F("************************"));
	Serial.println(F(""));

	Serial.print(F("On calibre le capteur PIR (7s)"));

	for(int i = 0; i < 7; i++)
	{
	  Serial.print(F("."));
	  delay(1000);
	}

	Serial.println(F(""));

	pinMode(pinPIR, INPUT_PULLUP);  
}

//*****************************************************************************************//
//                                      MAIN LOOP
//*****************************************************************************************//
void loop()
{
	int val = digitalRead(pinPIR);

	Serial.print("val=");
	Serial.print(val);
	Serial.println("");
   
	// A chaque nouveau mouvement on retarde le chrono
	if (val == HIGH) 
	{ 
		Serial.println(F(" Mouvement")); 
		Serial.println(F(" Pause 1s"));    
		delay(1000);		  
	}
}
Nombre de vue(s): 359

Forum


Vos avis/remarques...


Veuillez vous connecter pour laisser vos commentaires...