树莓派资料
显示屏资料
系统下载
树莓派Pico
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金币:
经验值:

树莓派使用超声波传感器模块HC-SR04 测距例程

  9924 
 0
 1
mo   mo 




一:工作原理

HC-SR04原理图模块全套资料51程序及毕业设计


如上述视频超声波HC-SR04模块有一个超声发生器(T端)和一个超声收集器(R端)以及VCC和GND正负供电。其模块的价格低廉,精准度高,使用也很简单。

Image

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


Image



二:树莓派Python例程

1.硬件接线:

超声波HC-SR04模块
树莓派开发板
VCC5V
GNDGND
TrigGPIO17 (BCM)
EchoGPIO18 (BCM)


Image


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)


Image



标签:
作者签名:    楼主  2024-06-18 15:40:34
回复列表
Powered by RASPI _VERSION
© 2017-2024 树莓派极客版权
您的IP: 3.143.204.241 , 2024-07-27 12:01:01
Powered by RASPI _VERSION
© 2017-2024 树莓派极客版权