一款超声波测距模块运用程序

一款超声波测距模块运用程序
一款超声波测距模块运用程序

一款超声波测距模块运用程序

本模块性能稳定,使用方便,测度距离精确。能和

国外的SRF05,SRF02等超声波测距模块相媲美,且价格

实惠,是你采购超声波器件的理想选择。模块高精度,

盲区(2cm)超近,稳定的测距是此产品成功走向市场的有力根据!测量范围在2cm~500cm,测量精度3mm,测量

时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传

播的距离较远,因而超声波经常用于距离的测量,如测

距仪和物位测量仪等都可以通过超声波来实现。

超声波测距器,可以应用于汽车倒车、建筑施工工

地以及一些工业现场的位置监控,也可用于液位、井深、管道长度的测量,用于机器人控制、小车躲避障碍等场

合中。小车上安装此模块配合舵机使用能控制得更方便。利用超声波检测往往比较迅速、方便、计算简单、易于

做到实时控制,并且在测量精度方面能达到工业实用的

要求。因此在移动机器人的研制上也得到了广泛的应用。模块性能

1:使用电压:DC5V;

2:静态电流:小于2mA;

3:输出信号:电平信号,高电平5V,低电平为0V;

4:感应角度:不大于15度;

5:探测距离:2cm-500cm

6: 高精度:可达0.3cm

超声波测距模块工作原理:

(1)采用单片机IO触发测距,给至少10us的高电平信号;

(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;

(3)有信号返回,通过echo输出一高电平,高电平

持续的时间就是超声波从发射到返回的时间。

用户通过从trig脚输入40kHz的方波信号,即用户从单片机的IO口连续发出高低电平,产生方波,方波的个数一般为10个左右;然后就可以在接收端等待高电平输出,一有输出就可以开定时器计时,当此口变为低电平时就

可以读定时器的值,高电平的时间就是此次测距的时间,

根据以下公式计算测量距离:

测试距离=(高电平时间*声速(340m/s))/2;

注意事项

1、超声波发射头向外发射60度角的超声束,因此,在

探头与被测物体之间不能有其他障碍物。

2、超声波模块测得的是被测物体与探头之间的垂直距离,测量时要保持探头正对被测物体。

3、超声波测量会受环境风速、温度等的影响。

4、模块应先插好在电路板上再通电,避免产生高电平的误动作,如果产生了,重新通电方可解决。

可能出现的问题

1、由于超声波会受到被测物体不平整、反射角度、环境风速温度以及多次反射的影响,可能会带来测量数据误

差增大。

2、由于超声波有测量盲区的固有特性,因此,如果近距离测量时,当测量位置发生变化而接收到的数据不变时,说明进入了测量盲区。

3、模块在测量远处物体时,如果没有测量数据返回,可能是超出测量范围,或是测量角度不对。可以适当调整

测量角度。

************************************************* **********************************/

/*模块高精度,盲区2cm,测量范围在2cm~500cm,测量精度3mm*/

#include;

#include;

#define uint unsigned int

#define uchar unsigned char

unsigned char code

WE0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x 7f,0x6f,0x80};//0x40-不带点

//unsigned char code

WE1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0x f0,0xef,0x80}; //0-9 带点

unsigned char temp[3];

sbit RX=P3^4; //接受端,ECHO

sbit TX=P3^5; //控制端,TRIG

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

bit flag=0;

uint time=0;

uint s=0;

void delay(int xms)//延时大概x毫秒

{

int i,j;

for(i=xms;i>;0;i--)

for(j=110;j>;0;j--);

}

void start() //给至少10us的高电平,启动模块

{

TX=1;

_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();

_nop_();

_nop_();

TX=0;

}

uchar count()

{

time=TH0*256+TL0;

TH0=0;

TL0=0; //清零

s=(time*1.7)/100;//厘米

return s;

}

void dispros()//数据分割

{

temp[0]=s%1000/100;//百位

temp[1]=s%1000%100/10; //十位

temp[2]=s%100%100%10; //个位

}

void display() //显示函数

{

uchar i;

if(s>;=500||s<=2||flag==1) //进入盲区,溢出

{

flag=0;

s=0;

TH0=0;

TL0=0; //清零

for(i=0;i<3;i++) //显示-

{

P0=0x40;

switch(i)

{

case 0:LSA=0; LSB=0; LSC=0; break; case 1:LSA=1; LSB=0; LSC=0; break; case 2:LSA=0; LSB=1; LSC=0; break; }

delay(2);

}

}

else //正常显示

{

LSA=0;LSB=0;LSC=0;

P0= WE0[temp[0]]; delay(3);

LSA=1;LSB=0; LSC=0;

P0= WE0[temp[1]]; delay(2);

LSA=0;LSB=1;LSC=0;

P0= WE0[temp[2]]; delay(1);

}

}

void main()

