0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

超声波测距仪的制作图解

454398 来源:wv 2019-09-20 09:08 次阅读

步骤1:零件清单

只需要很少的部件:

1只有HC-SR04超声波模块或类似的

1只有Arduino Uno R3

4只有Arduino male-女性跳线

第2步:接线图

完成此项目只需要四条线。

接线图显示在photo1中。

步骤3:理论

HC-SR04超声波测距仪模块(照片1)提供2cm-400cm范围内的非接触式测量。精度通常为+/- 3mm,具体取决于距离,气温和湿度。

为获得最高精度,目标区域应至少为0.5平方米。当换能器直接指向目标时获得最佳结果。但是,可以在+/- 15度的假想“锥形”内使用可用的结果。

将HC-SR04连接到Arduino非常简单,因为除了两个电源引脚外,只有两根电线,“Trig”(触发器)和“Echo”是必需的。

必须将10uS(微秒)触发脉冲施加到“Trig”引脚以开始每次测量。

接收到触发脉冲后,模块以40kHz(千赫兹)的频率发出8个周期的“脉冲串”,然后“Echo”线变为高电平。触发脉冲和“Echo”引脚的上升沿之间有一个短的430uS间隔,在此期间,在超声波脉冲发生之前,发射器电路中会产生高能量+/- 10伏电荷。

收到回波信号时,“Echo”引脚降至LOW,或者先取210mS。

[注意:

如果阻止超声波信号(我使用过在换能器上卷起袜子,您将观察到3550cm的距离读数,该读数超出传感器范围约400cm。

超过400厘米时,距离读数会突然跳到3550厘米。原因如下:

在正常操作中,measure()函数在小于25mS(423cm)内完成其测量,然后再等待25mS,直到任务调度程序接下来将TaskFlag1设置为“TRUE”。

如果没有收到回声,任务调度程序将继续每隔50mS将TaskFlag1设置为“TRUE”,直到HC-SR04在210mS后超时并且Echo引脚降低。 HC-SR04忽略由measure()函数产生的所有10uS启动脉冲。

210mS的超时值对应3550cm的距离。..因此距离突然跳跃阅读。

重点是所有距离读数都小于400厘米是正确的。 ]

典型波形

照片2,3,4中显示了5cm,10cm,20cm和200cm距离的波形,以及5.

每张照片中的顶部曲线是“Trig”引脚。..。..每张照片中的下部曲线是“Echo”引脚。

每个“Echo”脉冲的持续时间可以通过将迹线长度乘以每张照片右下角显示的“uS/div”值来计算。

计算距离

可以从公式计算出精确距离:

距离(cm)=脉冲长度*声速/2 * 100 。..。..。..。..。..。..。..。..。..。..。..。..。..。.(1)

这假设“声速”为340m/S,并且回波距离是实际距离的两倍。

也可以计算距离使用公式:

距离(cm)=脉冲长度(uS)/59 。..。..。..。..。..。..。..。. 。..。..。..。..。..。..。..。..。..。..。..。..。..。..。..。..。. 。..。(2)

通过调整常数值59可以得到确切的距离。

[注意:

常数的59值推导如下:

声速约为340m/S,为0.034cm/uS(厘米/微秒) nd)。

0.034cm/uS的倒数是29.412uS/cm,当乘以2以允许返回路径时,倒圆时等于58.824或59。 ]

示例1:

将脉冲长度2400uS代入等式( 1)我们得到:

距离= 2400/1000000 * 340/2 * 100 = 40.8cm

示例2:

将脉冲长度2400uS代入等式(2)得到:

距离= 2400/59 = 40.7cm

步骤4:代码

代码包含一个“measure()”函数,使用instructable https://www中描述的任务调度程序每50mS调用一次。 instructables.com/id/Multi-task-Your-。..

measure()函数包含以下代码:

// ----- generate 10uS start pulse

digitalWrite(Trig,HIGH);

delayMicroseconds(10);

digitalWrite(Trig,LOW);

// ----- measure the distance

while (!digitalRead(Echo)); //wait for Echo pin to go high

start_time = micros();

while (digitalRead(Echo)); //wait for Echo pin to go low

finish_time = micros();

time_taken = finish_time - start_time;

Distance = ((float)time_taken)/59;

完整代码“Ultrasonic_range_finder将此文本文件的内容复制到Arduino草图中,将其保存为“Ultrasonic_range_finder”(不带引号),然后编译并上传到Arduino。

