Différences entre versions de « Senseur PIR »
Sauter à la navigation
Sauter à la recherche
(→Code) |
|||
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
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}}