树莓派学习笔记003-超声波距离传感器

7 篇文章 0 订阅
5 篇文章 0 订阅


工作原理和使用方法主要参考了 树莓派实验室转载简书的一篇文章,但是这里面有一些错误

接地端接线问题

接线图

这是传感器使用树莓派的5V电源的方案,亲测可行。

画图软件见水印

测距的实现问题

原理

HC-SR04超声波模块工作原理:
1)给TRIG口至少10us的高电平信号触发测距;
2)之后模块自动发送8个40khz的方波
3)之后ECHO口输出高电平(这也是为什么测量距离有下限而不能无限小)
4)自动检测是否有信号返回
4)有信号返回,ECHO口输出低电平,高电平持续的时间就是超声波从发射到返回的时间。
上时序图: 没有什么是时序图表达不清楚的
在这里插入图片描述
网上关于这个的博文很多,大都是复制粘贴的,一个错个个错,很少有能把这个HC-SR04工作过程说正确的。

所以本程序的核心是:

1.初始化:将trig和echo端口都置低

2.给 trig 发送至少10 us的高电平脉冲(模块自动向外发送8个40K的方波)

3.等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器计下此时的时刻

4.等待捕捉echo的下降沿,当捕捉到下降沿时,记下此时时刻

5.两个时刻相减就是echo高电平持续时间

主要代码

第三、四步的的代码实现

# 记录发送超声波的时刻1    
while GPIO.input(GPIO_ECHO) == 0:
    pass #这个pass在C++中写成 ; 也是一样的
start_time = time.time()      
# 记录接收到返回超声波的时刻2    
while GPIO.input(GPIO_ECHO) == 1:
    pass        
stop_time = time.time()

亲测可行,误差可保持在在一厘米之内

传感器供电问题

这个方案中使用树莓派的5V电源供电,但是我在自己尝试外部电源给传感器供电时,怎么也不能让他正常工作。这个地方需要学习。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值