原创 玩转儿传感器之超声波模块HC-SRO4的使用

2013-12-6 15:14 11108 16 18 分类: MCU/ 嵌入式

超声波模块的使用说明

拿到超声波模块(模块型号是HC-SRO4)看见了,该模块有4个接口,分别是vcc,Trig,Echo,GND。如图1所示。

 

     

                                   img_20131201_202945.jpg                                                                                                   1

  当时以为Trig,Echo引脚要用到计数器,或者定时器2的捕获模式呢?后来发现自己错误了。

   下面讲解一下,超声波模块是怎么用的。Trig引脚相当于该模块的开关,给Trig引脚一个至少持续10us的高电平脉冲信号,该模块就可以开始工作了。这时,该模块会自动从这两个“大喇叭”发送8个40KHZ的方波,然后自动检测是否有信号返回。如果有信号返回的话,那么该模块的Echo口就会输出一个高电平,高电平持续的时间呢,就是超声波从发送到接收的时间啦!我们要做要做的就是开启超声波模块,然后再通过Echo知道超声波从发送到接收的时间就可以啦!怎么样简单吧!

   再啰嗦几句,讲解一下,编程的细节问题。

1.       怎么能准确读到Echo高电平的呢??

没错用定时器,可以这样,当开始检测高电平时,就开启定时器,进行计数,当Echo变为低电平时,然后读取TH0TL0中的值。但是,要是超声波回波脉宽比较长,也就是说如果高电平的时间持续的时间长,造成了定时器溢出怎么办?这时可以开启定时器中断,进行延时等待,期间设置一个变量,用来计算等待的时间,即,高电平持续的时间就是从TH0TL0读取的数,加上定时器等待的时间,再减去以前装的初值。这种计数也不是无限长的,超声波回声脉宽最多18ms,也就是说等待18ms后就不用再等待了,这时候读出来的时间也不准了。后面的工作我想你应该知道怎么做了吧。

2.       怎么把读到数计算成距离显示呢?

   30摄氏度时的声速,声速V= 331.5 + 0.6*温度;

   23摄氏度时的声速,声速V= 331.5 + 0.6*温度;

可以显示成厘米,嗯,就这样!

吐槽环节:

实际的测距效果并没有想象中的那么理想,我会乱说(⊙_⊙)?。

文章评论2条评论)

登录后参与讨论

用户377235 2015-8-6 18:37

菜鸟,看不懂啊……

用户377235 2015-7-28 15:50

能不能说详细点啊,是只菜鸟·
相关推荐阅读
用户1720481 2014-04-08 10:48
小明老湿教你如何使KEIL中同时具有51和ARM的编译功能
大家刚开始接触ARM时,肯定是先建立开发环境。如果你用keil 时会发现,你在此基础上你如果装了51版本的编译器的话,会发现无法装ARM版本的编译器,这就会很尴尬。用了51就无法用ARM,用ARM...
我要评论
2
16
关闭 站长推荐上一条 /2 下一条