打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【新提醒】自编超声波测距模块(HC
 
       相信很多朋友都用过一款HC-SR04超声波测距模块,这个模块售价很平民,某宝上仅4RMB左右
,能测3-400cm,真的很不错的。
      前一段时间,偶尔看到一款超声波测距模块(m**eblock的),控制方式与HC-SR04有所不同,硬件上是大同小异的,但售价非常有逼格

      本菜出于好奇,在网上找了很久的资料,大多数都是讲怎么使用HC-SR04模块的,而我想找的资料是如何制作HC-SR04这个模块,关键是模块中STC单片机的程序。

1、原理部分
      HC-SR04这个模块是2线制的(不包含电源线),
Echo与Trig,Trig负责接收10us以上的触发信号,Echo则是输出距离信号;下面是时序图:

      而m**eblock的超声波模块采用1线制(不包含电源线),,Echo与Trig和二为一(SIG),在一定程度上节省了IO资源,SIG在收到触发信号后采集并输出距离信号,其时序图与HC-SR04类似,使用起来略有不同,需要注意IO模式的转换,而如果使用m**eblock官方提供的库(Arduino)就非常简单了;
             关于HC-SR04系列超声波传感器的介绍网上有很多的帖子,本菜不赘述了。


2、硬件部分:
      下面就先看一个原理图吧,由于本菜的硬件不行,只是简单的分析一下,有说错的地方,欢迎大神们吐槽!


左边是m**eblock的原理图,右边是HC-SR04的原理图,可以看到,硬件部分的实现方式是大同小异的,下面以m**eblock为例。
      这里主要分成三个部分:
      1、主控IC部分:完成触发信号的检测、产生8个40KHz脉冲信号、检测回波信号、输出距离信号等;
      2、发射部分:由主控IC产生8个40KHz脉冲信号后,经过MAX232放大后驱动超声波发射端;
      3、接收部分:将微弱的回波信号放大,送到主控IC的IO端检测回波。

3、软件部分
下面是程序思路,围绕STC展开,说一下STC每个管脚的作用~
1、P30(SIG): 负责监测触发信号;
   配置其为高阻输入,可以轮询其高低电平并使用Timer0(2),也可以轮询高电平后使用INT4低电平,完成一个触发脉冲的检测(10us以上),一旦检测到触发信号,此管脚配置为推挽输出,并拉低,当8个40KHz信号发送完成后将其拉高,等到回波到来。

2、P33(T2)、P32(T1):8个40KHz脉冲信号;
   配置为推挽输出,当SIG检测到触发信号后,其同时发送8个40KHz信号,注意这两个信号存在半个周期的相位差(重要!),发射完成之后将SIG拉高。

3、P31(T_PWR):MAX232供、断电;
   配置其为推挽输出;通过NPN控制232,低电平有效,只在8个40KHz脉冲信号时给232供电,防止杂波出现,232在这里起到一个驱动放大功率的作用;

4、P34(PWM): 比较电压;
   一开始我以为这是一个PWM信号,后来发现我错了,可以看一下电路图中的放大器A,是作为一个比较器使用的。其实只要在检测回波信号的时候将其拉高就行了。(目前我是这样做的)

5、P35(CHK):回波检测;
    配置为高阻输入;可以利用INT3来检测下降沿并使用Timer2(0)计算周期,并检测回波频率,判断是否为发射出去的40KHz信号,检测完成后将SIG拉高,完成一次测量。

    第一次发表这么长的开源贴子,欢迎大家吐槽(鼓励~~),源代码中几乎每一条代码后都跟有注释,相信大家读起来不会太费时间的。

此帖出自51单片机论坛
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用FPGA实现超声测距(Verilog HDL)
使用8051超声波测距仪
超声波测距与超声测距传感器是这样玩起来的
【转载】基于51单片机的超声波测距仪
HC-SR04超声波测距模块介绍_hcsr04超声波模块
HC
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服