Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Arduino SR501 » : différence entre les versions

De The Linux Craftsman
Ligne 13 : Ligne 13 :
= 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 19 :
   
   
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(hallPin, 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 44 :
}
}
</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 du 13 octobre 2016 à 16:21

Partie électronique

Le composant

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

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 :

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.

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(hallPin, 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 :