| HC-SR04原理图 | 模块全套资料 | 51程序及毕业设计 |
如上述视频超声波HC-SR04模块有一个超声发生器(T端)和一个超声收集器(R端)以及VCC和GND正负供电。其模块的价格低廉,精准度高,使用也很简单。

超声波HC-SR04模块,其Trig引脚是触发引脚,向其引脚发10us以上的高电平即可触发它发送超声波指令,HC-SR04模块会自动发送8个40kHz的方波,当发送完成后,Echo引脚会输出高电平,当收到反射回来的声波后,Echo会重新变回低电平。因此,在使用HC-SR04模块时,我们只需要通过向Trig引脚加高电平触发测量指令,之后监听Echo引脚高电平的持续时间,即可完成测距工作。

1.硬件接线:
| 超声波HC-SR04模块 | 树莓派开发板 |
| VCC | 5V |
| GND | GND |
| Trig | GPIO17 (BCM) |
| Echo | GPIO18 (BCM) |

2.打开树莓派Python软件,直接复制粘贴下列代码程序,点运行查看结果:
#Production raspi.cc
#Thank you for sharing
#coding:utf-8
import RPi.GPIO as GPIO
import time
# 触发声波引脚
trig = 11
# 监听信号
echo = 12
def getDistance():
# 输出高电平
GPIO.output(trig, GPIO.HIGH)
# 持续15us高电平 触发超声波
time.sleep(0.000015)
# 停止加高电平
GPIO.output(trig, GPIO.LOW)
# 开始检测信号引脚的电平为高电平时开始计时
while GPIO.input(echo) == 0:
pass
t1 = time.time()
# 信号引脚的电平为低电平时计算时间间隔
while GPIO.input(echo) == 1:
pass
t2 = time.time()
# 计算距离
s = (t2 - t1)*340/2
return s
GPIO.setmode(GPIO.BOARD)
GPIO.setup(trig, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(echo, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
while True:
s = getDistance()
print("当前距离前方障碍物:%fm"%(s))
time.sleep(1)