Différences entre versions de « Senseur PIR »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 5 : Ligne 5 :
  
 
== Code ==
 
== Code ==
 +
<nowiki>
 +
/*
 +
* PIR sensor tester
 +
*/
 +
 +
int ledPin = 13;                // choose the pin for the LED
 +
int inputPin = 2;              // choose the input pin (for PIR sensor)
 +
int pirState = LOW;            // we start, assuming no motion detected
 +
int val = 0;                    // variable for reading the pin status
 +
 +
void setup() {
 +
  pinMode(ledPin, OUTPUT);      // declare LED as output
 +
  pinMode(inputPin, INPUT);    // declare sensor as input
 +
 +
  Serial.begin(9600);
 +
}
 +
 +
void loop(){
 +
  val = digitalRead(inputPin);  // read input value
 +
  if (val == HIGH) {            // check if the input is HIGH
 +
    digitalWrite(ledPin, HIGH);  // turn LED ON
 +
    if (pirState == LOW) {
 +
      // we have just turned on
 +
      Serial.println("Motion detected!");
 +
      // We only want to print on the output change, not state
 +
      pirState = HIGH;
 +
    }
 +
  } else {
 +
    digitalWrite(ledPin, LOW); // turn LED OFF
 +
    if (pirState == HIGH){
 +
      // we have just turned of
 +
      Serial.println("Motion ended!");
 +
      // We only want to print on the output change, not state
 +
      pirState = LOW;
 +
    }
 +
  }
 +
}
 +
</nowiki>
 +
 +
== Notes ==
 +
Don't forget that there are some times when you don't need a microcontroller. A PIR sensor can be connected to a relay (perhaps with a transistor buffer) without a micro!
  
 
== Où Acheter ==
 
== Où Acheter ==

Version du 30 avril 2012 à 11:07

Introduction

Montage

PirSensorArduino.jpg

Code

/*
 * PIR sensor tester
 */
 
int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  if (val == HIGH) {            // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
    digitalWrite(ledPin, LOW); // turn LED OFF
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}

Notes

Don't forget that there are some times when you don't need a microcontroller. A PIR sensor can be connected to a relay (perhaps with a transistor buffer) without a micro!

Où Acheter

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

{MCH-Accord}}