초음파 센서 HC-SR04 ­

초음파 센서 HC-SR04초음파센서중초보자또는입문자가사용하기에가장쉽고보편적인모델은HC-SR04입니다. 아래그림과같이핀이 4개으로만제어가되어초보자분들도쉽게센서를이용해볼수있습니다. 초음파란사람의귀에들리지않는높은주파수대역으로약20khz 이상의 소리를말합니다. 초음파를이용해물체와의거리를측정할수있는데그원리는초음파를발사시키고장애물과부딪친뒤반사되어돌아오는시간차를이용해음파의속력을이용해거리를계산해내게됩니다. 즉, 거리 = 속력 X 시간이라는등속도운동거리계산식을이용합니다. 여기서속력에음파의속력을대입합니다. 초음파 센서 HC-SR04 보러가기(클릭)​

>

​그림1. 초음파 센서 HC-SR04의 기능 및 핀 설명들​​​1. 초음파 센서 원리​

>

= > 초음파 센서의 Trig에서 초음파를 발생하는 신호이며, Echo가 물체 및 장애물에 반사되어 돌아오는 초음파를 받는 역할을 합니다. 즉, 초음파 발생 시간과 물체에 부딪혀 반사되어 돌아오는 시간차를 이용하여 거리를 측정합니다.​ 거리 = 시간 X 속력​ 여기서 속력은 초음파(소리)의 속도를 의미하며, 340m/s로 고정 값 입니다. ​ ​2. 배선 연결도

>

< 결선도 >​​

>

​​<실제 배선 연결 사진>​ ​ ​3. 코딩 예제 – 아래 코드를 아두이노 스케치에 입력 후 업로드 합니다.​ 1) ‘시리얼 모니터’로 거리값 확인하기 ​​

​◈ 코드 설명 ​ * pulseIn(pin,value); 함수는 입력 포트의 신호 주기를 리턴해줍니다 ​아두이노에서 Trig 핀으로 HIGH를 입력하면 초음파 모듈에서 40KHz 음파를 발사합니다.(10us 이상 HIGH 유지를 권장)이때부터 Echo 핀은 HIGH 상태가 되고, 음파가 되돌아와 수신되면 echo 핀이 다시 Low 상태가 됩니다.즉, 위의 예제와 같이 pulseIn(echoPin, HIGH); 로 지정되어있으면, echo핀의 레벨이 HIGH가 유지되고 있는 시간을 마이크로세컨드(㎲) 단위로 리턴해줍니다.​코드 예제에서 확인해보면 ​duration = pulseIn(echoPin, HIGH);​- echoPin 이 HIGH를 유지한 시간을 저장 하며, HIGH였을 때의 시간을 가지고 거리 계산을 한다.​​distance = ((float)(340 * duration) / 1000) / 2;​- 340은 초음파(소리)의 속도, 단위는 m/s이다.- 마이크로 세컨드(㎲) 단위로 넘어온 ‘duration’ 값을 세컨드(s) 단위로 변환시켜주기 위해1000000을 나눠 주고, 거리의 단위를 ‘mm’로 출력하기 위해 1000을 곱해준다. 결과적으로1000을 나눠주면 된다.- 초음파는 왕복거리로 측정되므로 2로 나눠준다.​ ​◈ 출력 결과

>

​ ​2) ‘시리얼 플로터’로 거리값 확인하기 ​ ​◈ 시리얼 플로터를 이용해 그래프로 거리값을 출력할 수 있습니다​ – 아두이노 스케치에서 ‘Ctrl +Shit +L’ 단축키 또는 메뉴의 ‘툴-시리얼 플로터’를 이용하여 ​시리얼 플로터 창을 열 수 있습니다.​ – 시리얼 플로터 창이 열린 상태에서 초음파 센서 전면부에서 물체를 움직이면 거리에 따라 그래프로 출력됨을 알 수 있습니다​ ​​

​ ​◈ 출력 결과​

>

[출처] [아두이노 강좌] 초음파센서 HC-SR04|작성자 에듀이노 오픈랩​