Monday, November 9, 2015

How To Make Arduino PIR Sensor alarm


The step wise procedure to make the Arduino PIR sensor alarm



Step 1: Parts Required
     330 Ohm Resistor
     Piezo Buzzer 
     An Arduino Maker Shield
     Breadboard
     An Arduino UNO or later
     PIR Sensor
     Jumper Wires
     LED

 Arduino Accessories




Step 2 : Assembly





To assemble this  project,first you will connect the sensor to the breadboard. Put the pin "VCC" or "VNN"  into the Arduino's "5v" hole. Connect the "GND" and "OUT" pins to the Arduino's "GND" and "2" pins, respectively. Next, you connect the piezo buzzer. Connect the buzzer's "+" lead to the Arduino's "10" pin, and connect the buzzer's other pin to the Arduino "GND". Finally, you have to connect the LED. And connect the LED's longer lead to the Arduino's pin "13," and connect the shorter to your 330 ohm resistor. Connect the other end of the resistor to the Arduino's "GND."

Step 3: Programming
Write This programe in the Arduino IDE, and after click the blue arrow at the top pointing left to upload the code into the arduino board.
// Uses a PIR sensor to detect movement, buzzes a buzzer
// more info here: http://blog.makezine.com/projects/pir-sensor-arduino-alarm/
// email me, John Park, at jp@jpixl.net
// based upon:
// PIR sensor tester by Limor Fried of Adafruit
// tone code by michael@thegrebs.com


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
int pinSpeaker = 10;           //Set up a speaker on a PWM pin (digital 9, 10, or 11)

void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
  pinMode(pinSpeaker, OUTPUT);
  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
    playTone(300, 160);
    delay(150);

   
    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
      playTone(0, 0);
      delay(300);   
      if (pirState == HIGH){
      // we have just turned off
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}
// duration in mSecs, frequency in hertz
void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }
}

No comments:

Post a Comment