{

TMOD=0X01; //定时器工作方式0

TH0=0;

TL0=0;

EA=1; //开总中断

ET0=1;//开定时器中断

while(1)

{

start();//启动模块

while(!RX); //当RX为零时等待

TR0=1; //启动计数

while(RX); //当RX为1时计数并等待TR0=0; //关闭计数器

count(); //计数

dispros(); //处理,分割数据display(); //显示

delay(1);

}

}

void t0() interrupt 0 {

flag=1; //溢出标志

}

基于单片机的超声波测距系统设计实验报告 - 重

指导教师评定成绩: 审定成绩: 自动化学院 计算机控制技术课程设计报告设计题目:基于单片机的超声波测距系统设计 单位(二级学院): 学生姓名: 专业: 班级: 学号: 指导教师: 负责项目: 设计时间:二〇一四年五月 自动化学院制

目录 一、设计题目 (1) 基于51单片机的超声波测距系统设计 (1) 设计要求 (1) 摘要 (2) 二、设计报告正文 (3) 2.1 超声波测距原理 (3) 2.2系统总体方案设计 (4) 2.3主要元件选型及其结构 (5) 2.4硬件实现及单元电路设计 (9) 2.5系统的软件设计 (13) 三、设计总结 (17) 四、参考文献 (17) 五、附录 (18) 附录一:总体电路图 (18) 附录二:系统源代码 (18)

一、设计题目 基于51单片机的超声波测距系统设计 设计要求 1、以51系列单片机为核心,控制超声波测距系统; 2、测量范围为:2cm~4m,测量精度:1cm; 3、通过键盘电路设置报警距离,测出的距离通过显示电路显示出来; 4、当所测距离小于报警距离时,声光报警装置报警加以提示; 5、设计出相应的电子电路和控制软件流程及源代码,并制作实物。

摘要 超声波具有传播距离远、能量耗散少、指向性强等特点,在实际应用中常利用这些特点进行距离测量。超声波测距具有非接触式、测量快速、计算简单、应用性强的特点,在汽车倒车雷达系统、液位测量等方面应用广泛。本次课设利用超声波传播中距离与时间的关系为基本原理,以STC89C52单片机为核心进行控制及数据处理,通过外围电源、显示、键盘、声光报警等电路实现系统供电、测距显示、报警值设置及报警提示的功能。软件部分采用了模块化的设计,由系统主程序及各功能部分的子程序组成。超声波回波信号输入单片机,经单片机综合分析处理后实现其预定功能。 关键词:STC89C52单片机; HC-SR04;超声波测距

51单片机超声波测距程序

//晶振:11.0592 //TRIG:P1.2 ECH0:P1.1 //波特率:9600 #include #include #include #define uchar unsigned char #define uint unsigned int sbit RX=P0^2; sbit TX=P0^3; unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if(flag==1) //超出测量 { flag=0; printf("-----\n"); } printf("S=%f\n",S); } void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i)

{ j=10; while(--j); } } } void zd0() interrupt 1 //T0中断用来计数器溢出,超出测距范围{ flag=1; //中断溢出标志 } void StartModule() //T1中断用来扫描数码管和计800ms启动模块{ TX=1; //800MS启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0;

超声波测距程序(详细C语言数码管显示)

超声波测距程序(详细C语言数码管显示) #include //头文件 #include// _nop_() 函数延时1US用 #include #include #define uchar unsigned char #define uint unsigned int #define nop _nop_() sbit csb=P1^0;//超声波发送端口为P1.0 sbit bai=P2^2;//数码管百位 sbit shi=P2^1;//数码管十位 sbit ge=P2^0;//数码管个位 uchar flag;//超声波接收标志 float juli1;//距离变量,用来数码管显示用 int juli; uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0到9的代码 int xianshi[3]; void delayshow(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void ledshow(void) { xianshi[0]=juli/100; xianshi[1]=((juli%100)/10); xianshi[2]=juli%10; bai=0; P0=table[xianshi[0]]; delayshow(2); bai=1; delayshow(2); shi=0; P0=table[xianshi[1]]; delayshow(2); shi=1;

一款串口输出超声波测距模块使用范例

一款串口输出超声波测距模块使用范例 一、模块简介: 该串口输出超声波测距模块采用STC11F04E单片机作处理器,工作电源:DC5V,工作电流10mA。测量数据输出方式为TTL串口输出,数据格式为标准的ASCII码,数据由:空格位(起始位)+百+十位+个位。工作方式有两种:一是连续测量方式;二是查询测量方式。

测量范围:方式一:5cm~200cm(盲区5cm);方式二:25cm~350cm(盲区25cm)。 测量过程中,当接收不到障碍物反射的回波时,输出“C C C”,当测量低于下限值(在盲区内)时显示“- - -”。测量结果由模块上的输出端口输出,输出方式为串口(TTL电平)输出。测量结果可通过电脑进行显示。模块使用串口通讯可靠性更高,

