다양한 아두이노 센서 중에서 활용도가 가장 높은 것 중 하나가 초음파센서가 아닐까 싶은데요. 아래 사진에서 확인할 수 있듯이 어떤 영화에서 나왔던 로봇의 눈을 연상시키는 모습을 하고 있는 이 녀석은 한쪽에서 초음파를 발사해서 사람이나 사물에 맞고 돌아오면 다른 쪽에서 그 초음파를 받아서 반사되어 돌아온 거리를 계산한 후 우리에게 알려주는 역할을 하는 HC-SR04라는 모델의 초음파 센서입니다.

 

아두이노 초음파센서

 

이번 글에서는 아두이노 초음파센서 HC-SR04를 활용해서 거리측정기 개념의 장치를 만들어보겠습니다. 측정된 거리를 이용해서 모터나 LED 등 다양한 액추에이터를 제어할 수 있겠지만 일단 이 녀석을 제대로 다룰 줄 알아야 응용이 가능할 테니 오늘은 아두이노에 연결해서 거리를 측정하는 기본 예제를 만들면서 익혀보도록 하겠습니다.

 

 

여러개 구입

 

초보인 제가 느끼기에도 활용도가 많을 거 같고 가격도 저렴해서 몇 개를 구입을 했네요. 일단 하나로 이 녀석을 익히고 다른 것들도 함께 사용할 수 있는 예제도 만들어볼 계획입니다.

 

핀 관찰

 

초음파 센서의 핀들을 자세히 살펴보니 VCC, GND, ECHO, TRIG가 있군요. 이중 VCC와 GND는 전류를 인가하는 핀 들이고요. TRIG에서 초음파를 쏴서 ECHO로 받아들이면서 거리를 측정하는 원리입니다. 이제 아두이노와 연결을 해볼게요.

 

빵판에 연결

 

일단 이게 혼자 서 있을 수 없는 구조라서 빵 판에 꽂아서 연결을 했고요.

 

디지털 핀

 

5V와 GND를 연결한 후 TRIG는 D8번에 ECHO는 D9번에 각각 연결을 했습니다. 이제 아두이노 스케치에서 코딩을 해서 초음파센서가 읽어들이는 거리의 값을 시리얼 모니터를 통해서 확인해보겠습니다.

 

 

초음파센서 코딩

 

8번 핀에 연결된 TRIG는 초음파를 내보내기 때문에 OUTPUT으로 초기화를 했고요. ECHO는 그걸 다시 받아들이는 역할을 하기 때문에 INPUT으로 설정을 했습니다. 그리고 측정된 값을 시리얼 모니터에서 확인하기 위해서 통신을 준비하고 있습니다.

 

loop()에서는 초반에 TRIG 핀을 껐다 켜기를 반복하고 있는데요. 이건 초음파를& 끊었다가 다시 발사해서 정확한 값을 측정하기 위함이며 pulseIn()이라는 함수에 ECHO 핀을 전달해서 측정된 값을 58.2나눈 후 long 타입의 변수 a를 초기화하고 있는데요. 여기서 사용한 58.2는 pulseIn()에서 측정된 값을 Cm로 변환해주기 위한 숫자이며 센서마다 모델별로 차이가 있으니 사용하는 모델의 값을 체크해봐야 할 것입니다.

 

그렇게 Cm 단위로 변환된 a의 값을 시리얼 모니터에서 출력하도록 해봤습니다. 그 결과를 영상으로 확인해볼게요.

 

 

이렇게 어떤 물체의 거리에 따라서 출력되는 거리의 값이 변하는 걸 확인함으로써 이 초음파센서가 제대로 작동하는 걸 확인을 했는데요. 다음 글에서는 녀석을 응용한 예제들을 만들어보기로 하고 오늘은 마무리하겠습니다. 수고하셨어요.

Posted by 차케요