Différences entre versions de « Arduino SR501 »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :
 
[[Fichier:SR501.jpg|centré|150px]]
 
[[Fichier:SR501.jpg|centré|150px]]
  
Ce composant possède une sortie numérique qui est à ''5v'' en l'absence de mouvement et ''0v'' sinon. D'autres réglages sont possibles comme la sensibilité ou encore le délais :
+
Ce composant possède une sortie numérique qui est à ''0v'' en l'absence de mouvement et ''5v'' sinon.
[[Fichier:SR501_config.jpg|centré|250px]]
+
 
 +
D'autres réglages sont possibles comme:
 +
*la sensibilité
 +
*le délais
 +
*le type de déclenchement (impulsion simple ou répétée)
 +
[[Fichier:SR501_config.png|centré|250px]]
  
 
== Le montage ==
 
== Le montage ==
Ligne 13 : Ligne 18 :
 
= Partie logicielle =
 
= Partie logicielle =
 
== Récupérer la présence de mouvement ==
 
== Récupérer la présence de mouvement ==
Un exemple de code qui permet de récupérer la présence de mouvement.
+
Un exemple de code qui permet de récupérer la présence de mouvement. Notez l'utilisation d'une résistance de ''pull-up'' sur le PIN 2 !
 
<source lang="c">
 
<source lang="c">
 
int pirPin = 2;
 
int pirPin = 2;
Ligne 19 : Ligne 24 :
 
   
 
   
 
void setup() {
 
void setup() {
   pinMode(pirPin, INPUT); // Met la broche 2 en entrée
+
  // Met la broche 2 en entrée
   Serial.begin(9600);       // Active le port série
+
   pinMode(pirPin, INPUT);
 +
  // Utilisation d'une résistance de pull-up sur le PIN 2
 +
   digitalWrite(pirPin, HIGH);
 +
  // Active le port série
 +
  Serial.begin(9600);
 
}
 
}
 
   
 
   
 
void loop(){
 
void loop(){
   if (digitalRead(pirPin ) == HIGH) {  // Vérification de l'état du capteur
+
  // Vérification de l'état du capteur
 +
   if (digitalRead(pirPin ) == HIGH) {   
 
     if (pirState == LOW) {
 
     if (pirState == LOW) {
 
       // Mouvement !
 
       // Mouvement !
Ligne 39 : Ligne 49 :
 
}
 
}
 
</source>
 
</source>
 +
 
== Résultat ==
 
== Résultat ==
 
Voila le résultat :
 
Voila le résultat :
 
[[Fichier:Arduino SR501 reading serial.png|centré|400px]]
 
[[Fichier:Arduino SR501 reading serial.png|centré|400px]]

Version actuelle datée du 9 novembre 2016 à 20:27

Partie électronique

Le composant

Le SR501 est généralement monté sur une platine.

SR501.jpg

Ce composant possède une sortie numérique qui est à 0v en l'absence de mouvement et 5v sinon.

D'autres réglages sont possibles comme:

  • la sensibilité
  • le délais
  • le type de déclenchement (impulsion simple ou répétée)
SR501 config.png

Le montage

Le montage suivant prévoit un fil data qui nous permettra de lire le retour du SR501 sur le PIN 2 de l'Arduino.

SR501 diagram.png

Partie logicielle

Récupérer la présence de mouvement

Un exemple de code qui permet de récupérer la présence de mouvement. Notez l'utilisation d'une résistance de pull-up sur le PIN 2 !

int pirPin = 2;
int pirState = LOW;
 
void setup() {
  // Met la broche 2 en entrée
  pinMode(pirPin, INPUT);
  // Utilisation d'une résistance de pull-up sur le PIN 2
  digitalWrite(pirPin, HIGH);
  // Active le port série
  Serial.begin(9600);
}
 
void loop(){
  // Vérification de l'état du capteur
  if (digitalRead(pirPin ) == HIGH) {  
    if (pirState == LOW) {
      // Mouvement !
      Serial.println("Motion !");
      pirState = HIGH;
    }
  } else {
    if (pirState == HIGH){
      // Pas de mouvement...
      Serial.println("No motion...");
      pirState = LOW;
    }
  }
}

Résultat

Voila le résultat :

Arduino SR501 reading serial.png