同时可以通过电脑串口采集数据,编写通讯程序非常的 便捷。 波特率:1200 校验位:无 数据位:8 停止位:无 ASCII码数据格式:空格位(起始位)+百+十位+个位。 二、模块的使用设置 下图为模块的背面图片。图中标有A、B、C短接焊 盘是作为设置测量方式用;标有0-7的短路焊盘是设置 查询方式下的模块地址用。

方式1:设置为小盲区期测量。设置方法,标号为B 的焊盘即单片机的P3.5 脚与地断开,这时的测量范围为:5-200;这种方式下,测量盲区值小,适合长时间近距离测量用。 方式2: 设置为远距离测量,这种方式,盲区值相对较大,测量相对较远一些,设置方法:将标号为B的焊盘即单片机的P3.5 脚与地短接,这时的测量范围

为:25-350厘米。 方式3:连续方式测量。将标号为A的焊盘即单片机的P3.4 脚与地断开,这时模块测量方式是连续的进行 测量,测量间隔为1-2次/秒,每测量一次,就将测量结果通过串口送出。 方式4:查询方式测量。将标号为A的焊盘即单片机的P3.4 脚与地短接,这时的测量方式为查询方式测量,即通过控制设备向模块发出一个命令后,模块才测量一次。查询方式下,每向测距模块发送一次查询命令,模 块才进行测量一次,完成测量后即将测量结果通过串口 发送出来。设置成查询方式,模块可多块模块连接在一 起组网测量。 查询命令格式:AT+CL=1-255(1-255为模的的地址 编码,每个模块的地址编码由模块上单片机P1口与地短接的情况决定,各块模块的编码可独立,由使用者自己 设定,设定范围1-255,只在查询方式下有效),数据格式为16进制数据。 三、模块使用 为减小本超声波测距模块外形尺寸,该超声波测距 元件采用双面安装,全部元件安装在一块长6cm宽2.5cm 的PCB上。模块可用作应用系统的测距模块。因为它是 串口TTL电平输出的。可应用在倒车雷达、机器人避障、

单片机应用_超声波测距器

单片机课程设计 一、需求分析: 超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量围在1m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。 本文旨在设计一种能对中近距离障碍物进行实时测量的测距装置,它能对障碍物进行适时、适量的测量,起到智能操作,实时监控的作用。 关键词单片机AT82S51 超声波传感器测量距离 二、硬件设计方案 设计思路 超声波传感器及其测距原理 超声波是指频率高于20KHz的机械波。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。

超声波测距的原理一般采用渡越时间法TOF(time of flight)。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离 测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在标准空气中的传播速度为340米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。 由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。 超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。 根据设计要求并综合各方面因素,可以采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示: 超声波测距器系统设计框图 主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

超声波测距技术综述

文献综述 题目超声波测距技术综述学生姓名 专业班级 学号 院(系)电气信息工程学院指导教师 完成时间2014 年06月01日

超声波测距技术综述 摘要 我们把频率高于20000赫兹的声波称为“超声波”。超声波具有指向性强,能量消耗缓慢,在介质中传播的距离较远等特点,同时它是一种非接触式的检测方式,不受光线、被测对象颜色等影响,因此经常被用于距离的测量。超声测距技术在工业现场、车辆导航、水声工程等领域都具有广泛的应用价值,目前已应用于物位测量、机器人自动导航以及空气中与水下的目标探测、识别、定位等场合。因此,深入研究超声波测距的理论和方法具有重要的实践意义。 关键词超声波超声波测距车辆导航物位测量

1 引言 1.1 超声波简介 一般认为,关于超声的研究最初起始于1876年F1Galton的气哨实验。当时Galton 在空气中产生的频率达300K Hz,这是人类首次有效产生的高频声。而科学技术的发展往往与一些偶然的历史事件相联系。对超声的研究起到极大推动作用的是,1912年豪华客轮Titanic号在首航中碰撞冰山后的沉没,这个当时震惊世界的悲剧促使科学家们提出用声学方法来预测冰山,在随后的第一次世界大战中,对超声的研究得以进一步的促进。 近些年来,随着超声技术研究的不断深入,我们把频率高于20000赫兹的声波称为“超声波”。再加上其具有的高精度、无损、非接触等优点,超声的应用变得越来越普及。目前已经广泛的应用在机械制造、电子冶金、航海、航空、宇航、石油化工、交通等工业领域。此外在材料科学、医学、生物科学等领域中也占据重要地位。 而我国,关于超声波的大规模研究始于1956年。迄今,在超声的各个领域都开展了研究和应用,其中有少数项目已接近或达到了国际水平。 1.2 超声波测距简介 超声测距指的是利用超声波的反射特性进行距离测量,是一种非接触式的检测方式。与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。特别是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很容易检测出来,具有很高的分辨力,因而其准确度也较其它方法为高。超声波测距仪,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控和移动机器人的研制上,也可在潮湿高温,多尘等恶劣环境下工作。例如:液位、厚度、管道长度等场合。 超声波测距作为一种典型的非接触测量方法,在很多场合,诸如工业自动控制,建筑工程测量,机器人视觉识别,倒车防撞雷达,海洋测量,物体识别等方面得到广泛的应用。超声波具有指向性强、能量消耗缓慢且在介质中传播的距离较远的优点。与激光测距、红外线测距相比,超声波对外界光线、色彩和电磁场不敏感,更适于黑暗、

