카테고리 없음

아두이노 진동센서 지진감지 시스템 만들기

abc0123 2017. 11. 17. 22:54
반응형

 

다양한 아두이노의 센서를 활용하면 생활에 필요한 여러 가지 물건들을 만들 수 있지만 일단 그 센서들의 기능과 값을 읽어오는 방법 등에 대해서 정확하게 알고 있어야 응용이 가능할 것이고 오늘은 진동센서에 대해서 알아보려고 한다.

 

진동센서의 종류에도 여러 가지가 있겠지만 내가 갖고 있는 B52라는 녀석은 아쉽게도 진동의 세기를 체크할 수 있는 건 아니고 단지 진동이 있을 때는 true(1)의 값을 없을 때는 flase(0)의 값만을 보내는 단순한 녀석이다. 하지만 그 이용방법은 똑같기 때문에 진동이 있을 때 LED를 켜고 피에조 스피커를 통해서 소리를 내는 등 지진감지 시스템과 비슷하게 다음과 같은 예제를 만들어보자.

 

 

 

▲ 아쉽게도 이 녀석으로 할 수 있는 건 이게 다 일 것 같다. 혹시 아두이노 진동센서 구입하실 분들은 B52라는 이 모델은 진동의 세기를 체크할 수 없다는 점 참고하시고...

 

1. B52 진동센서

 

준비물

 

▲ 생긴 건 다른 것들과 똑같이 생겼으니 꼭 모델명을 확인하는 게 좋을 것 같다. 여하튼 나는 이 녀석을 이용해서 진동이 있을 때만 스피커에서 소리가 나고 LED가 켜지도록 해볼 생각이다.

 

B52

 

▲ 회로는 간단할 것 같다. LED와 피에조 스피커는 각각 VCC와 GND를 연결하면 되고 진동센서 역시 VCC와 GND 그리고 진동 여부를 확인하기 위해서 디지털 핀에 나머지 하나를 연결하면 된다.

 

회로

 

▲ 나는 아두이노 나노의 디지털 3번부터 5번까지 순서대로 스피커, LED, 진동센서를 연결을 했는데 사진에서는 구분이 좀 힘드니 간단한 회로도지만 대충 그려본다.

 

 

2. 진동센서 예제 회로와 코딩

 

회로도 그리기

 

▲ 이제 이 녀석들을 제어할 아두이노 스케치 코딩을 해보자.

 

코딩

 

① 사용되는 디지털 핀을 변수로 선언해서 관리하고 있으며 진동센서에서 들어오는 값을 저장하기 위한 변수 vib_date를 선언했다. ② setup() 함수에서는 각각의 핀을 OUTPUT과 INPUT으로 초기화하고 아두이노의 시리얼 모니터를 통해서 들어오는 값을 확인하기 위해 시리얼 통신을 준비하고 있다.

 

③ loop() 함수에서는 5번 핀을 통해서 들어오는 디지털 값을 vib_date 변수에 저장한 후 그 값을 시리얼 모니터를 통해서 출력하고 있으며 ④ 들어온 값이 1이라면 즉, 진동이 있다면 LED를 켜고 피에조 스피커에 소리를 출력하며 그렇지 않은 경우 즉, 진동이 없어서 데이터가 0이 들어올 때는 모두 끄도록 하고 있다. 그리고 그 주기는 0.5초 단위로 실행되도록 하고 있는 모습이다.

 

이 예제를 아두이노에 올리고 실행하면 맨 앞에서 봤던 영상과 같은 결과를 얻을 수 있는데 내가 갖고 있는 진동센서가 이거밖에 없어서 간단한 예제를 만들어보면서 개념 정리만 했지만 진동의 세기를 측정할 수 있는 녀석이라면 상황에 따라서 좀 더 다양한 예제를 만들어볼 수 있을 것이다.

반응형