- Published on
Raspberry Piに「HC-SR04」を接続し制御する
1363文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは豊富なGPIOピンを搭載しており、さまざまなセンサーやモジュールとの組み合わせが可能です。この記事では、超音波距離センサー「HC-SR04」をRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
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を接続し、簡単な距離測定を行うための基本的な手順が完了しました。これをベースにして、様々なプロジェクトを構築することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