示例七、超声波传感器测距

简介: 示例七、超声波传感器测距

通过以下几个示例来具体展开学习,了解超声波传感器原理及特性,学习超声波传感器的应用:

示例七、超声波传感器测距

一、基本原理:

1、超声波测距仪的系统结构

利用超声测距原理测量物体之间的距离,当此距离小于某一设定值时,及时提醒系统以AT89C51单片机为控制核心,用HC-SRO4超声波测距模块测量距离,经温度补偿后,用液晶显示距离,超过指定距离,用蜂鸣器报警提示,如图8-22所示。系统分为五个模块:单片机、超声模块、温度传感器、液晶显示、声音播报。


2、超声波测距仪的硬件设计

1)超声波测距模块

超声波测距仪系统选用HC-SRO4超声测距模块,如图8-23所示。测量范围为2-450cm,精度可达0.3cm。当单片机给TRIG引脚提供至少10s的高电平时,模块会自动发送八个40kHz的方波,并自动检测是否有信号返回:当有信号返回时,通过ECHO端输出一个高电平,该高电平持续的时间为超声波发射到返回的时间测试距离=(ECHO高电平时间×声速(340m/s)

1)结构及引脚

引脚说明如下。

Uc:供5V电源。

GND:地线。

TRIG:触发控制信号输入。

ECHO:回响信号输出。

+5V

HC-SR4模块的工作时序如图8-24所示。只需要提供持续10s以上的脉冲触发信号,此模块就会自动发出八个40kIz周期的电平并检测回波。当检测到有回波信号,就设置出回呼信号为高电平。回响信号的脉冲宽度与所测的距离成正比。根据从发射信号到收到回响信号的时间间隔可以计算得到距离。建议测量周期为60ms以上,以防止发射信号的影响。

图8-24 HC-SRO4模块的时序

此模块不宜带电连接,若要带电连接,则先让模块的GND端接地,否则会影响模块的正常工作。测距时,被测物体的面积不能小于0.5m2,且要求平面尽量平整,否则将影响测量的结果。

2)超声波测距仪系统电路原理

超声波测距仪系统电路原理如图8-25所示,HC-SRO4超声波测距模块的测距信号ECHO为高电平时,启动单片机定时器定时, ECHO为低电平时,停止定时。根据式(8-5)即可计算出距离,发给液晶显示模块显示,单片机将计算出的距离和警戒距离作比较,当物体距离小于警戒距离时,驱动蜂鸣器报警。

二、超声波测距仪的软件设计

1.主程序

系统启动后,首先进行初始化,然后进行距离测量。最后将测量结果送到LCD1602上显示。如果测量距离超出规定范围,则报警提示。单片机定时器T0用于测距定时,距离计算公式为:

s=(334.1m/s)time(ms)/1,000,000/2 (8-7)
s=1.7
time/100 (单位:cm)

超声波测距仪的主程序流程如图8-26所示。

2.HC-SRO4测距仪的流程

单片机的P3.3口接HC-SRO4的Tig端口,P3.2口接HC-SRO4的Echo端口,HC-SRO4模块收到测试回波信号后,Echo口输出一个高电平,并开始测试距离,单片机检测到Echo口高电平后即启动计数器开始计数,直到单片机检测到Echo口变成低电平时,停止计数,计数器的计数值乘以单片机计数周期就是超声波从发射到接收的往返时间,即距离s=V*t/2。

3.超声波测距仪的源程序:

#include <reg52.H>//器件配置文件
#include <intrins.h>
//传感器接口
sbit RX  = P3^2;
sbit TX  = P3^3;
//按键声明
sbit S1  = P1^4;
sbit S2  = P1^5;
sbit S3  = P1^6;
//蜂鸣器
sbit Feng= P2^0;

sbit W1=P1^0;
sbit W2=P1^1;
sbit W3=P1^2;
sbit W4=P1^3;
//变量声明
unsigned int  time=0;
unsigned int  timer=0;
unsigned char posit=0;
unsigned long S=0;
unsigned long BJS=200;//报警距离200CM
//模式 0正常模式 1调整
char Mode=0;
bit  flag=0;
bit flag_KEY=0;

//距离的计算
void Conut(void)
{
  time=TH0*256+TL0;   //读出T0的计时数值
  TH0=0;
  TL0=0;          //清空计时器
  S=(time*1.7)/100;     //算出来是CM
  //声音的速度是340m/s,时间的单位是us,计算到秒需要将时间数据/1000000,
  //长度=速度*时间,340*time/1000000,长度数据单位是m转换成cm需要乘以100得到340*time/10000,
  //小数点都向左移两位得到3.4*time/100,因为超声波是往返了,所以再除以2,得到距离数据(time*1.7)/100
  if(Mode==0)       //非设置状态时
  {
    if((S>=700)||flag==1) //超出测量范围显示“-”
    { 
      Feng=0;        //蜂鸣器报警
      flag=0;
      disbuff[1]=10;     //“-”
      disbuff[2]=10;     //“-”
      disbuff[3]=10;     //“-”
    }
    else
    {
      //距离小于报警距
      if(S<=BJS)
      {
        Feng=0; //报警
      }
      else  //大于
      {
        Feng=1;   //关闭报警  
      }
      disbuff[1]=S%1000/100;     //将距离数据拆成单个位赋值
      disbuff[2]=S%1000%100/10;
      disbuff[3]=S%1000%10 %10;
    }
  }
  else
  {
      Feng=1;
      disbuff_BJ[1]=BJS%1000/100;
      disbuff_BJ[2]=BJS%1000%100/10;
      disbuff_BJ[3]=BJS%1000%10 %10;
  }
}

