본문 바로가기

메이킹/아두이노

PIR 모션센서와 LED 활용하기

반응형

오늘은 PIR모션센서와 LED를 제어해보겠습니다.

저번 시간에 배운 LED 회로를 활용하여 PIR모션센서의 값을 읽어 LED를 제어해 보겠습니다.

 

준비물

- 아두이노 우노

- 저항 : 220옴

- LED 소자

- PIR센서 : 적외선(빛)을 통해 움직임을 감지하는 센서입니다.

  감지 각도내에 빛의 변화가 있을 시 HIGH신호를 출력하고 그렇지 않으면 LOW신호를 출력합니다.

 

PIR(Passive Infrared Sensor: 패시브적외선)은 이름 그대로, 특정 범위 안에서 인체를 포함한 따뜻한 어떤 물체에서 방출되는(passive) 적외선(infrared)의 변화량을 감지해 어떤 물체의 움직임이 있음을 감지해 이를 전압으로 표현해 주는 장치입니다. 적외선은 적외선 파장에서 방출되기 때문에 사람의 눈에는 보이지 않고 반드시 움직임이 있어야 감지가 되고, 움직이지 않고 가만히 있으면 감지할 수 없습니다. 움직임이 없다는 의미는 두 가지를 포함하는데, 물체가 센서 탐지범위를 벗어났거나, 탐지범위 안에 있으나 움직임이 없는 두 가지 경우를 다 말합니다.

출처 : https://jjlee.gitbook.io/entry-arduino/appendix/pir_sensor
출처 :https://jjlee.gitbook.io/entry-arduino/appendix/pir_sensor

회로도

PIR센서로 LED제어하기

소스코드

int val=0;

void setup() {
  pinMode(2, INPUT); //PIR센서
  pinMode(3, OUTPUT); //LED
  Serial.begin(9600);
}
 
void loop() {
  val=digitalRead(2); //PIR센서 값 읽기
  
  if(val==HIGH){
     digitalWrite(3, HIGH);
  }
  else{
     digitalWrite(3, LOW);
  }
  Serial.println(val); //시리얼 모니터에 val값을 출력
}

센서에 움직임이 감지되면 아두이노에서 HIGH신호를 입력받아 LED를 켜고, 반대로 움직임이 감지되지 않으면 아두이노는 LOW신호를 입력받아 LED가 꺼지게 됩니다. 신호가 정상적으로 작동하는지 확인하려면 시리얼모니터를 확인해가며 센서의 가변부를 조절하여 딜레이 및 감지범위를 조절해주면 됩니다.

 

int val=0;
int pirState=LOW;

void setup() {
  pinMode(2, INPUT); //PIR센서
  pinMode(3, OUTPUT); //LED
  Serial.begin(9600);
}
 
void loop() {
  val=digitalRead(2); //PIR센서 값 읽기
  Serial.println(val); //시리얼 모니터에 val값을 출력
  
  if(val==HIGH){
     digitalWrite(3, HIGH);
     if (pirState==LOW){
          Serial.println("감지됨");
          pirState=HIGH;
	}
  }
  else{
     digitalWrite(3, LOW);
     if (pirState==HIGH){
          Serial.println("감지가 안됨");
          pirState=LOW;
	}
  }
}
반응형