아두이노 PIR 센서를 이용하여 경고음 발생시키기
Motion Detection Alarm System Motion Detection Alarm System
//HASSAN SHETTIMA LAWAN
//hassanshettima705@gmail.com // 기본 변수 설정
int buzzerPin = 8; //BUZZER INPUT PIN. 부저 입력핀을 8번으로 함
int ledPin = 13; //LED PIN. led 핀을 13번으로 함
int pirPin = A0; //MOTION SENSOR INPUT PIN. 모션센서 핀을 아날로그 A0번으로 함
int sensorValue = LOW; //DEFAULT SENSOR STATE. 모션센서의 초기값음 0(LOW), 1(HIGH)이면 작동이 되게 설정함.
int alarmoffswitchPin = 5; // 알람해제용 핀을 5번으로함(시끄러울 경우 30분간 해제)
int switchValue = LOW; // 스위치 눌림여부 확인변수로 기본 LOW
void setup() { //INITIAL SETTINGS/ASSIGNMETN. 핀모드의 작동설정을 합니다.
pinMode(buzzerPin, OUTPUT); //SET BUZZER AS OUTPUT. 8번으로 설정된 부저핀은 출력모드로 사용합니다.
pinMode(ledPin, OUTPUT); //SET LED AS OUTPUT. 13번으로 설정된 LED 핀은 출력모드로 사용합니다.
pinMode(pirPin, INPUT); //SET PIR AS INPUT. 아날로그 A0으로 설정된 PIR(적외선움직임) 센서는 입력모드로 사용합니다.
pinMode(alarmoffswitchPin, INPUT) // 5번으로 설정된 led핀은 입력모드로 사용합니다.
}
void loop() { //COMMAND TO BE REPEATED. 작업 수행명령
sensorValue = digitalRead(pirPin); //READ PIR INPUT PIN. 만약 sensorValue값이 1(HIGH)이면
if ( sensorValue == HIGH) { //IF MOTION IS DETECTED. buzzerPin에 1200주파수를신호를 주고
tone(buzzerPin, 1200); //BUZZ THE BUZZER. Led도 같이 켠다.
digitalWrite(ledPin, HIGH); //ON LED. (100ms)0.1초간 잠시 대기
delay(500); //TIME DIFFERENCE BETWEEN HIGH(ON)& LOW(OFF).
noTone(buzzerPin); //SILENT BUZZER. buzzerPin에 경고음을 끈다.
digitalWrite(ledPin, LOW); //OFF LED. ledPin도 끈다.
delay(100); //TIME DIFFERENCE BETWEEN HIGH(ON)& LOW(OFF). (100ms)0.1초간 잠시 대기
switchValue = digitalRead(alarmoffswitchPin);
if( alarmoffswitchPin, HIGH){ // alarmoffswitchPin값이 1(HIGH)이면
delay(30000); // 스위치가 눌러진 것으로 파악,
}
else { // 스위치가 눌러지지 않았을 경우 다음으로 진행됨.
}
}
else { //IF NO MOTION IS DETECTED.
noTone(buzzerPin); //SILENT THE BUZZER.
digitalWrite(ledPin, LOW); //OFF LED.
}
}