US100使用说明

厦门智控
USUS-100 超声波测距模块
1. 概述
US-100 超声波测距模块可实现 0~4.5m 的非接触测距功能, 拥有 2.4~5.5V 的宽电压输入范围,静态功耗低于 2mA,自带温 度传感器对测距结果进行校正,同时具有 GPIO,等多种通信方 式,内带看门狗,工作稳定可靠。
2. 主要技术参数 电气参数
工作电压 静态电流 工作温度 输出方式 感应角度 探测距离 探测精度
USUS-100 超声波测距模块
DC 2.4V~5.5V 2mA -20~+70 度 电平或 UART(跳线帽选择) 小于 15 度 2cm-450cm 0.3cm+1%
本模块实物图及 实物图及尺寸 3. 本模块实物图及尺寸
本模块如图 3.1 和图 3.2 所示:

厦门智控
图 3.1: US-100 正面图
图 3.2:US-100 背面图
本模块的尺寸:45mm*20mm*1.6mm。板上有两个半径为 1mm 的机械孔,如图 3.3 所示:
图 3.3:US-100 尺寸图
4. 接口说明
5 Pin 接口为 2.54mm 间距的弯排针,如图 4.1 所示:

厦门智控
图 4.2:5 Pin 接口 从左到右依次编号 1,2,3,4,5。它们的定义如下: 1 号 Pin:接 VCC 电源(供电范围 2.4V~5.5V)。 2 号 Pin:接外部电路的 Trig 端。 3 号 Pin:接外部电路的 Echo 端。 4 号 Pin:接外部电路的地。 5 号 Pin:接外部电路的地。
电平触发测距 测距工作原理 5. 电平触发测距工作原理
电平触发测距的时序如图 5.1 所示:
10US
8 40K
图 5.1:US-100 测距时序图

基于51单片机的超声波测距系统

基于51单片机的超声波测距系统 贾源 完成日期:2011年2月22日

目录 一、设计任务和性能指标 (3) 1.1设计任务 (3) 1.2性能指标 (3) 二、超声波测距原理概述 (4) 2.1超声波传感器 (5) 2.1.1超声波发生器 (5) 2.1.2压电式超声波发生器原理 (5) 2.1.3单片机超声波测距系统构成 (5) 三、设计方案 (6) 3.1AT89C2051单片机 (7) 3.2超声波测距系统构成 (8) 3.2.1超声波测距单片机系统 (9) 图3-1:超声波测距单片机系统 (9) 3.2.2超声波发射、接收电路 (9) 图3-1:超声波测距发送接收单元 (10) 3.2.3显示电路 (10) 四.系统软件设计 (11) 4.1主程序设计 (11) 4.2超声波测距子程序 (12) 4.3超声波测距程序流程图 (13) 4.4超声波测距程子序流程图 (14) 五.调试及性能分析 (14) 5.1调试步骤 (14) 5.2性能分析 (15) 六.心得体会 (15) 参考文献 (16) 附录一超声波测系统原理图 (18) 附录二超声波测系统原理图安装图 (19) 附录三超声波测系统原理图PCB图 (20) 附录四超声波测系统原理图C语言原程序 (21) 参考文献 (26)

一、设计任务和性能指标 1.1设计任务 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个超声波测距仪器,用LED数码管把测距仪距测出的距离显示出来。 要求用Protel 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序清单。 1.2性能指标 距离显示:用三位LED数码管进行显示(单位是CM)。 测距范围:25CM到 250CM之间。误差:1%。

超声波测距仪的设计说明

题目:超声波测距仪的设计 超声波测距仪的设计 一、设计目的: 以51单片机为主控制器,利用超声波模块HC-SR04,设计出一套可在数码管上实时显示障碍物距离的超声波测距仪。 通过该设计的制作,更为深入的了解51的工作原理,特别是51的中断系统及定时器/计数器的应用;掌握数码管动态扫描显示的方法和超声波传感器测距的原理及方法,学会搭建51的最小系统及一些简单外围电路(LED显示电路)。从中提高电路的实际设计、焊接、检错、排错能力,并学会仿真及软件调试的基本方法。 二、设计要求: 设计一个超声波测距仪。要求: 1.能在数码管上实时显示障碍物的实际距离; 2.所测距离大于2cm小于300cm,精度2mm。 三、设计器材: STC89C52RC单片机 HC-SR04超声波模块 SM410561D3B四位的共阳数码管 9014三极管(4) 按键(1) 电容(30PF2,10UF1) 排阻(10K),万用板,电烙铁,万用表,5V直流稳压电源,镊子,钳子,