三、数据记录:


1、减小传感器距离,查看系统的报警阈值;把阈值调整到150,在进行验证。

当距离小于200cm时警报器发生警报,大于200cm时不会警报。

同理,当阈值为150cm时小于150cm时警报器发生警报,大于150cm时不会警报。


2、从示波器中读出激活超声波传感器的脉冲周期,并分析传感器输入输出信号的时序关系(显示距离为1.50时,输出信号高电平的时长有何关系)。

11.820.17=2.0094
8.82
0.17=1.499

11.820.17=2.0094
8.82
0.17=1.499


四、思考:

proteus系统元件库中暂时没有HC-SRO4超声测距模块的数据,为了能在系统仿真时使用,实际由8051微处理器机器接口模拟了超声测距模块功能和接口,trig、echo,VCC、GND,以及虚拟的+、-按钮,试分析他们的逻辑关系。

单片机的P3.3口接HC-SRO4的Tig端口,P3.2口接HC-SRO4的Echo端口,HC-SRO4模块收到测试回波信号后,Echo口输出一个高电平,并开始测试距离,单片机检测到Echo口高电平后即启动计数器开始计数,直到单片机检测到Echo口变成低电平时,停止计数,计数器的计数值乘以单片机计数周期就是超声波从发射到接收的往返时间,即距离s=V*t/2。


目录
相关文章
|
机器学习/深度学习 人工智能 达摩院
ModelScope 社区介绍和操作入门| 学习笔记
快速学习 ModelScope 社区介绍和操作入门
ModelScope 社区介绍和操作入门| 学习笔记
|
8月前
|
JSON 测试技术 语音技术
VITA-1.5: 迈向GPT-4o级实时视频-语音交互
近期,由南京大学和腾讯优图推出的VITA-1.5在魔搭开源。VITA-1.5支持视频,音频,文本输入,以及音频输出。
479 66
|
6月前
|
前端开发
如何在React Router中进行路由重定向?
如何在React Router中进行路由重定向?
390 57
|
12月前
|
机器学习/深度学习 数据采集 JavaScript
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
ADR药品不良反应监测系统是一款智能化工具,用于监测和分析药品不良反应。该系统通过收集和分析病历、处方及实验室数据,快速识别潜在不良反应,提升用药安全性。系统采用Java开发,基于SpringBoot框架,前端使用Vue,具备数据采集、清洗、分析等功能模块,并能生成监测报告辅助医务人员决策。通过集成多种数据源并运用机器学习算法,系统可自动预警药品不良反应,有效减少药害事故,保障公众健康。
220 0
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
|
11月前
|
安全 物联网 数据安全/隐私保护
基于STM32的智能门锁
基于STM32的智能门锁
405 41
|
前端开发 JavaScript Serverless
揭秘CSS布局神器:vw/vh、rem、%与px大PK,掌握它们,让你的网页设计秒变高大上,面试难题迎刃而解!
【8月更文挑战第4天】在Web开发中,合理选择CSS单位对响应式布局至关重要。本文探索viewport单位(vw/vh)、rem、百分比(%)及像素(px)的基础知识与应用场景。通过代码示例,展示如何运用这些单位实现全屏布局、尺寸比例调整、灵活的元素大小及固定尺寸。最后,模拟面试题,介绍如何仅用CSS实现一个元素的高度为其宽度两倍且响应视口变化的方法。
630 8
|
人工智能 安全 搜索推荐
单片机毕业设计|基于stm32智能快递箱设计
随在当今的社会,网上购物以及线下获取快递己经成为日常生活中很重要的一个组成部分,电子商务的发展也带来了快递业的繁荣。这对快递业而言,是一个巨大的发展机遇,同时也是一个不可忽视的挑战。当前,快件运输的安全性越来越受到大家的重视,对快件的服务要求也越来越高。但就目前的快递行业来说,也面临着这样那样的问题,比较经常遇到送快递的到了,业务不在家,取快递时间对不上等。在此基础上,提出了一种以STM32为核心的智能化快递柜。本快递柜的主要功能有,指纹解锁功能,按键功能,警报功能,继电器柜门开锁功能,验证码功能,主要设计加入了指纹解锁功能。本系统以STM32F103为主控芯片,配置了指纹传感、4*4矩阵键盘
464 0
|
传感器 数据采集 监控
资料转发分享【毕业设计】单片机和stm32设计选题,proteues仿真、程序完整资料
资料转发分享【毕业设计】单片机和stm32设计选题,proteues仿真、程序完整资料 基于单片机寻迹巡线避障智能小车系统设计 基于单片机体温心率脉搏检测仪系统设计 基于单片机温湿度光照自动窗帘系统设计 基于单片机环境监测温湿度PM2.5系统设计 基于51单片机的波形发生器(四种波形) 基于单片机SO2 NO2 PM温湿度空气质量检测仪 基于51单片机冰箱温度控制器设计
1653 1
资料转发分享【毕业设计】单片机和stm32设计选题,proteues仿真、程序完整资料
|
编解码 计算机视觉 Python
2023年电赛---运动目标控制与自动追踪系统(E题)关于网友的问题回复
2023年电赛---运动目标控制与自动追踪系统(E题)关于网友的问题回复
688 0