Raspberry Pi/初級/8分で読める/
Raspberry PiでHC-SR04超音波距離センサーを使う配線とPythonコード
HC-SR04は距離測定でよく使われる5Vモジュールです。Raspberry PiのGPIOは3.3V入力なので、ECHOピンを分圧してからGPIOへ入れることが重要です。
WIRING ORDER
配線順序のスクリーンショット
Tsunagu IoT Learn / Raspberry Pi
DEVICE
Raspberry Pi
breadboard
MODULE
HC-SR04
配線する順番
- 1
HC-SR04 VCC → Raspberry Pi 5V(物理ピン2または4)
HC-SR04は5Vで動作させます。
- 2
HC-SR04 GND → Raspberry Pi GND(物理ピン6など)
電源と信号の基準を共通にします。
- 3
HC-SR04 TRIG → Raspberry Pi GPIO23(物理ピン16)
距離測定を開始する出力ピンです。
- 4
HC-SR04 ECHO → 1kΩと2kΩの分圧回路を通してGPIO24(物理ピン18)
ECHOは5V出力のため、GPIOへ直結しません。
用意するもの
- Raspberry Pi 4 / 5 などGPIOを使える本体
- HC-SR04超音波距離センサー
- 1kΩ抵抗 1本
- 2kΩ抵抗 1本
- ブレッドボード
- ジャンパーワイヤー
配線
| 接続元 | 接続先 | 確認点 |
|---|---|---|
| HC-SR04 VCC | Raspberry Pi 5V(物理ピン2または4) | HC-SR04は5Vで動作させます。 |
| HC-SR04 GND | Raspberry Pi GND(物理ピン6など) | 電源と信号の基準を共通にします。 |
| HC-SR04 TRIG | Raspberry Pi GPIO23(物理ピン16) | 距離測定を開始する出力ピンです。 |
| HC-SR04 ECHO | 1kΩと2kΩの分圧回路を通してGPIO24(物理ピン18) | ECHOは5V出力のため、GPIOへ直結しません。 |
手順
- 1Raspberry Piの電源を切った状態でHC-SR04のVCCとGNDを配線します。
- 2TRIGをGPIO23へ接続します。
- 3ECHOから1kΩ抵抗を通し、GPIO24と2kΩ抵抗の分岐点へ接続します。
- 42kΩ抵抗の反対側をGNDへ接続し、ECHOが約3.3Vに下がるようにします。
- 5Pythonコードを実行し、センサー前に手をかざして距離が変わるか確認します。
GPIO23/24でHC-SR04の距離を読むPythonコード
pythonimport time
import RPi.GPIO as GPIO
TRIG_PIN = 23
ECHO_PIN = 24
SOUND_SPEED_CM_PER_SEC = 34300
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG_PIN, GPIO.OUT)
GPIO.setup(ECHO_PIN, GPIO.IN)
try:
while True:
GPIO.output(TRIG_PIN, GPIO.LOW)
time.sleep(0.05)
GPIO.output(TRIG_PIN, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(TRIG_PIN, GPIO.LOW)
while GPIO.input(ECHO_PIN) == GPIO.LOW:
pulse_start = time.time()
while GPIO.input(ECHO_PIN) == GPIO.HIGH:
pulse_end = time.time()
distance = (pulse_end - pulse_start) * SOUND_SPEED_CM_PER_SEC / 2
print(f"距離: {distance:.1f} cm")
time.sleep(0.5)
finally:
GPIO.cleanup()動かないときの確認
- ECHOをGPIO24へ直結していないか
- 1kΩと2kΩの分圧回路がGNDまでつながっているか
- TRIGとECHOを逆にしていないか
- センサー前に近すぎる物を置いていないか
よくあるミス
- 5VのECHO出力をRaspberry Pi GPIOへ直接入れる
- VCCを3.3Vにつないで測定が不安定になる
- GNDを共通にせず信号だけ接続する
次に試すこと
距離が読めたら、一定距離以内に近づいたときにLEDやブザーを動かす回路に進むと、センサー入力から出力制御までつなげて学べます。
デモで配線を確認する