HC-SR04 초음파 센서를 라즈베리 파이에 연결하기 – 실전 가이드
이전 프로젝트에서 온도 센서, PIR 모션 모듈, 기본 GPIO 인터페이싱을 다뤘습니다. HC-SR04 초음파 거리 센서는 거리 측정에 인기 있는 선택이지만, 5V 출력을 3.3V로 낮춰 라즈베리 파이 GPIO 핀을 보호해야 합니다. 이 튜토리얼은 센서를 안전하게 연결하고 사용하기 위한 물리학, 전자회로, 파이썬 코드를 안내합니다.
준비물
- HC-SR04 초음파 센서
- 1kΩ 저항
- 2kΩ 저항
- 점퍼 와이어(수-암)
- 선택 사항: 브레드보드
초음파 센서 작동 원리
소리는 압력 파동으로 전파되며, 음파의 주파수가 음높이를 결정합니다. 초음파 센서는 사람이 들을 수 없는 고주파 음파를 방출하고, 주변 물체에 반사된 에코를 포착합니다. 펄스의 왕복 시간을 측정해 음속(공기 중 약 343m/s)을 이용해 거리를 계산합니다.
HC-SR04 핀아웃 및 기능
- Vcc – 5V 전원 공급
- GND – 접지
- TRIG – 트리거 입력; 10µs 펄스로 측정 시작
- ECHO – 5V 출력 펄스, 폭이 에코 이동 시간과 동일
센서는 ECHO 핀에서 5V 펄스를 출력하며, 이는 에코가 감지된 순간부터 다음 트리거 준비까지 지속됩니다. 라즈베리 파이 GPIO 핀은 3.3V만 견디므로 이 전압을 낮춰야 합니다.
전압 분배 회로
단순한 전압 분배기는 두 개의 직렬 저항을 사용합니다. 센서의 5V ECHO를 입력으로, 1kΩ 저항(R1)과 2kΩ 저항(R2)을 직렬로 연결하면 접합점에서 3.3V 출력을 얻습니다:
Vout = Vin × (R2 / (R1 + R2))
1kΩ 저항을 HC-SR04의 ECHO 핀과 라즈베리 파이 GPIO 사이에 연결하고, 2kΩ 저항을 그 접합점에서 접지로 연결합니다. 이렇게 하면 파이를 보호하면서 정확한 측정이 가능합니다.
하드웨어 배선 (브레드보드 방식)
다음 라즈베리 파이 핀을 사용합니다:
Pin 2 – 5V
Pin 6 – GND
Pin 16 – GPIO 23 (TRIG)
Pin 18 – GPIO 24 (ECHO)
- HC-SR04 핀을 브레드보드에 연결: 빨강(Vcc), 파랑(TRIG), 노랑(ECHO), 검정(GND).
- 브레드보드 양극 레일을 파이 5V에, 음극 레일을 파이 GND에 연결.
- TRIG를 GPIO 23에 연결. 직접 연결하거나 브레드보드 레일을 통해 연결.
- ECHO 라인에 1kΩ 저항을 HC-SR04
ECHO 핀부터 레일에 배치, 2kΩ 저항을 접지에 연결. GPIO 24를 두 저항 사이 접합점에 연결.
- 파이 전원 투입 전 모든 연결을 다시 확인.
거리 측정을 위한 파이썬 코드
다음 스크립트는 센서를 트리거하고 에코 펄스 폭을 해석해 센티미터 단위 거리를 계산하는 방법을 보여줍니다.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.output(TRIG, False)
time.sleep(2) # 센서 안정화 대기
while True:
# 센서 트리거: 10µs 하이 펄스
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# 에코가 하이가 될 때까지 대기
pulse_start = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# 에코가 로우가 될 때까지 대기
pulse_end = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150 # 음속 cm/s 단위
print("Distance: %0.2f cm" % distance)
time.sleep(1)
GPIO.cleanup()
이 스크립트를 실행하면 실시간 거리 측정값이 표시됩니다. 애플리케이션에 맞춰 지연 시간이나 트리거 간격을 조정하세요.
안전 팁
- 전압 분배기 없이 HC-SR04의
ECHO 핀을 파이 GPIO에 직접 연결하지 마세요.
- 항상 파이와 센서를 동일한 5V 레일로 전원 공급해 전압 불일치를 방지하세요.
- 센서 데이터시트의 최대 동작 온도와 권장 부하를 확인하세요.
이 단계를 따라하면 라즈베리 파이에 안전하면서 다양한 로봇틱스 및 자동화 프로젝트에 정확한 초음파 거리 측정 시스템을 구축할 수 있습니다.