1. 초음파센서

https://swmakerjun.tistory.com/19
아두이노 초음파센서 수업 자료
초음파 센서 ppt 자료입니다. 1. 초음파란 무엇인가요?초음파는 인간의 귀로 들을 수 없는 높은 주파수의 소리를 말합니다. 일반적으로 사람은 20Hz에서 20,000Hz 사이의 소리를 들을 수 있는데, 초
swmakerjun.tistory.com
※ 초음파의 활용
![]() |
![]() |
2. 회로구성

주의: HC-SR04의 ECHO는 약 5V 신호를 출력할 수 있지만 ESP32 GPIO는 3.3V 계열이므로, 실제 수업 회로에서는 저항 2개를 이용한 전압 분배로 ECHO 전압을 낮춰 ESP32에 입력하는 것이 안전합니다.
3. 먼저 ECHO 신호의 시간값만 확인하기
처음에는 거리 계산을 하지 않고, 초음파가 돌아오는 데 걸린 **시간(μs)**만 출력합니다.
from machine import Pin, time_pulse_us
import time
trig = Pin(5, Pin.OUT)
echo = Pin(18, Pin.IN)
while True:
# 초음파 발생
trig.value(0)
time.sleep_us(2)
trig.value(1)
time.sleep_us(10)
trig.value(0)
# ECHO 신호가 HIGH인 시간 측정
duration = time_pulse_us(echo, 1)
print(duration)
time.sleep(0.5)
물체를 센서 가까이 또는 멀리 움직여 보면 Shell에 다음처럼 숫자가 나타납니다.

이 숫자는 거리가 아닙니다.
time_pulse_us()는 ECHO 핀이 HIGH 상태로 유지된 시간을 측정하며, 단위는 **마이크로초(μs)**입니다.
즉,
1마이크로초(1 μs)는 1초의 1,000,000분의 1입니다.
4. 시간값을 거리(cm)로 바꿔보자
그런데 우리가 알고 싶은 것은 시간이 아니라 물체까지의 거리입니다.
소리의 속도는 공기 중에서 약 343 m/s입니다.
이를 cm/μs로 바꾸면 약
0.0343 cm/μs
가 됩니다.
따라서 다음과 같이 계산할 수 있습니다.
distance = duration * 0.0343
하지만 여기에는 한 가지 문제가 있습니다.
초음파가 이동한 시간은
센서 ──────→ 물체
센서 ←────── 물체
처럼 가는 시간 + 돌아오는 시간입니다.
우리가 필요한 것은 센서에서 물체까지의 편도 거리이므로 2로 나누어야 합니다.
distance = duration * 0.0343 / 2
5. 시간값을 거리(cm)로 바꿔보자
from machine import Pin, time_pulse_us
import time
trig = Pin(5, Pin.OUT)
echo = Pin(18, Pin.IN)
while True:
# 초음파 발생
trig.value(0)
time.sleep_us(2)
trig.value(1)
time.sleep_us(10)
trig.value(0)
# ECHO 신호 시간 측정
duration = time_pulse_us(echo, 1)
# 시간 → 거리(cm) 변환
distance = duration * 0.0343 / 2
print("ECHO 시간:", duration, "us")
print("거리:", distance, "cm")
time.sleep(0.5)'esp32 보드활용' 카테고리의 다른 글
| ESP32 가변저항 활용 (0) | 2026.09.28 |
|---|---|
| esp32 BLE 온습도센서 웹앱 활용하기. (0) | 2026.09.02 |
| esp32 블루투스 제어 (0) | 2026.09.02 |
| esp32 온습도 센서 활용 (1) | 2026.09.02 |
| esp32 - thonny 활용 펌웨어 설치 및 내장 led 제어 (0) | 2026.09.02 |

