HC-SR04超音波センサーをRaspberry Piに接続する実践ガイド
これまでのプロジェクトでは温度センサー、PIRモーションモジュール、基本的なGPIOインターフェースを扱いました。HC-SR04超音波距離センサーは人気の選択肢ですが、その5V出力を3.3Vに降圧してRaspberry PiのGPIOピンを保護する必要があります。このチュートリアルでは、物理原理、電子回路、Pythonコードを通じて安全な接続と使用方法を解説します。
必要なもの
- HC-SR04超音波センサー
- 1kΩ抵抗
- 2kΩ抵抗
- ジャンパーワイヤー(オス-メス)
- オプション:ブレッドボード
超音波センサーの仕組み
音は圧力波として伝播し、その周波数が音の高さを決めます。超音波センサーは人間の耳に聞こえない高周波音を発信し、近くの物体で反射したエコーを受信します。パルスの往復時間を計測し、音速(空気中で約343m/s)を用いて距離を算出します。
HC-SR04のピンアウトと機能
- Vcc – 5V電源
- GND – グランド
- TRIG – トリガー入力。10μsのパルスで測定開始
- ECHO – 5V出力パルス。幅がエコーの往復時間に相当
センサーはECHOピンから5Vパルスを出力します。これはエコー検出から次のトリガー準備完了まで続きます。Raspberry PiのGPIOは3.3Vまでしか耐えられないため、電圧を降圧する必要があります。
分圧回路
シンプルな分圧回路は2つの抵抗を直列に接続します。センサーの5V ECHOを入力とし、1kΩ抵抗(R1)と2kΩ抵抗(R2)を使えば、接点で3.3Vが得られます:
Vout = Vin × (R2 / (R1 + R2))
1kΩ抵抗をHC-SR04のECHOピンとPiのGPIOの間に、2kΩ抵抗をその接点からグランドに接続します。これによりPiを保護しつつ正確な測定が可能です。
ハードウェア配線(ブレッドボード方式)
以下のRaspberry Piピンを使用:
Pin 2– 5VPin 6– GNDPin 16– GPIO 23(TRIG)Pin 18– GPIO 24(ECHO)
- HC-SR04ピンをブレッドボードに接続:赤(Vcc)、青(TRIG)、黄(ECHO)、黒(GND)
- ブレッドボードのプラスレールをPiの5V、マイナスレールをPiのGNDに接続
- TRIGをGPIO 23に配線。直接でもレール経由でも可
- ECHOラインに1kΩ抵抗をHC-SR04の
ECHOピンから配置、そこから2kΩ抵抗をグランドに。GPIO 24を2抵抗の接点に接続 - 全接続を確認してからPiに電源投入
距離を読み取るPythonコード
以下のスクリプトはセンサーをトリガーし、エコーパルス幅から距離(cm)を計算します。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.output(TRIG, False)
time.sleep(2) # センサー安定待ち
while True:
# トリガー:10μsハイパルス
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# エコーがハイになるのを待機
pulse_start = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# エコーがローになるのを待機
pulse_end = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150 # 音速(cm/s)
print("Distance: %0.2f cm" % distance)
time.sleep(1)
GPIO.cleanup()
このスクリプトを実行するとリアルタイムで距離が表示されます。アプリケーションに合わせて遅延やトリガー間隔を調整してください。
安全上の注意
- HC-SR04の
ECHOピンを分圧なしでPi GPIOに直接接続しないでください - Piとセンサーは必ず同じ5Vレールから給電し、電圧ミスマッチを防いでください
- センサーのデータシートで最大動作温度と推奨負荷を確認してください
これらの手順に従えば、Raspberry Piに安全で、ロボティクスや自動化プロジェクトに幅広く使える正確な超音波距離測定システムが構築できます。
製造プロセス
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry PiとDS18B20によるプロフェッショナルな温度監視
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- Raspberry Pi向けコンパクトDHT温湿度ブレークアウト – ATtiny85 & DHT22/DHT11
- センサーデータをRaspberry Piに統合:実践ガイド
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry Piでリニアホールセンサーを読み取り: JavaガイドとADC0832の知見
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築