导线及焊锡若干,电阻(200欧5)。 四、设计原理及设计方案: (一)超声波测距原理 超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的。超声波发射器向某一方向发射超声波,在发射同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即中断停止计时。通过不断检测产生波发射后遇到障碍物所反射的回波,从而测出发射超声波和接收到回波的时间差T,然后求出距离L。基本的测距公式为:L=(△t/2)*C 式中 L——要测的距离 T——发射波和反射波之间的时间间隔 C——超声波在空气中的声速,常温下取为344m/s 声速确定后,只要测出超声波往返的时间,即可求得L。 根据本次设计所要求的测量距离的围及测量精度,我们选用的是HC-SR04超声波测距模块。(如下图所示)。此模块已将发射电路和接收电路集成好了,硬件上不必再自行设计繁复的发射及接收电路,软件上也无需再通过定时器产生40Khz的方波引起压电陶瓷共振从而产生超声波。在使用时,只要在控制端‘Trig’发一个大于15us宽度的高电平,就可以在接收端‘Echo’等待高电平输出。单片机一旦检测到有输出就打开定时器开始计时。 当此口变为低电平时就停止计时并读出定时器的值,此值就为此次测距的时间,再根据传播速度方可算出障碍物的距离。 (二)超声波测距模块HC-SR04简要介绍 HC-SR04超声波测距模块的主要技术参数使用方法如下所述: 1. 主要技术参数: ①使用电压:DC5V ②静态电流:小于2mA ③电平输出:高5V

超声波测距模块说明

最近做超声波测距,就是简单的测量引脚高电平的时间。 思路是这样的 1.使用8MHZ时钟,不分频 初始化Timerx_Init(235,1);//8Mhz的计数频率,计数到235为1cm距离 2. PA0高电平时,打开定时器,测量时间 while(PAin(0)) { TIM3->CR1|=0x01; //使能定时器3 } TIM3->CR1|=0x00; //关闭定时器3 S=temp/2 //测量距离为总路程一半 temp=0;//计数值清零 3.计数到235时,产生中断,进入中断函数。执行temp++操作 void TIM3_IRQHandler(void) { if(TIM3->SR&0X0001)//溢出中断 { temp++; } TIM3->SR&=~(1<<0);//清除中断标志位 } 4.得出距离值S 初学定时器,这样测距思路对吗 实际测试后,S值一直为0,为什么

超声波测距模块说明 1.模块引脚 从左到右(见图)模块引脚分别为:VCC、trig(控制端)、echo(接收端)、out(空脚)、GND 2.主要技术参数: 1:使用电压:DC5V 2:静态电流:小于2mA 3:电平输出:高电平VCC-0.2V 低<0.2V 4:感应角度:不大于15 度 5:探测距离:0.02m-5m 6:探测精度:3mm(既然探测精度精确到毫米,就是说数据可以显示到毫米级,也就是四位数了!) 板上接线方式:VCC、trig(控制端)、echo(接收端)、out(空脚)、GND。OUT 脚为防盗模块时的开关量输出脚,测距模块不用此脚! 3.使用方法: (1)采用IO 触发测距,给TRIG 至少10us 的高电平信号(实际上25us 最佳);此处通过IO口给一个高电平就行了。(2)模块自动发送8 个40khz 的方波,自动检测是否有信号返回; (3)有信号通过ECHO 返回,ECHO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.此处用定时

超声波测距实验报告

电子信息系统综合设计报告 超声波测距仪

目录 摘要 (3) 第一章绪论 (3) 1.1 设计要求 (3) 1.2 理论基础 (3) 1.3 系统概述 (4) 第二章方案论证 (4) 2.1 系统控制模块 (5) 2.2距离测量模块 (5) 2.3 温度测量模块 (5) 2.4 实时显示模块 (5) 2.5 蜂鸣报警模块 (6) 第三章硬件电路设计 (6) 3.1 超声波收发电路 (6) 3.2 温度测量电路 (7) 3.3 显示电路 (8) 3.4 蜂鸣器报警电路 (9) 第四章软件设计 (10) 第五章调试过程中遇到的问题及解决 (11) 5.1 画PCB及制作 (11) 5.2 焊接问题及解决 (11) 5.3 软件调试 (11) 实验总结 (13) 附件 (14) 元器件清单 (14) HC-SR04超声波测距模块说明书 (15) 电路原理图 (17) PCB图 (17) 程序 (18)

