社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 1297|回复: 12

[讨论] HC-SR04中STC11单片机实现程序

[复制链接]

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-2-9 10:41:20 | 显示全部楼层 |阅读模式
各位朋友,大家好~
        最近用了一款HC-SR04超声波测距模块,相信很多朋友都玩过,现在想知道HC-SR04中的stc程序是如何实现的?
下面是原理图: HC-SR04.jpg
此帖出自51单片机论坛


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-9 10:41:33 | 显示全部楼层
HC-SR04这个模块是2线控制的(不包含电源线),而我想把他改成1线(SIG)控制,这个其实makeblock已经实现了,可是他们的模块小贵。
在网上找了很久的资料,大多数都是讲怎么使用HC-SR04这个超声波测距模块的,而我想找的资料是如何制作HC-SR04这个模块,关键是模块中STC单片机的程序。


回复

使用道具 举报

2832

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2017-2-9 12:02:54 | 显示全部楼层
竟然知道makeblock,一个声波发射,一个声波接收,类似红外管,


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-9 13:33:08 | 显示全部楼层
suoma 发表于 2017-2-9 12:02
竟然知道makeblock,一个声波发射,一个声波接收,类似红外管,

嘿嘿,他们的产品挺好的


回复

使用道具 举报

59

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-2-9 14:39:54 | 显示全部楼层
我之前也尝试找过这个模块上单片机的程序,不过没找到,现在想想内容估计就是检测TRIG端输入脉冲的上升沿或者高电平之后控制超声波发送端发出超声波测距,同时echo输出高电平,当接收到返回的超声波信号后,echo再变回低电平


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-9 15:05:27 | 显示全部楼层
sysjtlwx 发表于 2017-2-9 14:39
我之前也尝试找过这个模块上单片机的程序,不过没找到,现在想想内容估计就是检测TRIG端输入脉冲的上升沿或 ...

M.jpg
时序图.png


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-9 15:23:03 | 显示全部楼层
sysjtlwx 发表于 2017-2-9 14:39
我之前也尝试找过这个模块上单片机的程序,不过没找到,现在想想内容估计就是检测TRIG端输入脉冲的上升沿或 ...

基本上就是这样的吧,你可以看看我发的M公司做的超声波模块,他们只用了3线,SIG同时做TRIG和SIG,这里STC做的工作就是检测SIG线的触发信号(大于10us的高电平),检测到该信号后,SIG拉低并T_PWR引脚拉低约300us,同时T1、T2产生8个40KHz的脉冲,然后拉高T_PWR并拉高SIG,当检测到回波信号时拉低SIG,完成一次检测。
现在我有几个疑惑的地方:
1、发出8个40KHz信号,为什么是8个? 而且在检测回波信号时是一检测到就说明测量完成了么? 我看了一个P35上面也是一串脉冲形式的信号。
2、我模电不怎么样,P34是什么作用(测量一下,其上约2V电压),像是PWM调压?
3、T1、T2都是8个40kHz的脉冲么?
期待您回复~~


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-23 15:59:36 | 显示全部楼层
都没人看


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-23 15:59:58 | 显示全部楼层
已决解

点评

说说怎么解决的吧 嘿嘿  详情 回复 发表于 2017-2-23 17:29


回复

使用道具 举报

2万

TA的帖子

61

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-2-23 17:29:37 | 显示全部楼层

说说怎么解决的吧 嘿嘿

点评

说一下STC每个管脚的作用吧~ 1、P30(SIG): 负责监测触发信号; 配置其为高阻输入,可以轮询其高低电平并使用Timer0(2),也可以轮询高电平后使用INT4低电平,完成一个触发脉冲的检测(10us以上),一旦检测  详情 回复 发表于 2017-2-24 15:10
2017,加油!继续为中国电子行业做出小小的贡献吧!
QQ 1206973913


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-24 14:52:15 | 显示全部楼层
soso 发表于 2017-2-23 17:29
说说怎么解决的吧 嘿嘿

说一下STC每个管脚的作用吧~
1、P30(SIG): 负责监测触发信号;
可以轮询其高低电平并使用Timer0(2),也可以轮询高电平后使用INT4低电平,完成一个)


回复

使用道具 举报

59

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-24 15:10:54 | 显示全部楼层
soso 发表于 2017-2-23 17:29
说说怎么解决的吧 嘿嘿

说一下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来检测下降沿,并检测回波频率,判断是否为发射出去的40KHz信号,检测完成后将SIG拉高,完成一次测量。


回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2017-11-5 17:20:57 | 显示全部楼层
楼主你的超声波能测多远?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-11-19 14:32 , Processed in 0.476194 second(s), 17 queries , Redis On.

快速回复 返回顶部 返回列表