' + re_word; if(data.autoList[i].PROD_NAME != ''){ html += ' '+data.autoList[i].PROD_NAME+''; } html += '
' html += '' + comma(Math.floor(data.autoList[i].PROD_PRICES)) + ' 원'; html += '' + re_word + '
'; html += '' + comma(Math.floor(data.resultList[i].prod_priceS)) + ' 원'; html += ''+data.catgStep1List[i].split('@@')[1]+'
'; html += '
안녕하세요 여러분!
전자부품 기초를 탄탄하게 다져보는 시간입니다. 이번 포스팅에서는 아두이노(Arduino) 코딩 실습에서 가장 대중적으로 활용되는 센서 중 하나인 초음파 센서(Ultrasonic Sensor)에 대해 깊이 있게 알아보겠습니다. 거리를 정밀하게 측정하는 원리부터 실제 회로 연결 방법까지, 초보자도 쉽게 이해할 수 있도록 상세히 풀어보겠습니다.
초음파 센서는 이름 그대로 '초음파(Ultrasonic Wave)'라는 특수한 음파를 사용하여 물체와의 거리를 정밀하게 측정하는 전자부품입니다. 여기서 말하는 초음파란 인간의 청각 범위를 완전히 넘어서는 매우 높은 주파수의 소리를 의미합니다.

일반적으로 사람의 귀가 인식할 수 있는 가청 주파수 대역은 약 20Hz에서 20kHz 사이입니다. 반면, 아두이노 실습에 자주 사용되는 보편적인 초음파 센서는 40kHz의 높은 주파수 대역을 사용합니다. 주파수가 높기 때문에 사람의 귀에는 전혀 들리지 않지만, 직진성이 강해 거리를 측정하는 용도로는 아주 탁월한 성능을 발휘합니다.
초음파 센서가 거리를 측정하는 근본적인 원리는 메아리(Echo)의 원리와 동일합니다. 센서에서 초음파를 발사(보내고)한 뒤, 그 파동이 전방에 있는 물체에 부딪혀 반사되어 다시 돌아올 때까지 걸리는 시간(Time of Flight)을 측정하여 거리를 계산하는 방식입니다.

아두이노 환경에서 가장 흔하게 접할 수 있는 국민 초음파 센서인 HC-SR04 모델을 살펴보면, 마치 두 개의 눈처럼 생긴 원통형 부품이 달려 있는 것을 볼 수 있습니다. 이 두 개의 원통은 각각 다른 역할을 수행하도록 설계되어 있습니다.

한쪽은 초음파를 생성하여 외부로 발사하는 송신부(Trigger, T)이며, 다른 한쪽은 사물에 반사되어 돌아오는 초음파 신호를 감지하는 수신부(Echo, R)입니다. 송신부에서 짧은 펄스 형태의 초음파를 만들어 내보내면, 이 파동이 사물에 부딪혀 돌아옵니다. 수신부에서는 이 미세한 신호를 인식하게 되고, 마이크로컨트롤러(아두이노)가 이 신호가 오간 '시간'을 초 단위로 정밀하게 계산하여 실제 거리로 변환해 주는 것입니다.

그렇다면 송신부에서 소리를 만들어내고 수신부에서 신호를 다시 읽어들일 수 있는 근본적인 이유는 무엇일까요? 바로 센서 내부에 탑재된 압전소자(Piezoelectric Element) 덕분입니다.
▶압전소자란?
압전소자는 전기적인 에너지와 기계적인(물리적인) 에너지를 상호 변환할 수 있는 특수한 소재입니다. 센서의 송신부에 전기적인 신호(전압)를 가하면 소자가 미세하게 떨리며 물리적인 진동이 발생하고, 이 진동이 공기를 매질로 삼아 초음파가 되어 퍼져 나갑니다. 반대로, 물체에 부딪혀 되돌아온 초음파 파동이 수신부의 압전소자를 때리면 이 기계적 진동이 다시 전기 신호로 역변환되어 아두이노 보드로 전달되는 구조입니다.

자, 이제 거리를 구하는 공식을 알아보겠습니다. 대기 중에서 소리의 이동 속도는 1초당 약 343미터(343m/s)입니다. (단, 이 속도는 주변의 온도나 습도, 대기압 상태에 따라 미세하게 달라질 수 있습니다.)
Q. 만약 초음파 센서에서 발사된 초음파가 사물에 맞고 0.01초 만에 수신부로 다시 돌아왔다면, 사물은 얼마나 떨어져 있는 것일까요?
A. 소리가 0.01초 동안 이동할 수 있는 총 거리는 계산상 약 3.4미터(343 * 0.01)입니다. 그렇다면 센서와 물체 사이의 거리가 3.4미터라고 단정 지을 수 있을까요?

