1. HC-SR04 초음파 센서란?

HC-SR04는 초음파를 이용해 물체까지의 거리를 측정하는 센서
- 센서 앞쪽에는 보통 동그란 금속 캡 모양의 부품이 2개 있음 : 하나는 초음파 송신부, 다른 하나는 초음파 수신부
- 송신부는 약 40kHz의 초음파를 내보냄
- 초음파가 물체에 부딪히면 반사되어 돌아옴
- 수신부는 돌아온 초음파를 감지아두이노는 초음파가 왕복하는 데 걸린 시간을 이용해 거리를 계산표준 HC-SR04의 대표적인 사양은 5V 동작, 약 40kHz 초음파, 약 2cm~400cm 측정 범위
2. HC-SR04의 주요 기능
HC-SR04의 핵심 기능은 비접촉 거리 측정
- 주요 활용 예시
- 장애물 회피 로봇 : 로봇 앞에 물체가 있는지 감지
- 자동문 프로젝트 : 사람이 가까이 오면 문이 열리도록 만들 수 있음
- 주차 거리 감지 : 벽이나 장애물과의 거리를 측정
- 물체 접근 감지 : 일정 거리 안에 물체가 들어오면 LED나 부저를 켤 수 있음
3. HC-SR04 핀 구성
| 핀 이름 | 역할 |
| VCC | 센서 전원 입력 |
| Trig | 초음파 측정 시작 신호 입력 |
| Echo | 초음파가 돌아온 시간 출력 |
| GND | 접지핀의 기본 역할은 단순합니다 |
- 아두이노가 Trig 핀에 짧은 신호를 보내면 센서가 초음파를 발생
- Echo 핀은 초음파가 되돌아오는 동안 HIGH 상태를 유지
- 아두이노는 이 HIGH 시간이 얼마나 지속되었는지 측정
4. 동작 원리

- 아두이노가 Trig 핀에 약 10마이크로초의 HIGH 신호를 보냄
- 센서는 초음파를 송신
- 초음파가 물체에 부딪혀 반사
- 반사된 초음파가 센서로 돌아옴
- Echo 핀의 HIGH 지속 시간을 아두이노가 측정
- 측정한 시간을 이용해 거리를 계산
※ 거리 계산 공식
1) 거리(cm) = Echo 시간(µs) × 0.0343 ÷ 2
2) 거리(cm) ≈ Echo 시간(µs) ÷ 58
- 0.0343은 공기 중 소리의 속도 약 343m/s를 cm/µs 단위로 바꾼 값.
- 나누기 2를 하는 이유는 초음파가 물체까지 갔다가 다시 돌아오는 왕복 시간을 측정하기 때문
5. Arduino Uno와 연결하는 회로

| HC-SR04 핀 | Arduino Uno 핀 |
| VCC | 5V |
| Trig | D9 |
| Echo | D10 |
| GND | GND |
6. ESP32, ESP8266 같은 3.3V 보드와 연결할 때

1) 3.3V~5V 지원 센서를 3.3V로 구동하는 경우
- HC-SR04 VCC → 3.3V
- HC-SR04 Trig → MCU GPIO
- HC-SR04 Echo → MCU GPIO
- HC-SR04 GND → GND
- 단, 이 경우에도 반드시 제품 설명서에서 3.3V 동작을 지원하는지 확인해야 함
2) 표준 HC-SR04를 5V로 구동하고 3.3V 보드에 연결하는 경우
- 이 경우 Echo 핀에 전압 분배 회로를 넣는 것이 안전
- 예를 들어 10kΩ과 20kΩ 저항을 사용하면 5V Echo 신호를 약 3.3V로 낮출 수 있음
- 3.3V 보드에서는 Echo 핀을 직접 연결하지 않는 것이 안전
HC-SR04 Echo --- 10kΩ ---+--- MCU Echo 입력 핀
|
20kΩ
|
GND
※ 전압 계산
Vout = 5V × 20kΩ ÷ (10kΩ + 20kΩ)
Vout ≈ 3.33V
7. 측정값이 이상할 때 확인할 점
1) VCC와 GND 확인
가장 기본적인 문제는 전원 연결 오류. VCC는 5V 또는 지원되는 전압에, GND는 반드시 보드의 GND에 연결해야 함
2) Trig와 Echo 핀 번호 확인
코드에서 지정한 핀 번호와 실제 연결한 핀 번호가 같아야 함
3) 3.3V 보드에서 Echo 전압 확인
ESP32나 라즈베리파이처럼 3.3V 입력만 허용하는 보드에 표준 HC-SR04의 Echo 핀을 직접 연결하면 보드가 손상될 수 있음. 반드시 전압 분배 회로나 레벨 시프터를 사용해야 함
4) 측정 대상의 표면 확인
부드러운 천, 스펀지, 비스듬한 판, 곡면은 초음파를 제대로 반사하지 못할 수 있음.
5) 너무 가까운 물체 확인
HC-SR04는 일반적으로 약 2cm 이하의 거리는 안정적으로 측정하기 어려움. 표준 사양에서도 최소 측정 거리는 약 2cm
6) 여러 센서를 동시에 사용하지 않기
초음파 센서를 여러 개 사용할 경우 서로의 초음파가 간섭할 수 있음. 여러 개를 사용할 때는 동시에 측정하지 말고 순서대로 하나씩 측정하는 것이 좋음.
'Potato Lab > Arduino' 카테고리의 다른 글
| Arduino(아두이노)부품 정리 - LM2596S DC-DC 스텝다운 모듈 (0) | 2026.07.03 |
|---|---|
| Arduino(아두이노)부품 정리 - MPU6500 6축 자이로 가속도 센서 모듈 (0) | 2026.06.30 |
| Arduino(아두이노)부품 정리 - Uno R3(우노 R3) (0) | 2026.06.27 |