本次采用的是 HC-sr04 超声波测距模块
我测试的结果是,3cm以内,基本就测试部出来,但是这个感应器说是 2cm以内测试不出来,现在没找到原因,另外,大家可以找找高级一些的超声波模块,我发现过一个带温度补偿的,这样准备度会更好一些。
这个针脚,比较重要的是
trig(控制端)、 echo(接收端)
原理是控制端 给一个高电压,持续 0.01秒,然后读取接收端,计算接收的时间,然后按照声速来计算距离。
这个声速的距离一般按照 340米每秒来计算,这个是一个标准值,这个感应器,没有温度补偿,也就是里面会有误差,这个误差,要根据大家的实际情况来区分了。
import RPi.GPIO as GPIO
import time
SEND_PIN = 37
ECHO_PIN = 38
GPIO.setmode(GPIO.BOARD)
GPIO.setup(SEND_PIN,GPIO.OUT)
GPIO.setup(ECHO_PIN,GPIO.IN)
GPIO.output(SEND_PIN, GPIO.LOW)
time.sleep(1)
try:
GPIO.output(SEND_PIN, GPIO.HIGH)
time.sleep(0.001)
GPIO.output(SEND_PIN, GPIO.LOW)
#接收返回电波
while GPIO.input(ECHO_PIN)==False:
pass
#这里记录时间,也就是echo pin 有数据来了<span style="white-space:pre"> </span><pre name="code" class="python"><span style="white-space:pre"> </span>t1=time.time()
while GPIO.input(ECHO_PIN): pass t2=time.time() t3 = t2-t1 print(t3) dis = t3*34000/2 print(dis)finally: GPIO.cleanup()
我测试的结果是,3cm以内,基本就测试部出来,但是这个感应器说是 2cm以内测试不出来,现在没找到原因,另外,大家可以找找高级一些的超声波模块,我发现过一个带温度补偿的,这样准备度会更好一些。
参考过 http://www.shumeipai.net/thread-20219-1-1.html?_dsign=f5542c7d