記事一覧へ戻る
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. 1

    HC-SR04 VCCRaspberry Pi 5V(物理ピン2または4)

    HC-SR04は5Vで動作させます。

  2. 2

    HC-SR04 GNDRaspberry Pi GND(物理ピン6など)

    電源と信号の基準を共通にします。

  3. 3

    HC-SR04 TRIGRaspberry Pi GPIO23(物理ピン16)

    距離測定を開始する出力ピンです。

  4. 4

    HC-SR04 ECHO1kΩと2kΩの分圧回路を通してGPIO24(物理ピン18)

    ECHOは5V出力のため、GPIOへ直結しません。

用意するもの

  • Raspberry Pi 4 / 5 などGPIOを使える本体
  • HC-SR04超音波距離センサー
  • 1kΩ抵抗 1本
  • 2kΩ抵抗 1本
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
HC-SR04 VCCRaspberry Pi 5V(物理ピン2または4)HC-SR04は5Vで動作させます。
HC-SR04 GNDRaspberry Pi GND(物理ピン6など)電源と信号の基準を共通にします。
HC-SR04 TRIGRaspberry Pi GPIO23(物理ピン16)距離測定を開始する出力ピンです。
HC-SR04 ECHO1kΩと2kΩの分圧回路を通してGPIO24(物理ピン18)ECHOは5V出力のため、GPIOへ直結しません。

手順

  1. 1Raspberry Piの電源を切った状態でHC-SR04のVCCとGNDを配線します。
  2. 2TRIGをGPIO23へ接続します。
  3. 3ECHOから1kΩ抵抗を通し、GPIO24と2kΩ抵抗の分岐点へ接続します。
  4. 42kΩ抵抗の反対側をGNDへ接続し、ECHOが約3.3Vに下がるようにします。
  5. 5Pythonコードを実行し、センサー前に手をかざして距離が変わるか確認します。

GPIO23/24でHC-SR04の距離を読むPythonコード

python
import 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やブザーを動かす回路に進むと、センサー入力から出力制御までつなげて学べます。

デモで配線を確認する