카테고리 없음

아두이노 인체감지센서 HC-SR501 활용예제

abc0123 2017. 11. 21. 02:46
반응형

 

어두운 현관에 들어서거나 계단을 오를 때 조명이 스스로 켜졌다가 일정 시간이 지나거나 우리가 지나가면 꺼지는 시스템을 본 적이 있을 것이다. 그건 인체감지센서를 이용해서 사람의 움직임이 있을 때만 반응하도록 만들어진 시스템인데 이번에는 그걸 한 번 만들어보려고 한다. 그 어떤 예제보다 우리 생활과 밀접한 관련이 있는 예제가 될 것 같다.

 

실제로 현관 등 필요한 곳에 220V의 전원을 연결해서 사용할 수도 있지만 이번에는 그 원리만 이해하기 위해서& 다음 영상과 같은 작은 LED를 켜는 걸로 만족해보자.

 

 

▲ 영상에서는... 처음에 카메라를 켜기 위해서 이 녀석 앞에 내가 서 있었더니 LED가 켜진다. 그리고 옆으로 비켰더니 5초 뒤에 꺼지게 되고 그 후에는 플라스틱 자를 앞에서 움직여 봤는데 전혀 반응을 하지 않다가 인체감지센서 앞에서 내 손을 흔들었더니 계속 LED가& 켜지는 걸 확인할 수 있다. 그러다가 다시 비켜 서자 5초 뒤에 스스로 LED가 꺼지는 모습이다.

 

 

이처럼 인체의 움직임이 있을 때는 LED가 계속 켜지다가 그 움직임이 사라지면 5초 동안만 더 켜지다가 꺼지도록 예제를 만들어보자는 것이다.

 

1. 인체감지센서 예제 준비물

 

준비물

 

▲ 아두이노와 LED 및 저항, 빵판 그리고 인체감지센서 HC-SR501이며 이 센서는 사진에서 보이는 주황색 가변저항을 돌려서 그 민감도와 펄스 시간을 조절할 수 있다.

 

측점범위

 

▲ 그리고 이 녀석은 100도의 각도로 5~7m까지 감지가 가능하기 때문에 우리 실생활에서도 충분히 사용할 수 있을 것이다. 가격도 1700원 밖에 안 하더라. ㅎ

 

연결 핀

 

▲ 여하튼 인체감지센서에는 사진처럼 3개의 핀이 있는데 VCC와 GND 그리고 인체가 감지되면 1의 DATA를 출력하는 핀이다. 나는 이 DATA 핀을 아두이노의 D7에 연결을 했으며 LED는 D8번에 연결을 했다. 회로도에서 자세히 들여다보자.

 

 

2. 인체감지센서 회로 및 코딩

 

회로도

 

▲ 이렇게 7번 핀에서는 1(인체 감지 있을 때)의 데이터를 받도록 했으며 8번 핀에서는 LED를 켜도록 했다. 이제 이 녀석들의 작동을 위한 아두이노 스케치 코딩을 해보자.

 

코딩

 

① 회로에 연결한 핀들을 led와 body라는 int형 변수에 저장을 했으며 ② led는 OUTPUT, body는 INTPUT 모드로 초기화를 했다. 그리고 인체감지센서에서 들어오는 1의 데이터를 시리얼 모니터에서 확인해보기 위해서 시리얼 통신을 준비하고 있다. ③ loop()에서는 body (7)핀 을 통해서 들어오는 값을 int 형 a에 저장한 후 그 값이 1과 같다면... 즉, 인체가 감지가 된다면 시리얼 모니터에 "인체감지"라는 문자열을 출력하고 LED를 5초 동안 켜도록 하고 있다.

 

회로와 코딩을 마친 후 아두이노에 업로드 한 후 테스트를 해보면 앞에서 봤던 영상과 같은 결과를 얻을 수 있는데 아주 유용하게 여러 분야에서 사용할 수 있는 녀석일 거 같으니 기회가 되면 스피커까지 연결해서 실제 현관이나 집 앞에 직접 달아봐야겠다.
반응형