HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
ハードウェア要件
- Raspberry Pi 3(またはそれ以降)
- HC-SR04超音波距離センサー(複数可)
- 抵抗ペア:330Ω(ECHO用)と470Ω(グランド分圧用)
- ジャンパーワイヤ
- ブレッドボード
配線図
センサーピンをPiに以下のように接続:
- VCC → ピン2(5V)
- GND → ピン6(グランド)
- TRIG → ピン12(GPIO18)
- ECHO → 330Ω抵抗 → ピン18(GPIO24);470Ω抵抗 → ピン6(グランド)
抵抗により5VのエコーパルスをPiの3.3Vロジックレベルに制限します。
センサーをブレッドボードに配置し、ジャンパーワイヤで対応するGPIOピンに接続。2つ目のセンサーを追加する場合、ボード反対側に同様に配線し、VCCとGNDを同じ電源レールに、TRIGとECHO用に任意の空きGPIOピンを2つ選択。
ソフトウェア – Python例
お好みのIDEまたはターミナルを開き、ultrasonic_distance.pyという新規ファイルを作成し、以下のスクリプトを貼り付け。コードは単一センサー用;2つ目のセンサー対応にはセクションを複製し、変数名(TRIG2、ECHO2など)を変更。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG1 = 18
ECHO1 = 24
GPIO.setup(TRIG1, GPIO.OUT)
GPIO.output(TRIG1, False)
GPIO.setup(ECHO1, GPIO.IN)
time.sleep(0.1)
GPIO.output(TRIG1, True)
time.sleep(0.00001)
GPIO.output(TRIG1, False)
while GPIO.input(ECHO1) == 0:
pass
pulse_start1 = time.time()
while GPIO.input(ECHO1) == 1:
pass
pulse_end1 = time.time()
pulse_duration1 = pulse_end1 - pulse_start1
distance1 = pulse_duration1 * 17150
distance1 = round(distance1, 2)
print(f'Distance: {distance1} cm')
time.sleep(10)
GPIO.cleanup()
ファイル保存後、ターミナルから実行:
python3 ultrasonic_distance.py
追加センサーの場合、ブレッドボード上で配線をミラーリングし、コード内のTRIG/ECHOピン番号を更新、2つ目の測定ブロックを追加。
出典: Ultrasonic Sensor (HC-SR04) + Raspberry Pi
製造プロセス
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- DS1820ワンワイヤー温度センサーをGPIOでRaspberry Piに接続する方法
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Raspberry Piでライントラッキングセンサー – シンプルなKY-033ドア/ライン検出器
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry Piでリニアホールセンサーを読み取り: JavaガイドとADC0832の知見
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築
- Raspberry PiでDS18B20温度センサーをテスト