文档章节

树莓小车-超声波模块HC-SR04简介以及编程

RagingTyphoon
 RagingTyphoon
发布于 2015/08/19 11:41
字数 568
阅读 205
收藏 1

Product features:

Ultrasonic ranging module HC - SR04 provides 2cm -400cm non-contact measurement function, the ranging accuracy can reach to 3mm. The modules includes ultrasonic transmitters, receiver and control circuit. The basic principle of work:

(1) Using IO trigger for at least 10us high level signal,

(2) The Module automatically sends eight 40 kHz and detect whether there is a pulse signal back.

(3) IF the signal back, through high level , time of high output IO duration is the time from sending ultrasonic to returning. Test distance = (high level time×velocity of sound (340M/S) / 2,


Wire connecting direct as following:

Vcc 5V Supply

Trigger Pulse Input

Echo Pulse Output

0V Ground


Electric Parameter:

Trig 和 Echo 为 TTL电平,所以可以直接接在TTL电平的GPIO口上。

Timing diagram

The Timing diagram is shown below.

You only need to supply a short 10uS pulse to the trigger input to start the ranging,

and then the module will send out an 8 cycle burst of ultrasound at 40 kHz and raise its echo.

The Echo is a distance object that is pulse width and the range in proportion .

You can calculate the range through the time interval between sending trigger signal and receiving echo signal. Formula: uS / 58 = centimeters or uS / 148 =inch; or: the range = high level time * velocity (340M/S) / 2;

we suggest to use over 60ms measurement cycle, in order to prevent trigger signal to the echo signal.

 

5、 操作

初始化时将trigecho端口都置低,

首先向给 trig    发送至少10 us的高电平脉冲(模块自动向外发送840K的方波),

然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,

因为echo高电平的时间等于超声波在空气中运行的时间,按照  测试距离=(高电平时间*声速(340M/S))/2   就可以算出超声波到障碍物的距离。

 

树莓派上连接这个模块,写程序 ultrasonic_hc-sr04.py:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO  
import time  

SONIC_ECHO = 36
SONIC_TRIG = 37  
        
def checkdist():
    #发出触发信号
    GPIO.output(SONIC_TRIG,GPIO.HIGH)
    #保持10us以上(我选择20us)
    time.sleep(0.000020)
    GPIO.output(SONIC_TRIG,GPIO.LOW)
    while not GPIO.input(SONIC_ECHO):
        pass
    #发现高电平时开时计时
    t1 = time.time()
    while GPIO.input(SONIC_ECHO):
        pass
    #高电平结束停止计时
    t2 = time.time()
    #返回距离,单位为米
    return (t2-t1)*340/2

GPIO.setmode(GPIO.BOARD)
GPIO.setup(SONIC_TRIG,GPIO.OUT,initial=GPIO.LOW) 
GPIO.setup(SONIC_ECHO,GPIO.IN) 

time.sleep(2)
while True:
    L_distance = checkdist()
    if L_distance > 10:
       pass
    else:
       print 'Distance: %0.2f m' %L_distance
    time.sleep(0.5)      

GPIO.cleanup()



本文转载自:http://www.micropik.com/PDF/HCSR04.pdf

RagingTyphoon
粉丝 3
博文 28
码字总数 2689
作品 0
福州
私信 提问
【树莓派智能家居】超声波测距(Python2代码控制)

正文之前 这是计算机控制系统的课程设计,巨坑,但是没办法,还是要做,主要是要做控制器,但是我以前搞过这个超声波模块的小玩具。所以索性做个智能家居的玩意来玩。这一篇是打头阵的。中心...

HustWolf
2017/12/27
0
0
Micropython TturnipBit 体感遥控车

所需器材:  TurnipBit开发板 一块  下载数据线 一条  智能小车套件 一套(底盘、车轮、电机等)  超声波模块(HC-SR04)一个(用作小车的“眼睛”)  L298N电机驱动模块 一个  ...

bodasisiter
2018/05/22
74
0
MicroPython实战:DIY一台会思考的避障车

  * 本文作者:bodasister,本文属FreeBuf原创奖励计划,未经许可禁止转载   1、什么是会思考的避障车?   在日常生活中,大家会经常见到各种各样的遥控车,它需要我们人为的操作,控制...

FreeBuf
2018/07/03
0
0
[详细实例]MicroPython拼插编程实战:DIY一台会思考的壁障车

(转载请注明文章来源,更多教程可自助参考www.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇) 在日常生活中,大家会经常见到各种各样的遥控车,它需要我们人为的操作...

bodasisiter
2018/09/08
148
0
pcDuino上使用Serial 16×2 LCD和超声波测距

Serial 16×2 LCD 和 超声波测距我们之前的实验有涉猎到,把这两个结合起来能完成很有趣的实验。 实验准备 Serial 16×2 LCD 一块 HC-SR04 超声波模块一块 pcDuino v2 一块 面包板一个 杜邦线...

酸酸苹果汁
2014/03/12
328
0

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-铺铜操作(下)

铺铜是PCB很常见的操作,PCB的敷铜一般都是覆地铜,增大地线面积,有利于地线阻抗降低,使电源和信号传输稳定,在高频的信号线附近敷铜,可大大减少电磁辐射干扰,起屏蔽作用。 本讲讲解啊一...

demyar
24分钟前
3
0
如何通过WASI SDK 在Linux上编译ZXing C++

Mozilla在今年三月份的时候公布了WASI。WASI的目标就是让WebAssembly在任何地方都可以运行,而不仅仅像现在这样只能运行在Node.js和Web浏览器中。WASI目前依然处于初级阶段,这篇文章分享下如...

yushulx
26分钟前
3
0
.Net界面开发神器—DevExpress官方汉化包免费下载!还在等什么?

点击获取DevExpress v19.1.7新版试用下载 DevExpress Localization Service允许您创建一组自定义的附属程序集,要将语言包添加到程序集中,请查看本文中为大家列出的对应版本的汉化包,下载并...

FILA6666
26分钟前
4
0
php生成二维码

        header('Content-Type: image/png');        //清除缓冲区,防止之前面不知道的情况下被加头部信息导致不显示图片内容        ob_clean();        $...

横着走的螃蟹
31分钟前
3
0
伪类和伪元素

伪类和伪元素 伪类和伪元素,对于绝大多数同学来说,都是耳熟能详的名字,但确实又有很多人搞不清楚它们之间的区别,以致于混淆概念。而当概念都混淆的时候,也往往意味着你不会经常使用它,...

不负好时光
33分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部