摘要 该系统是一个以单片机技术为核心,实现实时测量并显示距离的超声波测距系统。系统主要由超声波收发模块、温度补偿电路、LED显示电路、CPU处理电路、蜂鸣器报警电路等5部分组成。系统测量距离的原理是先通过单片机发出40KHz 方波串,然后检测超声波接收端是否接收到遇到障碍物反射的回波,同时测温装置检测环境温度。单片机利用收到回波所用的时间和温度补偿得到的声速计算出距离,显示当前距离与温度,按照不同阈值进行蜂鸣报警。由于超声波检测具有迅速、方便、计算简单、易于做到实时控制的特点,并且在测量精度方面能达到工业实用的要求,因此在生产生活中得到广泛的应用,例如超声波探伤、液位测量、汽车倒车雷达等。 关键词:超声波测距温度测量单片机 LED数码管显示蜂鸣报警 第一章绪论 1.1设计要求 设计一个超声波测距仪,实现以下功能: (1)测量距离要求不低于2米; (2)测量精度±1cm; (3)超限蜂鸣器或语音报警。 1.2理论基础 一、超声波传感器基础知识 超声波传感器是利用晶体的压电效应和电致伸缩效应,将机械能与电能相互转换,并利用波的特性,实现对各种参量的测量。 超声波的传播速度与介质的密度和弹性特性有关,与环境条件也有关: 在气体中,超声波的传播速度与气体种类、压力及温度有关,在空气中传播速度为C=331.5+0.607t/0C (m/s) 式中,t为环境温度,单位为0C. 二、压电式超声波发生器原理 压电式超声波发生器实际上是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 三、超声波测距原理 由于超声波指向性强,能量消耗缓慢,在空气中传播的距离较远,因而超声波

超声波测距C语言源程序代码

超声波测距C语言源程 序代码 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12M H Z)/12=1M H 即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时, 即1us(微秒).*/ /*************************************************************************** ********/ #include<> #define UC unsigned char #define UI unsigned int void delay(UI); sbit BX = P3^0;void TimeConfiguration(); a = 0; b = 0; c = 0; P2 =~ 0x00; goto loop; } time = TL0 + TH0*256; juli = ( int )( (time*/2 ); BAI = ( (juli%1000)/100 ); SHI = ( (juli%100)/10 ); GE = ( juli%10 ); /******************************************两种模式的距离显示 ********************************************/ if(juli > MAX) { Hong = 0; Lv = 1; while( t1-- ) { a = 0; b = 1; c = 1; P2 =~ CharacterCode[BAI]; delay(400); a = 1; b = 0; c = 1; P2 =~ CharacterCode[SHI]; delay(400); a = 1; b = 1; c = 0; P2 =~ CharacterCode[GE]; delay(390);

超声波测距数码管显示,内容完全正确

《单片机课程设计》 设计报告 设计课题:超声波测距 专业班级:电子信息工程xxx班 学生姓名: wang da na 指导教师: cai 设计时间: 2015年7月9日 赣南师范学院科技学院数学与信息科学系

超声波测距 一、设计任务与要求 1.设计任务: (1)利用超声波测量距离。 (2)使用数码管显示测出的距离。 (3)在超出一定的范围后进行报警。 二、方案设计与论证 1设计方案 采用单片机来控制超声波测距,信号线发射到与超声波发射器相连的信号端,超声波发射器向既定方向发射,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物将产生回波,超声波接收器接收回波,产生电平变化。 通过单片机设计一个程序,处理超声波接受的信号,计算出发射与接受的时间差,并根据距离公式计算出距离,用数码管显示。 把所测出的距离分范围,超出2米或小于0.1米蜂鸣器报警,当处于正常范围时立即停止报警。 2 原理框图 图(1) 系统原理框图 51单片机 数码管显示模 块 报警模块 超声波模块

三、电路设计 1. 电路设计 图(2)电路图 2. 主要性能参数计算 (1)超声波测距模块 本测距系统采用超声波渡越时间检测法。其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。超声波接收器收到反射波就立即停止计时。再由单片机计算出距离,送数码管显示测量结果。 超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米(15℃时)。t2是接收超声波时刻,t1是超声波声波发射时刻,t2-t1得出的是一个时间差的绝对值,假定t2-t1=0.03S,则有340m×0.03S=10.2m。由于在这10.2m 的时间里,超声波发出到遇到返射物返回的距离如下:如图2-2-1为测距原理。

超声波测距C语言源程序代码

