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)