前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C51 单片机开发认识超声波测距传感器

C51 单片机开发认识超声波测距传感器

作者头像
码农UP2U
发布2024-07-04 14:04:47
740
发布2024-07-04 14:04:47
举报
文章被收录于专栏:码农UP2U码农UP2U

闲话:数学功底好的人,对于编程来说是真的好。高精尖的东西都涉及深厚的数学知识,算法的优化也涉及各种数学知识、……编译器对于除法的优化,数学不好都搞不明白,只能记个结论算啦!如果有大把的时间用来学习的程序员,比如还在学校当学生的准程序员,那么花时间研究数学是太值得了。

本篇文章开始介绍关于超声波测距传感器模块,算是又多认识了一个传感器。

0x01:超声波测距传感器介绍

超声波测距传感器是通过振动频率高于 20KHz 的机械波来工作的。它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播的特点,应用广泛。以上这段描述来自于超声波测距传感器产品的介绍。我这里使用的超声波测距是 HC-SR04 模块,这个模块的测距范围在 2cm 到 600cm 之间,精度在 0.1cm + 1%,模块的外形如下图所示。

超声波测距传感器说白了就是用来测量距离的一种模块,通过发送和接收超声波,利用时间差和声音的传播速度,来计算出传感器到障碍物的距离。初中物理中就讲到了通过声音计算距离的例子。动物中的蝙蝠也是靠这种方式来躲避障碍物的。

0x02:传感器的引脚介绍

在超声波测距传感器上有 4 个引脚,分别s是 VCC、TRIG、ECHO 和 GND,其中 VCC 和 GND 每个传感器几乎都有,因为是用来供电的嘛!而 TRIG 和 ECHO 是用来测距的关键。

TRIG 引脚对于 超声波测距传感器 来说是一个输入引脚,单片机向它输入一个 10us 以上的高电平,可以触发该模块进行测距。所谓开始测距就是让它开始向外发送超声波。

ECHO 引脚对于 超声波测距传感器 来说是一个输出引脚,当它接收到回波时,这个引脚会输出一个高电平,这个高电平就表示发送的超声波回来了。

它的工作原理图如下:

在图示中,只需要在 TRIG 引脚输入一个 10us 以上的高电平,系统便可发出 8 个 40KHz 的超声波脉冲,然后检测回波信号。当检测到回波信号后,通过 ECHO 引脚输出给单片机。

根据 ECHO 引脚输出高电平的持续时间可以计算距离值,即距离值为:(高电平时间 * 340m/s)/ 2。

当测量距离超过 HC-SR04 的测量范围时,仍会通过 ECHO 引脚输出高电平信号,高电平的宽度约为 66ms。如下图所示:

测量周期:当接收到 HC-SR04 通过 ECHO 引脚输出的高电平脉冲后,便可进行下一次测量,所以测量周期取决于测量距离,当距离北侧物体很近时,ECHO 返回的脉冲宽度较窄,测量周期就很短;当距离被测物体比较远时,ECHO 返回的脉冲宽度较宽,测量周期也就相应的变长。最坏情况下,被测物体超出超声波模块的测量范围,此时返回的脉冲宽度最长,约为 66ms,所以最坏情况下的测量周期稍大于 66ms 即可。

不过,我们编程时也可以不计算高电平的宽度,而是自己使用定时器来计时,发送信号时来开启定时器,接收到信号时结束定时器,这样也可以得到发波和回波的时间,从而计算距离。

具体代码实现,在下篇文章中进行整理!

我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农UP2U 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01:超声波测距传感器介绍
  • 0x02:传感器的引脚介绍
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档