×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
・超音波距離センサーHC-SR04
配線を
VCCーー5V
Trigーー11(GPIO0)
Echoーー500オームーー1KオームーーGND
|ーーーーーーー 13(GPIO2) 5Vを1:2で分けて 3.3Vに
GNDーーGND
・仕様
(仕様は販売元であるスイッチサイエンスから拝借)
・pythonで記載すると
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO
import sys
TRIG = 11
ECHO = 13
def reading():
GPIO.setwarnings(False) # GPIO.cleanup()をせずに終わっている時のエラーを未表示
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.output(TRIG, GPIO.LOW)
time.sleep(0.3)
GPIO.output(TRIG, True)
time.sleep(0.00001) #トリガ端子を10us以上High
GPIO.output(TRIG, False)
signaloff =time.time()
while GPIO.input(ECHO) == 0: #送るときの時間
signaloff = time.time()
signalon= time.time()
while GPIO.input(ECHO) == 1: #受信すると、出力端子がHigh
signalon = time.time()
timepassed = signalon - signaloff
distance = timepassed * 340 / 2 *100
GPIO.cleanup()
return distance
if __name__ == '__main__':
try:
while True:
data = reading()
if data >= 480.0:
pass
else:
print (data)
time.sleep(3)
except KeyboardInterrupt:
sys.exit(0)
・機器不良?
初回に while GPIO.input(ECHO) == 0が聞いていない時があるようである
・シャープの測距モジュールGP2Yで測定
付属のケーブルの色とピン配置が違っているので注意
1信号 2GND 3Vcc(5v)に接続
あとはADコンバータの信号線に接続するだけでOK
配線を
VCCーー5V
Trigーー11(GPIO0)
Echoーー500オームーー1KオームーーGND
|ーーーーーーー 13(GPIO2) 5Vを1:2で分けて 3.3Vに
GNDーーGND
・仕様
(仕様は販売元であるスイッチサイエンスから拝借)
- トリガ端子を10us以上Highにしてください。
- このセンサモジュールが40kHzのパルスを8回送信して受信します。
- 受信すると、出力端子がHighになります。
- 出力端子がHighになっている時間がパルスを送信してから受信するまでの時間です。
- 出力端子がHighになっている時間の半分を音速で割った数値が距離です。
・pythonで記載すると
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import RPi.GPIO as GPIO
import sys
TRIG = 11
ECHO = 13
def reading():
GPIO.setwarnings(False) # GPIO.cleanup()をせずに終わっている時のエラーを未表示
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.output(TRIG, GPIO.LOW)
time.sleep(0.3)
GPIO.output(TRIG, True)
time.sleep(0.00001) #トリガ端子を10us以上High
GPIO.output(TRIG, False)
signaloff =time.time()
while GPIO.input(ECHO) == 0: #送るときの時間
signaloff = time.time()
signalon= time.time()
while GPIO.input(ECHO) == 1: #受信すると、出力端子がHigh
signalon = time.time()
timepassed = signalon - signaloff
distance = timepassed * 340 / 2 *100
GPIO.cleanup()
return distance
if __name__ == '__main__':
try:
while True:
data = reading()
if data >= 480.0:
pass
else:
print (data)
time.sleep(3)
except KeyboardInterrupt:
sys.exit(0)
・機器不良?
初回に while GPIO.input(ECHO) == 0が聞いていない時があるようである
・シャープの測距モジュールGP2Yで測定
付属のケーブルの色とピン配置が違っているので注意
1信号 2GND 3Vcc(5v)に接続
あとはADコンバータの信号線に接続するだけでOK
PR