아닙니다! 절대 주의해야 할 핵심 포인트입니다.
우리가 측정한 0.01초라는 시간은 소리가 물체까지 '가는 시간'과 반사되어 '돌아오는 시간'이 모두 합쳐진 왕복 시간입니다. 따라서 센서와 물체 사이의 실제 거리를 구하려면, 전체 이동 거리인 3.4미터를 절반(1/2)으로 나누어 주어야 합니다. 즉, 실제 물체는 약 1.7미터 거리에 떨어져 있다고 계산해야 정확한 값이 도출됩니다. 코딩 실습 시 이 '/2' 연산을 누락하여 측정값이 2배로 튀는 오류가 가장 빈번하게 발생하므로 꼭 기억해 두세요!
초음파를 이용한 거리 측정 기술은 우리 주변의 다양한 산업 분야와 일상생활에서 유용하게 쓰이고 있습니다.

가장 친숙하고 흔하게 볼 수 있는 적용 사례는 단연 자동차의 후방 감지 센서입니다. 주차를 할 때 차량 후방 범퍼에 장착된 초음파 센서가 뒤쪽 장애물과의 거리를 감지하여, 일정 거리 이내로 가까워지면 경고음을 내어 운전자에게 충돌 위험을 알려줍니다.
또한 의료 분야에서도 널리 사용됩니다. 임산부가 태아의 건강 상태나 위치를 확인할 때 진행하는 초음파 검사(Ultrasound Screening) 역시 동일한 원리입니다. 인체 내부로 무해한 초음파를 보내 조직의 밀도에 따라 반사되어 돌아오는 신호의 시간차를 영상 데이터로 변환하여 모니터로 확인하는 기술입니다.

이 밖에도 깊은 바다의 지형이나 물고기 떼의 위치를 파악하는 어군 탐지기(해양 탐사), 집 안의 장애물을 스스로 피하며 돌아다니는 로봇 청소기, 수조의 수위를 비접촉식으로 측정하는 각종 산업 현장 등 거리를 탐지하고 인식해야 하는 수많은 곳에서 초음파 기술이 활약하고 있습니다.
이론을 배웠으니 이제 직접 아두이노(Arduino) 보드에 연결하여 초음파 센서를 제어해 볼 차례입니다. 실습에 필요한 구체적인 준비물 목록은 본문 맨 하단을 참고해 주시기 바랍니다.

먼저 전원을 공급하는 배선 작업입니다. 초음파 센서의 VCC 핀을 아두이노의 5V 전원 핀에 연결하고, GND 핀을 아두이노의 GND(그라운드) 핀에 각각 점퍼선으로 안전하게 연결해 줍니다.

다음으로 데이터 통신 핀을 연결합니다. 초음파를 발사하라는 명령을 내리는 Trig(트리거) 핀을 아두이노의 디지털 9번 핀에, 되돌아온 신호를 읽어들이는 Echo(에코) 핀을 디지털 10번 핀에 연결합니다. (핀 번호는 코딩 시 변수 선언을 통해 자유롭게 변경 가능합니다.)
이렇게 회로를 구성한 후 아두이노 IDE에서 초음파 제어 코드를 작성하여 업로드하면 기초적인 준비는 모두 끝납니다. 아두이노 IDE의 '시리얼 모니터' 창을 열고, 센서 앞쪽에서 손이나 물체를 앞뒤로 움직여 보세요. 거리가 멀어지고 가까워짐에 따라 시리얼 모니터에 출력되는 cm 단위의 수치가 실시간으로 갱신되는 것을 눈으로 직접 확인할 수 있습니다.
이 기본적인 거리 측정 코드를 응용하면 무궁무진한 프로젝트를 기획할 수 있습니다. 예를 들어, 거리가 10cm 이내로 좁혀지면 빨간색 LED가 점등되거나 피에조 부저에서 경보음이 울리도록 코딩을 추가하면, 훌륭한 '나만의 자동차 후방 감지기'를 직접 구현해 볼 수 있습니다.
오늘은 전자부품 기초에서 빠질 수 없는 초음파 센서(HC-SR04)의 원리와 구조, 실습 방법까지 총망라하여 알아보았습니다. 다음 시간에는 사람이나 동물의 움직임을 적외선으로 감지하는 "PIR 인체 감지 센서"의 원리에 대해 자세히 파헤쳐 보도록 하겠습니다. 그럼 모두 다음 포스팅에서 만나요! 안녕~!