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

[센서/진동] 충격을 감지해주는 digital vibration sensor

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

digital vibration sensor를 통해 작은 충격을 감지하여 활용하자.

 

▶ 이 가이드를 따라하면

- digital vibration sensor를 이해하고 활용할 수 있다.

 

▶ 먼저 읽으면 좋은 글

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

- 아날로그 피에조 진동 센서 : http://bbangpan.tistory.com/46

 

▶ 부품 설명 및 회로 구성

Digital vibration sensor(진동 센서)는 일종의 충격 감지 장치이다. 작은 움직임이나 진동을 감지한다기 보다는 살짝 건드리면 반응한다. 예컨데 들고 움직이면 좀 거칠게 움직여도 반응을 하지 않을 수 있지만, 아주 작은 높이(예컨데 0.3cm)정도만 바닥에서 띄웠다가 떨어뜨려도 Digital pin에 5V를 인가한다(1을 출력한다). 단점으로는 이 진동을 조절할 수가 없다는 것인데, 아주 싼 가격에 충격을 감지할 때는 편하다. 이를 위해 별도로 가속도 센서를 활용할 수도 있으나, 가속도 센서가 매 시간측정하여 그 차이를 구해야 함에 반하여, 이 센서는 충격을 가하면 1을 출력하기 때문에 아주 쉽게 프로그램을 구성할 수 있다.

<Digital Vibration Sensor/충격 센서/진동 센서>

회로도 및 프로그램은 http://www.dfrobot.com/wiki/index.php?title=DFRobot_Digital_Vibration_Sensor_(SKU:DFR0027) 를 참조로 한다. 아래와 같이 연결하면 된다. (빨간색은 5V, 검정색은 GND, 초록색은 D3에 입력한다)

<센서와 Arduino UNO와의 연결>

단점으로는 반응하는 진동의 크기를 조절할 수가 없다는 점이다. 따라서 약한 정도의 충격을 감지하는 용도로만 사용할 수 있다. (Aliexpress에서는 볼트로 돌려서 민감도를 조절하는 제품도 판매한다. 필요하면 구매해서 활용하자)


▶ 소스 코드 입력 및 구동

Arduino Sketch 1.7.4버전에서 테스트하였으나 별도 라이브러리가 없으므로 어디서나 컴파일해서 사용할 수 있다.

앞서 밝힌 대로 http://www.dfrobot.com/wiki/index.php?title=DFRobot_Digital_Vibration_Sensor_(SKU:DFR0027) 에서 발췌한 소스이다.

특이한 것은 attachInterrupt함수인데, 이 함수는 특정 핀 상태가 변경하면 지정된 함수를 능동적으로 호출한다(인터럽트 호출이라고 보통 말한다).

 

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

#define SensorLED 13

#define SensorINPUT 3 //Connect the sensor to digital Pin 3 which is Interrupts 1.

 

unsigned char state = 0;

 

void setup()

{

pinMode(SensorLED, OUTPUT);

pinMode(SensorINPUT, INPUT);

attachInterrupt(1, blink, FALLING);// Trigger the blink function when the falling edge is detected

 

}

void loop()

{

if(state!=0)

{

state = 0;

digitalWrite(SensorLED,HIGH);

delay(500);

}

else

digitalWrite(SensorLED,LOW);

}

 

 

void blink()//Interrupts function

{

state++;

}

상기 소스를 구동하면, 진동 센서에 충격을 줄때마다 Arduino Uno 보드의 LED가 깜빡임을 알 수 있다.

 

▶ 구매 가이드

Digital Vibration Sensor모듈: http://www.aliexpress.com/premium/digital-vibration-sensor.html?ltype=wholesale&SearchText=digital+vibration+sensor&d=y&origin=y&initiative_id=SB_20150617055607&isViewCP=y&catId=0 ($2~$10)

민감도 조절 가능 모듈 : http://www.aliexpress.com/item/180ip-Vibration-Sensor-Module-Vibration-Switch-Adjustable-Digital-Potentiometer-3-3V-5V-For-Intelligent-Smart-Car/32242037096.html

 

강의 키워드

Arduino UNO, 아두이노 우노, Digital Vibration Sensor, shock sensor, 충격 센서, 진동 센서, 움직임 센서, 충격 진동 감지

 

반응형