/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12MHZ)/12=1MH 即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时0.000001s, 即1us(微秒).*/ /****************************************************************************** *****/ //具有模式选择. #include #define UC unsigned char #define UI unsigned int void delay(UI); //延时9.56us程序 sbit beep = P1^3; //用于声音报警 sbit Lv = P1^7; //用于光报警 sbit Hong = P1^6; sbit QD = P3^7;//K8 //P3^7口(K8)为确定键, sbit GX = P3^1;//K7 //P3^3口(K2)为修改键, sbit SX = P3^6;//K6 //P3^2(K3)为测量键. sbit BX = P3^0;//K5 //个(K7),十(K6),百(K5),三位修改键 sbit a = P1^2;//百位//数码管位选 sbit b = P1^1;//十位 sbit c = P1^0;//个位 sbit trig = P1^4; //方波发射端 sbit echo = P1^5; //超声波接收端 void IntConfiguration(); //用来"设置中断"的函数,P3^3口(K2)为修改键,P3^2(K3)为测量键. void TimeConfiguration(); //用来"设置定时器"的函数 sbit K1 = P3^4;//动态 sbit K4 = P3^5;//静态//用于进行模式切换(K1、K4键) void xiaxian(); //修改函数,用来修改下限 void shangxian(); //修改函数,用来修改上限 UI min[3]={0,5,0}; //报警极限,拆分为"百十个"三位 UI max[3]={3,0,0}; //MIN,MAX 用来存储最大和最小值 void MINxianshi(UI); //最小范围和最大范围的显示 void MAXxianshi(UI); UC code CharacterCode[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管数字字符(P2口) /********************************主函数*********************************************/ void main() { TimeConfiguration(); //设置定时器0 IntConfiguration(); //设置中断允许,K4键为修改键,K8键为确定键 while(1) {

用51单片机实现HC-SR04超声波测距程序

#include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚 uchar code SEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0-9 uint distance[4]; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器 bit succeed_flag; //测量成功标志 //********函数声明 void conversion(uint temp_data); void delay_20us(); void main(void) // 主程序 { uint distance_data,a,b; uchar CONT_1; i=0; flag=0; test =0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 IT0=0; //由高电平变低电平,触发外部中断 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0 while(1) //程序循环 { EA=0; Trig=1; delay_20us(); Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //

US-100超声波测距模块

1.概述 US-100超声波测距模块可实现 2cm~4.5m的非接触测距功能,拥有 2.4~5.5V的宽电压输入范围,静态功耗 低于2mA,自带温度传感器对测距结果 进行校正,同时具有GPIO(通用接口总线),串口等多种通信方式,内带看门狗,工作稳定可靠。 2.主要技术参数

3.本模块实物图及尺寸 本模块如图3.1和图3.2所示: 图3.1:US-100正面图 本模块的尺寸:45mm*20mm*1.6mm。板上有两个半径为1mm的机械孔,如图3.3 所示:

图3.3:US-100尺寸图 4.接口说明 本模块共有两个接口,即模式选择跳 线和5 Pin接口。 模式选择跳线接口如图4.1所示。模式选择跳线的间距为2.54mm,当插上跳线帽时为UART(串口)模式,拔掉时为电平触发模式。

图4.1:模式选择跳线接口 5 Pin接口为2.54mm间距的弯排针,如图4.2所示:

图4.2:5 Pin接口 从左到右依次编号1,2,3,4,5。它们的定义如下: 1号Pin:接VCC电源(供电范围 2.4V~5.5V)。 2号Pin:当为UART模式时,接 外部电路UART的TX端;当为电平

触发模式时,接外部电路的Trig 端。 3号Pin:当为UART模式时,接 外部电路UART的RX端;当为电平 触发模式时,接外部电路的Echo 端。 4号Pin:接外部电路的地。 5号Pin:接外部电路的地。5.电平触发测距工作原理 在模块上电前,首先去掉模式选择跳线上的跳线帽,使模块处于电平触发模 式。 电平触发测距的时序如图5.1所示:

带温度补偿的超声波测距程序

/**程序:基于HC-SR04得超声波测距系统 *单片机型号:STC90C51612MHz *说明:开始连续进行7次超声波测距,每次测距间隔80ms, *完成后对7次结果排序并将最大得2个数值与最小得2个数值去除,对剩余得 *3个数值取平均值。完成后指示灯灭,输出结果到LCD1602上。测量超出范围则发出报警声、 *使用两个IO端口控制HC-SR04触发信号输入与回响信号输出, *以及一个T0定时器用于时间计数。 * 使用DS18B20测量环境温度,声速公式:V=334。1m/s+Temperature*0、61, *单片机晶振为12Mhz(11、953M),计数时为T=1us *计算公式:S=(334。1m/s+Temperature*0。61)*N*T/2,N为计数值=TH0*256+TL0*/ /*包含头文件*/ #include 〈reg51。h> #include 〈intrins。h> #define Delay4us(){_nop_();_nop_();_nop_();_nop_();} /*宏定义*/ #define uchar unsignedchar?//无符号8位 #define uint?unsigned int//无符号16位 #define ulongunsigned long ?//无符号32位 /*全局变量定义*/ sbit BEEP=P1^5;??//报警测量超出范围 sbit Trig=P3^4; //HC-SR04触发信号输入 sbitEcho=P3^2;?//HC—SR04回响信号输出 float xdataDistanceValue=0。0;?//测量得距离值 float xdata SPEEDSOUND; ??//声速 float xdataXTALTIME; ?//单片机计数周期 uchar xdata stringBuf[6];??//数值转字符串缓冲 //LCD1602提示信息 uchar codePrompts[][16]= { ?{"Measure Distance"}, //测量距离 {"-Out of Range -"}, //超出测量范围 ?{"MAX range400cm "}, //测距最大值400cm {”MIN range 2cm"},?//测距最小值2cm {”"},?//清屏 }; uchar xdata DistanceText[]="Range: ";//测量结果字符串 uchar xdata TemperatureText[]="Temperature:";//测量温度值 /*外部函数声明*/ extern voidLCD_Initialize(); //LCD初始化 extern void LCD_Display_String(uchar*, uchar); externvoid ReadTemperatureFromDS18B20(); extern int xdataCurTempInteger; void DelayMS(uint ms);?//毫秒延时函数 voidDelay20us(); //20微秒延时函数 voidHCSR04_Initialize();//HCSR04初始化 float MeasuringDistance();?//测量距离

