使用方法:
新建py文件,将下面的驱动代码复制到文件中保存,命名drive_HC_SR04.py
按照接线图连接树莓派与超声波模块 HC-SR04
在另一个文件导入本文件(放在同一文件夹) import drive_HC_SR04
使用函数 drive_HC_SR04.hc_sr04(trig引脚号,echo引脚号) 进行测距 函数返回值为距离 单位为厘米
trig引脚号 与 echo引脚号 换成你连接树莓派的引脚号(BCM引腳編號模式)
# 徐奥雯编写 XUAOWEN-ASSETS E-MAIL:CHINA@XUAOWEN.CN WECHAT:US-00000
# 超声波 HC-SR04模块
# 使用方法:在另一个文件导入本文件(放在同一文件夹) import drive_HC_SR04
# 使用函数 drive_HC_SR04.hc_sr04(trig引脚号,echo引脚号) 进行测距 函数返回值为距离 单位为厘米
# trig引脚号 与 echo引脚号 换成你连接树莓派的引脚号(BCM引腳編號模式)
# 供电 VCC 接5V
# 觸發 TRIG 使用GPIO口 发出
# 回波 ECHO 使用GPIO口 接收 高电平持续的时间就是超声波从发射到返回的时间
# 接地 GND 接GND
import RPi.GPIO as GPIO
import time
def hc_sr04(TRIG_pin,ECHO_pin):
GPIO.setmode(GPIO.BCM) # 設置使用BCM引腳編號模式
GPIO.setup(TRIG_pin,GPIO.OUT) # 設置輸出引腳
GPIO.setup(ECHO_pin,GPIO.IN) # 設置輸入引腳
time.sleep(0.1)
GPIO.output(TRIG_pin,True) # True False或者使用 GPIO.HIGH GPIO.LOW
time.sleep(0.00001) # 發送脉冲10微秒
GPIO.output(TRIG_pin,False)
# 高电平持续的时间就是超声波从发射到返回的时间
while GPIO.input(ECHO_pin) == 0: # 检测回波电平是否一直为0
start_time = time.time() # 得到回波脉冲开始时间
while GPIO.input(ECHO_pin) == 1: # 检测回波电平是否一直为1
end_time = time.time() # 得到回波脉冲结束时间
time01 = end_time - start_time
# print('往返耗时为 '+ str(time01) + '秒')
cm = (34320*time01)/2 # 声速乘以时间除以2
# print('距离为 '+ str(cm) + '厘米')
return cm
# print(hc_sr04(14,15))