HC-SR04 초음파 거리 센서를 라즈베리 파이 3에 연결하는 완벽 가이드
하드웨어 요구사항
- 라즈베리 파이 3 (또는 최신 모델)
- HC-SR04 초음파 거리 센서 (1개 이상)
- 저항 쌍: 330 Ω (ECHO용) 및 470 Ω (그라운드 분압용)
- 점퍼 와이어
- 브레드보드
배선도
센서 핀을 파이에 다음과 같이 연결하세요:
- VCC → 핀 2 (5V)
- GND → 핀 6 (그라운드)
- TRIG → 핀 12 (GPIO18)
- ECHO → 330 Ω 저항 → 핀 18 (GPIO24); 470 Ω 저항 → 핀 6 (그라운드)
저항들은 5V 에코 펄스를 파이의 3.3V 로직 레벨로 제한합니다.
센서를 브레드보드에 놓고 점퍼 와이어로 해당 GPIO 핀에 연결하세요. 두 번째 센서를 추가하려면 보드 반대쪽에 배선을 복제하고 VCC, GND를 같은 파워 레일에 연결한 뒤 자유로운 GPIO 핀 두 개를 TRIG, ECHO용으로 선택하세요.
소프트웨어 – 파이썬 예제
선호하는 IDE나 터미널을 열고 ultrasonic_distance.py라는 새 파일을 생성한 뒤 다음 스크립트를 붙여넣으세요. 코드는 단일 센서용으로 작성되었습니다; 섹션을 복제하고 변수명(TRIG2, ECHO2 등)을 바꿔 두 번째 센서를 지원할 수 있습니다.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG1 = 18
ECHO1 = 24
GPIO.setup(TRIG1, GPIO.OUT)
GPIO.output(TRIG1, False)
GPIO.setup(ECHO1, GPIO.IN)
time.sleep(0.1)
GPIO.output(TRIG1, True)
time.sleep(0.00001)
GPIO.output(TRIG1, False)
while GPIO.input(ECHO1) == 0:
pass
pulse_start1 = time.time()
while GPIO.input(ECHO1) == 1:
pass
pulse_end1 = time.time()
pulse_duration1 = pulse_end1 - pulse_start1
distance1 = pulse_duration1 * 17150
distance1 = round(distance1, 2)
print(f'Distance: {distance1} cm')
time.sleep(10)
GPIO.cleanup()
파일을 저장한 뒤 터미널에서 실행하세요:
python3 ultrasonic_distance.py
추가 센서의 경우 브레드보드에 배선을 미러링하고 코드의 TRIG, ECHO 핀 번호를 업데이트한 뒤 두 번째 측정 블록을 추가하세요.
출처: Ultrasonic Sensor (HC-SR04) + Raspberry Pi