Examples - Sensorboard - Motion PIR
PIR Motion Sensor SE-90
This Example shows the use of a PIR Motion Sensor SE-90.
/************************************************************************************************** * * PIR Motion Sensor SE-90 * * Version: 1.0.0 - September 2008 * Author: Etienne Ribeiro / tutorial assistant caad / eribeiro[at]ethz.ch * Supervisor: Christoph Wartmann / chair for caad - ETH Zürich / wartmann[at].arch.ethz.ch * * Desc: Shows the use of the PIR Motion Sensor SE-90. Remarks: The sensor needs up to 30 * seconds after beeing powerd to return accurate results. * ***************************************************************************************************/ // // Const int TURN_OFF_AFTER = 3000; // Milliseconds. Periode to torn on sensor again. int digitalPin = 24; // Pin where PIR-Sensor's out pin is connected int ledPin = 25; // // Var boolean isTransition = true; long tmpMillis = 0; // // Setup void setup() { // LED (2 * blink) pinMode(48, OUTPUT); digitalWrite(48, HIGH); delay(200); digitalWrite(48, LOW); delay(200); digitalWrite(48, HIGH); // Start Serial Serial.begin(9600); // Pin pinMode(digitalPin, INPUT); pinMode(ledPin, OUTPUT); } // // Loop void loop() { // Something detected if (digitalRead(digitalPin) == LOW) { tmpMillis = millis(); //digitalWrite(ledPin, HIGH); // LED if (isTransition == true) { // go in only one time isTransition = false; Serial.print("Something moved..."); } } else { //digitalWrite(ledPin, LOW); // LED // Commit detection if nothing moved for TURN_OFF_AFTER-time if (isTransition == false && tmpMillis + TURN_OFF_AFTER < millis()) { // go in only one time isTransition = true; Serial.println("and stopped."); } } delay (200); }