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)
▶ 강의 키워드
Arduino UNO, 아두이노 우노, Digital Vibration Sensor, shock sensor, 충격 센서, 진동 센서, 움직임 센서, 충격 진동 감지
'아두이노 센서' 카테고리의 다른 글
[센서/무게,하중] 1kg미만의 무게를 측정 가능한 무게 센서(weight sensor) (4) | 2015.06.25 |
---|---|
[센서/초음파 거리측정] 물체와의 거리를 측정해주는 초음파 센서(ultra sonic sensor) (0) | 2015.06.24 |
[센서/터치] 정전식 터치 센서를 통해 손가락 터치를 감지한다 (0) | 2015.06.22 |
[센서/진동] 약한 진동까지 감지할 수 있는Piezo Disk Vibration Sensor(피에조 디스크 진동 센서) (12) | 2015.06.22 |
[센서/컬러] 눈앞에 색을 인식하는 TCS3200 IC기반의 Color(RGB 색깔) sensor 인 GY-31을 실습해보자. (17) | 2015.06.18 |
[센서/가속도,자이로 센서] MPU-6050으로 만나는 각종 위치 및 움직임 관련 정보 센싱 (2) | 2015.06.17 |
[센서/온도] 접촉없는 원격 온도 측정, 적외선 기반 TM006 모듈 (0) | 2015.04.29 |
[센서/심박] 광학식으로 심박수를 측정하는 Pulse heart rate sensor (0) | 2015.04.01 |
[센서/마이크] 소리 세기/소음 측정 하는 마이크 센서(MAX4466) (6) | 2015.03.30 |
[센서/RFID] 접촉형 신분증/태그 구현이 가능한 RC522 RFID모듈 (0) | 2015.03.20 |