본문 바로가기
아두이노 센서

[센서/충격] 충격(진동) 감지 센서/Knock sensor/Vibration sensor

by 작동미학 2015. 8. 17.
반응형

충격 센서(Knock sensor)를 통해 충격을 감지할 수 있다.

 

▶ 이 가이드를 따라하면

- 충격을 감지하면 on(5V, HIGH)를 디지털 핀을 통해 출력하는 센서를 활용할 수 있다.

 

▶ 먼저 읽으면 좋은 글

- Arduino 일반 : http://bbangpan.tistory.com/1

- 디지털 충격 센서(유사 센서) : http://bbangpan.tistory.com/44

- 약한 진동 감지하는 Piezo disk vibration sensor(Analog) : http://bbangpan.tistory.com/46

 

▶ 부품 설명 및 회로 구성

지금까지 몇가지의 진동 센서(vibration sensor, shock sensor)를 보아왔는데, 이 센서는 꽤 큰 충격에 반응하는 디지털 센서이다. 작은 진동에 반응하는 센서를 찾는다면 위 '먼저 읽으면 좋은 글'을 참조하도록 하자. 영문으로는 Knock sensor로 명명되어 판매된다. 서론이 길었는데 일단 사진부터 보자.

<Keyes vibration sensor / 몇가지 유사 버전이 있는데, Signal(S)/Vcc(가운데)/GND(-)로 이루어져있다.>

이 모듈은 3pin으로 구성되어 상단의 스프링 같은 것으로 충격을 감지(?)하는 것으로 추정된다. 그런데 이게 손가락이 어느정도 세게 튕기는 정도의 충격만 감지한다. 아무리 봐도 조절 버튼이 보이지 않으니 활용도 측면에서는 많이 떨어진다고 생각한다. 일단 회로 구성을 해보자.

.

<GND(-)->GND, Vcc(가운데)->5V, Signal(S)-D3 에 연결>

상기와 같이 구성하면 아래 간단한 소스로 충격이 감지되었을 때 보드 LED에 불이 들어오도록 기능하게 할 수 있다.


▶ 소스 코드 입력 및 구동

아래 간단한 소스를 작동시킨다. 어딘가에서 간단히 발췌하였는데, 원리는 단순하다. 디지털 핀에서 값을 읽어 HIGH일때를 검출하면 된다.

 

----------------------------------------------------------

int Led=13;

int Shock=3;

int val;

 

void setup()

{

pinMode(Led,OUTPUT);

pinMode(Shock,INPUT);

}

void loop()

{

val=digitalRead(Shock);

if(val==HIGH){

digitalWrite(Led,LOW);

}

else

{

digitalWrite(Led,HIGH);

}

}

-------------------------------------------------------

 

업로드 한 후 손가락으로 해당 센서를 세게 튕겨보자. 보드 LED에 불이 들어오는 것을 알 수 있다.

 

▶ 구매 가이드

Arduino Knock sensor : http://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20150816080019&SearchText=arduino+knock+sensor ($1)

 

강의 키워드

Arduino UNO, Knock sensor, 충격 센서, shock sensor

 

 

 

 

반응형