步骤5:测量距离

要查看距离读数,请单击“工具|串行监视器”并将速度设置为115200波特。

可以通过沿标尺放置物体然后调整“距离”的常数“59”值来校准距离读数,直到显示精确读数。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184862
  • 超声波测距仪

    关注

    1

    文章

    47

    浏览量

    13755
收藏 人收藏

    评论

    相关推荐

    超声波测距原理 超声波测距离传感器接线方法

    超声波测距是一种常用的测距方法,通过发射超声波脉冲,利用其在空气中传播速度较快的特点,测量出从传感器到目标物体的时间差,并进而计算出距离。超声波
    的头像 发表于 01-22 15:22 665次阅读

    51单片机的超声波测距,并用74HC595驱动数码管显示超声波测距的距离

    个人是小白,实在不会写,麻烦大佬们帮忙写一个程序,实现51单片机的超声波测距,并用74HC595驱动数码管显示超声波测距的距离!!!
    发表于 11-23 15:19

    基于msp430的超声波测距设计

    简介:超声波测距,包含收发电路以及与上位机进行串行通信的电路……
    发表于 11-09 08:31 0次下载
    基于msp430的<b class='flag-5'>超声波</b><b class='flag-5'>测距</b>设计

    超声波模块为什么测距不准?

    超声波模块为什么测距不准,只有在拿一本书靠近模块时,测得比较准,但是测到人的距离就不怎么准
    发表于 10-31 07:23

    基于STM8的红外与超声波测距仪设计方案

    介质传播到接收器的时间即为渡越时间。渡越时间与气体中的声速相乘,就是声波传输的距离。该测试方法对于超声波探头的要求相对比较高,不适合做长距离测量。本文设计的超声波测距仪主要用于长度超过
    发表于 10-10 06:13

    基于单片机的超声波测距系统的研究与设计

    基于单片机的超声波测距系统的研究与设计
    发表于 09-26 07:54

    基于51单片机的超声波测距仪洞洞板设计LCD显示技术手册

    基于51单片机的超声波测距仪洞洞板设计 LCD显示技术手册
    发表于 09-18 10:54 0次下载

    基于51单片机的超声波测距仪覆铜板设计LCD显示技术手册

    基于51单片机的超声波测距仪覆铜板设计 LCD显示技术手册
    发表于 09-18 10:54 5次下载

    基于51单片机的超声波测距仪设计数码管显示技术手册

    基于51单片机的超声波测距仪设计 数码管显示技术手册
    发表于 09-18 10:53 7次下载

    基于51单片机的超声波测距仪设计

    超声波测距仪可以提供相当高的测距精度,通常在厘米级别。这对于许多应用场景(如机器人导航、车辆避障等)非常重要。
    的头像 发表于 09-01 09:16 1112次阅读
    基于51单片机的<b class='flag-5'>超声波</b><b class='flag-5'>测距仪</b>设计

    Proteus教程:超声波测距与显示

    Proteus教程:超声波测距与显示
    的头像 发表于 06-14 11:28 1600次阅读
    Proteus教程:<b class='flag-5'>超声波</b><b class='flag-5'>测距</b>与显示

    lebview+arduino 超声波测距

    最近学校有项目,想用 lebview+arduino 进行超声波测距 用mixly看串口有数据 设置VI 报5003 然后重新linx一下 数据一直为0啊 我是新手 向各位请教下问题在哪,该怎么做,谢谢。
    发表于 06-04 18:48

    电压放大器在超声波测距仪中的应用实例研究

    超声波测距仪是一种用于测量距离的设备,其原理是利用超声波在空气中传播的速度和反射特性来计算距离。而电压放大器则是超声波测距仪中的一个重要组成
    的头像 发表于 06-01 16:20 334次阅读
    电压放大器在<b class='flag-5'>超声波</b><b class='flag-5'>测距仪</b>中的应用实例研究

    CH32V103基础教程97-超声波测距

    本章教程主要通过使用CH32V103开发板连接超声波测距模块进行超声波测距实验。本次实验教程所用传感器为HC-SR04超声波传感器。 1、T
    发表于 05-12 16:32

    超声波式液位传感器的应用

    原理、应用领域、和未来发展三个方面来介绍超声波式液位传感器。 一、技术原理 超声波式液位传感器是利用超声波的回波时间计算目标距离和液面高度的;其原理类似于测距仪,利用
    发表于 05-05 15:19