HowToJP

Raspberry Piに「HC-SR04」を接続し制御する

### はじめに Raspberry Piは豊富なGPIOピンを搭載しており、さまざまなセンサーやモジュールとの組み合わせが可能です。この記事では、超音波距離センサー「HC-SR04」をRaspberry Piに接続し、制御する方法について解説します。 ### 1. HC-SR04超音波距離センサーの概要 HC

将 有坂

将 有坂

ラズパイやArduinoで電子工作をしてます。

はじめに

Raspberry Piは豊富なGPIOピンを搭載しており、さまざまなセンサーやモジュールとの組み合わせが可能です。この記事では、超音波距離センサー「HC-SR04」をRaspberry Piに接続し、制御する方法について解説します。

1. HC-SR04超音波距離センサーの概要

HC-SR04は、超音波パルスを使用して物体までの距離を測定するセンサーです。送信された超音波パルスが物体に当たり、反射したパルスの時間から距離を計算します。このセンサーは、非常に正確で幅広い応用が可能です。

2. HC-SR04の接続

HC-SR04は通常、4つのピンから構成されています。

  • VCC(赤色): 5Vの電源
  • Trig(緑色): 送信信号を制御するGPIOピン
  • Echo(黄色): 受信信号を読み取るGPIOピン
  • GND(茶色): 接地

これらをRaspberry Piの対応するGPIOピンに接続します。

3. Raspberry Piコードの作成

Raspberry PiでHC-SR04を制御するためのPythonコードを作成します。以下は、基本的な距離測定の例です。

import RPi.GPIO as GPIO
import time

# GPIOピンの設定
TRIG_PIN = 23
ECHO_PIN = 24

GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG_PIN, GPIO.OUT)
GPIO.setup(ECHO_PIN, GPIO.IN)

def get_distance():
    # トリガーピンに10マイクロ秒のパルスを送信
    GPIO.output(TRIG_PIN, True)
    time.sleep(0.00001)
    GPIO.output(TRIG_PIN, False)

    start_time = time.time()
    stop_time = time.time()

    # エコーピンがHighになるまでの時間を計測
    while GPIO.input(ECHO_PIN) == 0:
        start_time = time.time()

    while GPIO.input(ECHO_PIN) == 1:
        stop_time = time.time()

    # 距離を計算(音速:34300 cm/s)
    elapsed_time = stop_time - start_time
    distance = (elapsed_time * 34300) / 2

    return distance

try:
    while True:
        dist = get_distance()
        print(f"Distance: {dist:.2f} cm")
        time.sleep(1)

except KeyboardInterrupt:
    GPIO.cleanup()

4. コードの実行と確認

Raspberry Piにコードを保存し、実行します。ターミナルに表示される距離は、HC-SR04が検知した物体までの距離です。物体を近づけたり遠ざけたりして、正確な測定が行われることを確認しましょう。

これで、Raspberry PiにHC-SR04を接続し、簡単な距離測定を行うための基本的な手順が完了しました。これをベースにして、様々なプロジェクトを構築することができます。

将 有坂

電子部品専門家 / ラズベリーパイのプロ / 数多くのセンサーやモジュールの導入実績

ラズベリーパイやArduinoの電子工作に関わるソフトウェアエンジニア。これまで100種類以上のセンサーやモジュールの導入を行い、多くの人々に電子工作の楽しさを伝えることを使命としています。