51单片机实现超声波测距报警系统

目录 1引言 (1) 1.1研究的目的和意义 (1) 1.21 国内外发展的状况以及存在的问题 (2) 1.22 现有的倒车雷达存在的问题 (2) 1.3本文研究的主要内容 (2) 2 超声波原理介绍 (2) 2.1 超声波的基本理论 (2) 2.11 超声波的传播速度 (3) 2.12 超声波的物理性质 (4) 2.13 超声波对声场产生的作用 (5) 2.2 超声波测距系统原理 (6) 2.3 规格参数 (8) 2.31 主要功能 (8) 2.32 基本参数 (8) 3系统硬件设计 (8) 3.1 单片机系统 (10) 3.2 超声波发射接收模块 (11) 3.3 报警电路设计 (12) 3. 4 复位电路 (12) 4系统软件程序 (14) 5计算超声波传播时间 (14) 6结论 (29) 参考文献: (29) 致谢 (30)

基于单片机倒车防撞报警系统设计 张杭 南京信息工程大学滨江学院,南京210044 摘要:对于汽车倒车防撞问题,提出了将超声波测距仪和单片机结合于一体的方案,并给出了一种基于AT89C51单片机的倒车防撞报警系统的设计,对系统中控制部分、发射部分、接收部分、显示部分和报警部分出现的问题进行处理。本文采用一种简单易行的测距原理建立了防撞报警系统,具体分析了倒车防撞系统的设计原理及各部分元件的设计方案,充分描述了超声波测距的原理及应用,并介绍了我国在超声波测距的发展现状,不过还有一些无法避免的测量误差,还需日益俱进的科学发展加以解决。 关键词:A T89C51;超声测距;倒车防撞 1引言 1.1研究的目的和意义 随着社会经济的发展交通运输业飞速发展,汽车的数量在大副攀升。交通拥挤状况也日趋严重,撞车事件屡屡发生,造成了不可避免的人身伤亡和经济损失。针对这种情况,设计一种响应快,可靠性高且较为经济实用的汽车防撞报警系统势在必行。超声波测距法是最常见的一种距离测距方法,应用于汽车停车的前后左右防撞的近距离和低速状况,并且在汽车倒车防撞报警系统中,超声波作为一种特殊的声波,同样具有声波传输的基本物理特性——折射,反射,干涉,衍射,散射。超声波测距即是利用其反射特性,当车辆后退时,超声波距离传感器利用超声波检测车辆后方的障碍物位置,并利用指示灯及蜂鸣器把车辆到障碍物的距离及位置通知驾驶人员,起到安全的作用。 1.2 国内外现状

超声波测距模块+程序

发射电路 接收电路

显示程序 /****************************************************************************** *****************************/ //hc-sr04 超声波测距模块DEMO 程序 //晶振:11。0592 //程序QQ:517535000 //taobao店铺:https://www.360docs.net/doc/4b9423959.html, //接线:模块TRIG接P0.2 ECH0 接P0.1 //数码管:共阳数码管P1接数据口,P2.5 P2.4 P2.3接选通数码管 /****************************************************************************** *****************************/ #include //器件配置文件 #include #define RX P0_1 #define TX P0_2

unsigned int time=0; unsigned int timer=0; unsigned char posit=0; unsigned long S=0; bit flag =0; unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/}; unsigned char const positon[3]={ 0xdf,0xef,0xf7}; unsigned char disbuff[4] ={ 0,0,0,0,}; /********************************************************/ void Display(void) //扫描数码管 { if(posit==0) {P1=(discode[disbuff[posit]])&0x7f;} else {P1=discode[disbuff[posit]];} P2=positon[posit]; if(++posit>=3) posit=0; } /********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.7)/100; //算出来是CM if((S>=700)||flag==1) //超出测量范围显示“-” { flag=0; disbuff[0]=10; //“-” disbuff[1]=10; //“-” disbuff[2]=10; //“-” } else { disbuff[0]=S%1000/100; disbuff[1]=S%1000%100/10; disbuff[2]=S%1000%10 %10; } } /********************************************************/ void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围

相关文档
最新文档