Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*-----------------------*
- * Made by coolyyz154 *
- *-----------------------*/
- int ledPin = 10; // 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 = 13; //Set up a speaker on a PWM pin (digital 9, 10, or 11)
- void setup() {
- pinMode(ledPin, OUTPUT); // declare LED as output
- pinMode(pinSpeaker, OUTPUT); //declare speaker pin as output
- pinMode(inputPin, INPUT); // declare sensor as input
- Serial.begin(9600); //start serial communication at 9600 baud
- }
- 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); //play 160Hz tone for 300mS
- delay(150);
- if (pirState == LOW) { // we have just turned on
- Serial.println("Motion detected!"); // We only want to print only if the output changes
- pirState = HIGH; //value to store pir state
- }
- }
- else {
- digitalWrite(ledPin, LOW); // turn LED OFF
- playTone(0, 0); //stop playing note
- delay(300);
- if (pirState == HIGH) { // we have just turned off Serial.println("Motion ended!"); // We only want to print if the output changes
- pirState = LOW;
- }
- }
- }
- void playTone(long duration, int freq) { // duration in mSecs, frequency in hertz
- 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);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement