51单片机实现超声波测距报警系统
基于某51单片机地超声波测距系统设计
1 设计任务本文采用超声波传感器,IAP15单片机以及LCD显示模块设计了一种超声波测距显示器,可以实现测量物体到仪器距离以及显示等功能。
是一种结构简单、性能稳定、使用方便、价格低廉的超声波距离测量器,具有一定的实用价值。
2 设计思路2.1 超声波测距2.1.1 超声波超声波是指频率在20kHz以上的声波,它属于机械波的范畴。
近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。
随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。
超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。
正是因为具有这些性质,使得超声波可以用于距离的测量中。
随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物内部、液位高度的测量等。
超声在空气中测距在特殊环境下有较广泛的应用。
利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。
因此超声波测距在移动机器人的研究上得到了广泛的应用。
同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。
2.1.2 超声波测距原理最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。
由于超声波也是一种声波,其声速V与温度有关。
在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。
51单片机超声波测距
flag=0; TR0=0; TH0=0; TL0=0; IE0=0; }
//重置 flag 变量 //停止计数 //定时器重装初值(高八位) //定时器重装初值(低八位) //外中断 0 请求标志清零
Байду номын сангаас
void send() { fa=0;delay_3();_nop_();fa=1;delay_3(); fa=0;delay_3();_nop_();fa=1;delay_3(); fa=0;delay_3();_nop_();fa=1;delay_3(); TH0=0;TL0=0;//定时器装初值 TR0=1; //发送完后启动定时器 EX0=1; //外部中断允许位 IE0=0; //中断标志位清零 EA=1; //开启总中断 } void Display() { uint i; A[10]=Number[temp_B/1000]; A[11]=Number[temp_B/100%10]; A[12]=Number[temp_B%10]; write_cmd(0x90); for(i=0;i<16;i++) { write_dat(A[i]); } } void main() { init_time(); LCD_INIT(); while(1) { send(); // // // // // while(flag==0) { Display(); temp_C++; //当没执行中断时,flag=0,执行下面的语句
51 单片机超声波测距程序
#include<reg52.h> #include<intrins.h> #include"LCD12864Driver.h" #define unchar unsigned char #define unint unsigned int #define unlong unsigned long uchar A[]={"超声波测距 CM"}; uchar Number[]={"0123456789"}; sbit fa=P1^0; sbit di=P3^2; //位申明
基于51单片机的超声波测距系统的毕业设计
基于51单片机的超声波测距系统的毕业设计超声波测距系统是一种常见的非接触式测距技术,通过发送超声波信号并测量信号的回波时间来计算距离。
本文将介绍基于51单片机的超声波测距系统的毕业设计。
首先,我们需要明确设计的目标。
本设计旨在通过51单片机实现一个精确、稳定的超声波测距系统。
具体而言,我们需要实现以下功能:1.发送超声波信号:通过51单片机的IO口控制超声波发射器,发送一定频率和波形的超声波信号。
2.接收回波信号:通过51单片机的IO口连接超声波接收器,接收并放大返回的超声波信号。
3.信号处理:根据回波信号的时间延迟计算出距离,并在显示器上显示出来。
4.稳定性和精确性:设计系统时需考虑测量过程中误差的影响,并通过合适的算法和校准方法提高系统的稳定性和精确性。
接下来,我们需要选择合适的硬件和软件配合51单片机实现上述功能。
硬件方面:1.51单片机:选择一款性能稳定、易于编程的51单片机,如STC89C522.超声波模块:选择一款合适的超声波传感器模块,常见的有HC-SR04、JSN-SR04T等。
模块一般包括发射器和接收器,具有较好的测距性能。
3.显示设备:选择合适的显示设备,如7段LED数码管或LCD显示屏,用于显示测距结果。
软件方面:1.C语言编程:使用C语言编写51单片机的程序,实现超声波测距系统的各项功能。
2.串口通信:通过串口与上位机进行通信,可以对系统进行监控和远程控制。
3.算法设计:选择合适的算法计算超声波回波时间延迟,并根据时间延迟计算距离值。
在设计过程中,我们需要进行以下步骤:1.硬件连接:按照超声波模块的说明书,将模块的发射器和接收器通过杜邦线与51单片机的IO口连接。
2.软件编程:使用C语言编写51单片机的程序,实现超声波模块的控制、信号接收和处理、距离计算等功能。
3.系统测试:进行系统的功能测试和性能测试,验证系统的可靠性和准确性,同时调试系统中出现的问题。
4.系统优化:根据测试结果,对系统进行优化,提高系统的稳定性和精确性。
基于51单片机超声波测距报警系统课程设计
基于51单片机超声波测距报警系统课程设计一、引言超声波测距技术是一种常见的非接触式测距技术,具有测距范围广、精度高等优点。
在日常生活中,超声波测距技术被广泛应用于车辆倒车雷达、智能家居中的人体感应等领域。
本文将介绍基于51单片机的超声波测距报警系统的课程设计。
二、设计思路本课程设计主要分为硬件设计和软件设计两部分。
硬件部分主要包括超声波模块、LCD显示屏、蜂鸣器等模块的连接和电路设计;软件部分主要包括51单片机程序设计及LCD显示程序编写。
三、硬件设计1. 超声波模块连接超声波模块是实现测距功能的核心部件。
在本课程设计中,我们采用HC-SR04型号的超声波模块。
该模块需要连接到51单片机上,具体连接方式如下:- 将VCC引脚连接到51单片机上的5V电源;- 将GND引脚连接到51单片机上的GND;- 将Trig引脚连接到P2.0口;- 将Echo引脚连接到P2.1口。
2. LCD显示屏连接LCD显示屏用于显示测距结果和报警信息。
在本课程设计中,我们采用1602型号的LCD显示屏。
该模块需要连接到51单片机上,具体连接方式如下:- 将VSS引脚连接到51单片机上的GND;- 将VDD引脚连接到51单片机上的5V电源;- 将VO引脚连接到一个10K电位器,再将电位器两端分别接到GND 和5V电源;- 将RS引脚连接到P1.0口;- 将RW引脚连接到P1.1口;- 将EN引脚连接到P1.2口;- 将D4-D7引脚分别连接到P0口的高四位。
3. 蜂鸣器连接蜂鸣器用于报警。
在本课程设计中,我们采用被动式蜂鸣器。
该模块需要连接到51单片机上,具体连接方式如下:- 将正极引脚(一般为长针)连接到51单片机上的P3.7口;- 将负极引脚(一般为短针)连接到51单片机上的GND。
四、软件设计1. 51单片机程序设计在本课程设计中,我们采用Keil C51作为编程工具,使用C语言编写程序。
主要程序流程如下:- 定义超声波模块的Trig和Echo引脚;- 定义LCD显示屏的RS、RW、EN和D4-D7引脚;- 定义蜂鸣器的引脚;- 定义变量存储测距结果和报警状态;- 初始化LCD显示屏、超声波模块等模块;- 循环执行以下操作:- 发送超声波信号并计算回波时间,从而得到距离值;- 根据距离值判断是否需要报警,并控制蜂鸣器发出报警声音;- 将测距结果和报警状态显示在LCD显示屏上。
51单片机实现超声波测距报警系统
51单片机实现超声波测距报警系统超声波测距报警系统是一种基于51单片机的硬件电路和软件程序开发的测距设备。
本文将从设备原理和设计、电路连接和程序开发等方面进行详细介绍。
一、设备原理和设计超声波测距报警系统的原理是利用超声波传感器测量并计算被测物体与传感器的距离,并通过单片机采集和处理超声波信号,根据测量结果触发报警和显示等功能。
1.超声波传感器:超声波传感器是用来发射和接收超声波信号的装置,一般由发射器和接收器组成。
发射器发射超声波信号,接收器接收被测物体反射的超声波信号。
2.单片机:本系统采用51单片机作为控制核心,负责采集和处理超声波信号,控制报警和显示等功能。
3.报警器:当距离小于设定阈值时,触发报警器发出声音或闪光等警告信号。
4.显示屏:用来显示测量结果,一般为数码管或液晶显示屏。
5.电源和电路:提供系统所需的电源和信号连接电路。
二、电路连接超声波测距报警系统的电路连接主要包括超声波传感器、单片机、报警器、显示屏以及电源等模块。
1.超声波传感器连接:将超声波传感器的发射端和接收端分别连接到单片机的引脚上,发射端连接到P1口,接收端连接到P2口。
2.报警器连接:将报警器连接到单片机的一个IO口,通过控制该IO 口的高低电平来触发报警。
3.显示屏连接:将显示屏连接到单片机的相应IO口,通过向显示屏发送数据来显示测量结果。
4.电源连接:将电源连接到单片机以及其他模块的供电端,确保系统正常工作。
三、程序开发1.初始化设置:包括引脚和端口的初始化设置,包括超声波传感器引脚和单片机的IO口设置。
2.测量距离:通过单片机控制超声波传感器发射超声波信号,并通过接收器接收反射的超声波信号,计算出被测物体与传感器的距离。
3.报警触发:根据设定的阈值,当测量到的距离小于阈值时,通过控制报警器发出声音或闪光等警告信号。
4.显示结果:通过控制显示屏将测量结果显示出来。
5.循环检测:通过循环检测的方式,不断进行测量并处理数据,实时更新测量结果和触发报警。
51单片机的液晶显示超声波测距仪
#include"1602.h"#define uchar unsigned char#define uint unsigned intsbittring = P1^3; //超声波控制端sbit echo = P3^2; //回波必须接在外部中断引脚上sbitledwarn = P2^0; //报警灯,低电平亮sbit beep = P2^1; //报警蜂鸣器uintdisplayCount;//显示计数uint time = 0;//时间unsigned long distance ;//距离float distancef;//浮点型的数据uintflagSucceed = 0; //测量成功标志位uintflagDisplay = 0; //开显示标志位void delay_20us(){uchari ;for(i=0;i<140;i++);}voidinit_shuju(){tring = 0;distance = 0;displayCount = 0;}void init_waibu0(){IT0 = 0; //外部引脚为低时触发中断EX0=0; //关闭外部中断}void timer0_Init(){TMOD = 0x11; //定时器0和1工作在16位方式TH0 = (65535-45872)/256;TL0 = (65535-45872)%6;TR0 = 1; //启动定时器ET0 = 1; //允许定时器0中断}void timer1_Init(){TMOD = 0x11; //定时器0和1工作在16位方式TH1 = 0;TL1 = 0;ET1 = 1; //定时器1中断允许}void wbzd0() interrupt 0//下降沿触发{time =TH1*256+TL1; //取出定时器的值flagSucceed = 1; //置成功测量的标志EX0=0; //关闭外部中断// TR1=0;}void timer0() interrupt 1 // 定时器0{TH0 = (65535-45872)/256;TL0 = (65535-45872)%6;displayCount ++;if (displayCount>= 20) //1秒钟显示一次{flagDisplay = 1; //开显示displayCount = 0;}}void start_csb() //启动csb模块{tring = 1;delay_20us();tring = 0;}void main(){EA=0;init_shuju();init_waibu0();timer0_Init();timer1_Init();L1602_init();L1602_string(1,1,"welcome my ");L1602_string(2,1,"test distance "); delay1(1);while(1){EA=0;//关闭总中断start_csb();while(echo==0);//变高则进入下一步flagSucceed = 0;TR1=1; //启动定时器1开始计数EA = 1;EX0=1;TH1= 0;TL1= 0;TF1= 0; //定时器1溢出标志位while (TH1<90) ; //盲区TR1 = 0; //关闭定时器1EX0 = 0; //关闭外部中断if(flagSucceed==1) //一次测试成功,则计算距离,单位为厘米{distancef = time * 1.085;//微妙为单位distancef /=58;//单位为厘米distance = distancef*10+0.5;//如果距离小于20cm,则声光报警if ((flagSucceed == 1) && (distance <= 200)){ledwarn = 0;beep = 0;delay1(1);beep = 1;delay1(1);}else{ledwarn = 1;beep = 1;}}if (flagDisplay == 1) //1秒显示时间到{if(flagSucceed==0)//没有测试成功{L1602_string(1,1," can't distance ");L1602_string(2,1," ------ ");}else{//LCD显示数据L1602_string(1,1,"distance result:");L1602_string(2,1," cm ");L1602_int(2,5,distance);}flagDisplay = 0;}}}。
基于51单片机的超声波测距
基于51单片机的超声波测距超声波:超声波是由机械振动产生的, 可在不同介质中以不同的速度传播, 具有定向性好、能量集中、传输过程中衰减较小、反射能力较强等优点。
超声波传感器可广泛应用于非接触式检测方法,它不受光线、被测物颜色等影响, 对恶劣的工作环境具有一定的适应能力, 因此在水文液位测量、车辆自动导航、物体识别等领域有着广泛的应用。
超声波测距原理:超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差Δt , 然后求出距离S 。
在速度v 已知的情况下,距离S 的计算,公式如下:S = vΔt/ 2。
在空气中,常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0. 6 米/ 秒。
因此在测距精度要求很高的情况下, 应通过温度补偿的方法对传播速度加以校正。
已知现场环境温度T 时, 超声波传播速度V 的计算公式如下:V = 331.5 + 0. 607T这样, 只要测得超声波发射和接收回波的时间差Δt 以及现场环境温度T,就可以精确计算出发射点到障碍物之间的距离。
超声波测距模块:(1):采用IO口TRIG触发测距,给至少10us的高电平信号;(2):模块自动发送8个40khz的方波,自动检测是否有信号返回;(3):有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2。
例程:/******************超声波测距1602显示******************单片机型号:STC89C52RC*开发环境:KEIL*名称:超声波测距液晶1602显示/**********************包含头文件*********************/#include <reg52.h>#define LCD_Data P0#define Busy 0x80/**********************宏定义*************************/#define SPEED_30C 3495 //30摄氏度时的声速,声速V=331.5+0.6*温度;#define SPEED_23C 3453 //23摄氏度时的声速,声速V=331.5+0.6*温度;/**********************位定义*************************/sbit ECHO=P1^6;sbit TRIG=P1^5;sbit BEEP=P2^3;sbit LCD_RS=P1^0;sbit LCD_RW=P1^1;sbit LCD_E=P2^5;/********************定义变量和数组*******************/long int distance=0; //距离变量unsigned char code table0[]={" SL-51A "};unsigned char code table1[]={" NO ECHO "};unsigned char code table2[]={"Distance:xxx.xcm"};unsigned char count;void Delay5Ms(void);void delay(int In,int Out);void WriteDataLCD(unsigned char WDLCD);void WriteCommandLCD(unsigned char WCLCD,BuysC);unsigned char ReadDataLCD(void);unsigned char ReadStatusLCD(void);void LCDInit(void);void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData);void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData);void delayt(unsigned int x){unsigned char j;while(x-->0){for(j=0;j<125;j++){;}}}void Delay5Ms(void){unsigned int TempCyc=3552;while(TempCyc--);}void delay(int In,int Out){int i,j;for(i=0;i<In;i++){for(j=0;j<Out;j++){;}}}void Alarm(unsigned char t){unsigned char i;for(i=0;i<t;i++){BEEP=0;delay(10,1000);BEEP=1;delay(10,1000);}}void Init_timer(void){TMOD=0x01;TL0=0x66;TH0=0xfc;ET0=1;EA=1;}void Init_Parameter(void){TRIG=1;ECHO=1;count=0;distance=0;}void display(int number){unsigned char b,c,d,e;b=(number/1000);c=(number/100)%10;d=(number/10)%10;e=number%10;DisplayOneChar(9,1,(0x30+b));DisplayOneChar(10,1,(0x30+c));DisplayOneChar(11,1,(0x30+d));DisplayOneChar(13,1,(0x30+e));}void Trig_SuperSonic(void){TRIG=1;delayt(1);TRIG=0;}void Measure_Distance(void){unsigned char l;unsigned int h,y;TR0=1;while(ECHO){;}TR0=0;l=TL0;h=TH0;y=(h<<8)+l;y=y-0xfc66;distance=y+1000*count;TL0=0x66;TH0=0xfc;delayt(30);distance=SPEED_30C * distance / 20000;}void WriteDataLCD(unsigned char WDLCD){ReadStatusLCD();LCD_Data=WDLCD;LCD_RS=1;LCD_RW=0;LCD_E=0;LCD_E=0;LCD_E=1;}void WriteCommandLCD(unsigned char WCLCD,BuysC) {if (BuysC)ReadStatusLCD();LCD_Data=WCLCD;LCD_RS=0;LCD_RW=0;LCD_E=0;LCD_E=0;LCD_E=1;}unsigned char ReadDataLCD(void){LCD_RS=1;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;return(LCD_Data);}unsigned char ReadStatusLCD(void){LCD_Data=0xFF;LCD_RS=0;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;while (LCD_Data & Busy);return(LCD_Data);}void LCDInit(void){LCD_Data=0;WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,0);Delay5Ms();WriteCommandLCD(0x38,1);WriteCommandLCD(0x08,1);WriteCommandLCD(0x01,1);WriteCommandLCD(0x06,1);WriteCommandLCD(0x0C,1);}void LCD_Clear(void){WriteCommandLCD(0x01,1);Delay5Ms();}void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData){Y&=0x1;X&=0xF;if(Y)X|=0x40;X|=0x80;WriteCommandLCD(X,0);WriteDataLCD(DData);}void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData) {unsigned char ListLength;ListLength=0;Y&=0x1;X&=0xF;while(DData[ListLength]>=0x20){if(X<=0xF){DisplayOneChar(X,Y,DData[ListLength]); ListLength++;X++;}}}void main(void){LCDInit();Init_timer();Init_Parameter();Alarm(2);DisplayListChar(0,0,table0);DisplayListChar(0,1,table1);while(1){Trig_SuperSonic();while(ECHO==0){;}Measure_Distance();DisplayListChar(0,1,table2);display(distance);Init_Parameter();delayt(100);}}void timer0 (void) interrupt 1{TF0=0;TL0=0x66;TH0=0xfc;count++;if(count==18){TR0=0;TL0=0x66;TH0=0xfc;count=0;}}。
51单片机超声波测距程序
// 超声波测距,测距范围2cm-400cm;#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char sbittrig=P1A0;sbit echo二卩3八2;sbit test=P1A1; // 测试灯sbit dula=P2A6;sbit wela=P2A7;sbit BEEP=P2A3;uint timeh,timel,distance;uint ge,shi,bai,xiaoshu,flag,time;/* 共阴极数码管不带小数点代码表*/ uchar code list[]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 ,0x6d ,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 0x39 , 0x5e , 0x79 , 0x71 };/* 共阴极数码管带小数点代码表*/ uchar code listtwo[] ={ 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};/* 长延时函数*/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=100;y>0;y--);/* 短延时函数*/ void delay20us() {uchar a;for(a=0;a<100;a++); }/* 报警函数*/void beer(){// BEEP=0; delay(10);}/* 定时器初始化*/ void initime0() {TMOD=0x01;TH0=0;EA=0;ET0=0;EX0=0;}/* 外部中断函数*/ void estern() interrupt 0 {timeh=TH0;timel=TL0;beer();flag=1;EX0=0;TR0=0;}/* 显示函数*/void display(distance) bai=distance/1000;shi=distance%1000/100; ge=distance%100; xiaoshu=distance%10; // 进入中断,标志位就置 1 // 同时关断外部中断和定时P0=list[xiaoshu]; dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delay(2);dula=1;P0=listtwo[ge]; dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(2);dula=1;P0=list[shi]; dula=0;wela=1;P0=0xfd; wela=0;delay(1);dula=1;P0=list[bai]; dula=0;P0=0xff;wela=1;P0=0xfe; wela=0;delay(1);}/* 被调用子函数 */ void diaoyong(){ uinti;EA=0;echo=1; // 为了检测电平的高低,首先必须拉高trig=1;delay20us();trig=0;while(echo==0);向下执行flag=0;EA=1;EX0=1;TR0=1;TH0=0;TL0=0;for(i=0;i<100;i++) display(distance); // 用 100 次显示循环来延时, 解决数码管// 如果进入中断 即接收到超声波就 // 接收到就清除标志位 // 同时打开总中断 // 打开外部中断 // 开定时器 // 定时器清零// 等待测量的结果显示不亮问题}// delay(50); // 用延时函数数码管闪烁TR0=0; // 延时一段时间后关断定时器EX0=0; // 延时一段时间后关断外部中断if(flag==1) // 如果进入中断,说明测距已经测好{time=timeh*256+timel;// 计算测定距离,并显示distance=time*0.1720;display(distance);}if(flag==0) // 如果没有进入中断,距离为0,同时灯闪烁{distance=0;test=!test;}}/* 主函数*/void main(){initime0();test=0;trig=0;EA=1;while(1){ diaoyong();display(distance);。
基于51单片机的超声波测距系统设计
基于51单片机的超声波测距系统设计超声波测距系统在工业自动化、智能机器人等领域有着广泛的应用。
本文将介绍一种基于51单片机的超声波测距系统设计,包括硬件设计和软件设计两个方面。
1.硬件设计硬件设计是超声波测距系统设计的基础,下面是一些主要的硬件设计要点。
(1)传感器模块:选择适合的超声波传感器模块作为测距传感器。
传感器模块一般包括一个超声波发射器和一个超声波接收器。
通过发送超声波脉冲,并测量收到的回波时间来计算距离。
(2)51单片机:选择一款适合的51单片机作为主控芯片。
常用的型号有AT89S51、AT89C52等。
51单片机具有丰富的外设资源,且易于编程。
(3)显示模块:可以选择常见的数码管、液晶显示屏等显示模块来显示测距结果。
(4)电源模块:设计稳定、可靠的电源模块,为系统提供电源供电。
2.软件设计软件设计是实现超声波测距系统的关键,下面是一些主要的软件设计要点。
(1)超声波发射与接收:通过51单片机的IO口驱动超声波传感器模块进行发射与接收。
超声波发射一般只需要发送一个脉冲,而超声波接收则需要采集到回波信号,可以使用定时器或外部中断来实现信号的接收。
(2)测距算法:根据超声波发射和接收的时间间隔,可以通过测距算法来计算出距离。
最常用的测距算法是利用声速的速度和回波时间的一半来计算距离。
(3)数据处理与显示:将测得的距离数据进行处理,并使用显示模块将结果显示出来。
可以选择合适的数码管显示驱动方式或液晶显示屏驱动方式。
(4)系统控制:根据实际需求,可以对系统进行控制,如设置报警阈值,当距离超出阈值时发出报警信号。
3.系统功能与扩展超声波测距系统设计完成后,可以加入一些额外的功能与扩展,以提高系统的实用性和性能。
(1)多点测距:可以设计多个传感器模块,实现多点测距功能,适用于复杂的环境。
(2)数据存储与通信:可以将测得的距离数据存储到外部存储器,如EEPROM或SD卡,并通过串口通信或无线通信方式将数据传输到上位机进行进一步处理。
51超声波测距报警器设计
摘要本文是基于STC89C51单片机为核心的车载防撞报警器的设计,分析了汽车倒车防撞系统的基本的设计原理。
主要是利用了超声波的特点与优势,还将超声波的测距系统与STC89C51单片机结合于一体。
该系统采用软、硬件结合的方式,硬件部分主要是由单片机硬件接口电路与超声波发射电路、超声波接收电路与数码管显示电路、电源电路与报警电路组成的,软件部分主要是由主程序和超声波发射接收中断程序、距离计算子程序和显示报警子程序等部分组成的具有模块化与多用化的特点。
驾驶者只需要坐在汽车驾驶室就可以做到心里有数,极大地提高泊车和倒车的时候安全性与效率。
关键词:单片机;防撞报警;超声波;目录1绪论 (1)1.1项目背景及设计目标 (1)2超声波概述 (2)2.1超声波基本理论 (2)2.1.1超声波发展史 (2)2.1.2超声波的本质 (2)2.1.3超声波的应用 (3)3超声波测距方法与原理 (4)3.1超声波测距方法 (5)3.1.1方法种类介绍和说明 (5)3.2超声波测距原理与超声波传感器 (6)3.2.1超声波测距原理 (6)4系统电路设计 (9)4.1电路设计 (9)4.1.1发射与接收电路设计方案 (9)4.1.2显示电路设计方案 (10)4.1.3报警电路设计方案 (12)4.1.4系统复位电路设计 (13)4.2、硬件与软件设计 (14)4.2.1硬件设计 (14)4.2.2软件设计 (16)5总结 (18)6参考文献 (18)7附录1系统原理图 (19)8附录2实物图 (19)1绪论1.1项目背景及设计目标现代社会的汽车工业飞速发展,拥有私家轿车的人越来越多,带来的交通问题也日益严重。
其中安全倒车是驾车技术水平不高或没有安全意识的开车人士最为担心的交通问题之一,如果稍不留神不仅会给自己或别人带来财产损失,还会造成激烈的争吵与纠纷,甚至也威胁到了驾驶员的生命安全。
面对这样的情况与问题,倒车防撞报警器就被人们设计出来,依据声源或以直观的显示提醒驾驶员周围障碍物的分布情况,解决了驾驶员倒车和启动轿车时前后左右探视所引起的问题,并帮助驾驶员扫除了视觉死角和视野模糊的不足,提高了倒车安全性。
基于51单片机超声波测距仪设计
基于51单片机超声波测距仪设计超声波测距仪是一种应用较为广泛的测量设备,可以用于测量物体与超声波传感器之间的距离。
本文将基于51单片机设计一个简单的超声波测距仪,并介绍其原理、硬件电路和程序设计。
一、原理介绍:超声波测距仪的工作原理是利用超声波传感器发射超声波,并接收其反射回来的波,通过计算发射和接收之间的时间差,从而确定物体与传感器之间的距离。
超声波的传播速度在空气中近似为331.4m/s,根据速度与时间关系,可以通过测量时间来计算距离。
二、硬件电路设计:1.超声波模块:选用一个常见的超声波模块,包括超声波发射器和接收器。
2.51单片机:使用51单片机作为控制器,负责控制超声波模块和处理测距数据。
3.LCD显示屏:连接一个LCD显示屏,用于显示测距结果。
4.连接电路:将超声波发射器和接收器分别连接到单片机的引脚,将LCD显示屏连接到单片机的相应引脚。
三、程序设计:1.初始化:包括初始化单片机的GPIO引脚、定时器以及其他必要的设置。
2.发送信号:发射一个超声波信号,通过超声波模块的引脚控制。
此时,启动定时器开始计时。
3.接收信号:当接收到超声波的反射信号时,停止定时器,记录计时的时间差。
根据超声波传播速度,可以计算出距离。
4.显示结果:将测得的距离数据显示在LCD显示屏上。
四、实现效果:通过以上设计,可以实现一个简单的超声波测距仪。
在实际应用中,可以根据需求扩展功能,例如增加报警功能、计算速度等。
总结:本文基于51单片机设计了一个超声波测距仪,包括硬件电路设计和程序设计。
通过该设备可以实现对物体与超声波传感器之间的距离进行测量,并将结果显示在LCD显示屏上。
该设计只是一个基本的框架,可以根据需要进行进一步的改进和优化。
超声波测距系统 基于51单片机的超声波倒车测距报警系统设计
引言超声波是一种频率在20KHz以上的机械波,在空气中的传播速度约为340 m/s(20°C 时)。
超声波可由超声波传感器产生,常用的超声波传感器两大类:一类是采用电气方式产生超声波,一类是用机械方式产生超声波,目前较为常用的是压电式超声波传感器。
由于超声波具有易于定向发射,方向性好,强度好控制,对色彩、光照度不敏感,反射率高等特点,因此被广泛应用于无损探伤,距离测量、距离开关、汽车倒车防撞、智能机器人等领域。
1 系统原理框图本设计的整体框图如图1所示,主要由超声波发射,超声波接收与信号转换,按键显示电路与温度传感器电路组成。
超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差T,然后求出距离S=CT/2,式中的C为超声波波速。
在常温下,空气中的声速约为340m/s。
由于超声波也是一种声波,其传播速度C 与温度有关,在使用时,如果温度变化不大,则可认为声速是基本不变的。
因本系统测距精度要求很高,所以通过对温度的检测对超声波的传播速度加以校正。
超声波传播速度确定后,只要测得超声波往返的时间,如图2所示,即可求得距离。
这就是超声波测距系统的基本原理。
2 超声波信号的发射与接收电路发射部分电路如图3所示,主要由脉冲调制信号产生电路,隔离电路以及驱动电路组成,用来为超声波传感器提供发送信号。
脉冲调制信号产生电路中通过单片机对555定的复位(RESET)端的控制,使555定时器分时工作从而生产生脉冲频率为40KHz,周期为30ms的脉冲调制信号,信号波形如图2所示,本设计中一个周期内发送10个脉冲信号。
隔离电路主要是由两个与非门组成,对输出级与脉冲产生电路之间进行隔离。
输出级由两个通用型集成运放TL084CN 组成,由于超声波传感器的发射距离与其两端所加的电压成正比,因此要求电路要产生足够大的驱动电压,其基本原理就是一个比较电路,当输入信号Vi>2.5V时,运放A的输出电压VA=+12V,运放B的输出电压VB=-12V,当输入信号Vi<2.5V时,运放A的输出电压VA="-12V",运放B的输出电压VB=+12V,所以在超声传感器两端得到两个极性完全相反的对称波形,即VB=-VA,所以加在超声波传感器两端的电压V=VA-VB=2VA,其两端的电压可达到24V,从而保证超声波能够发送较远的距离,提高了测量量程。
用51单片机设计超声波测距系统的设计原理及电路(附源程序)
基于51单片机的超声波测距仪说明书引言超声波测距仪,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
利用超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制。
一、性能要求该超声波测距仪,要求测量范围在0.08-3.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
二、工作原理及方案论证超声波传感器及其测距原理超声波是指频率高于20KHz的机械波。
用超声波传感器产生超声波和接收超声波,习惯上称为超声波换能器或超声波探头。
超声波传感器有发送器和接收器.超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOF(timeofflight)。
首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。
根据要求并综合各方面因素,采用AT89C52单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距仪的系统框图如下图所示:图1 超声波测距仪系统设计框图三、系统硬件部分硬件部分主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
1.单片机系统及显示电路单片机采用AT89C52来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。
单片机通过P1.1引脚发射脉冲控制超声波的发送,然后单片机不停的检测外中断0口INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管驱动。
#用51单片机设计超声波测距系统的设计原理和电路(附源程序)
基于51单片机的超声波测距仪说明书引言超声波测距仪,可使用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
利用超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制。
一、性能要求该超声波测距仪,要求测量范围在0.08-3.00m,测量精度1cm,测量时和被测物体无直接接触,能够清晰稳定地显示测量结果。
二、工作原理及方案论证超声波传感器及其测距原理超声波是指频率高于20KHz的机械波。
用超声波传感器产生超声波和接收超声波,习惯上称为超声波换能器或超声波探头。
超声波传感器有发送器和接收器.超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOF(timeofflight)。
首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源和障碍物之间的距离。
根据要求并综合各方面因素,采用AT89C52单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距仪的系统框图如下图所示:图1 超声波测距仪系统设计框图三、系统硬件部分硬件部分主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
1.单片机系统及显示电路单片机采用AT89C52来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。
单片机通过P1.1引脚发射脉冲控制超声波的发送,然后单片机不停的检测外中断0口INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器和障碍物之间的距离。
显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管驱动。
用51单片机实现HC-SR04超声波测距程序
#include <reg52.h> //包括一个52标准内核的头文件#define uchar unsigned char //定义一下方便使用#define uint unsigned int#define ulong unsigned longsbit 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-9uint 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; //启动定时器0IT0=0; //由高电平变低电平,触发外部中断ET0=1; //打开定时器0中断EX0=0; //关闭外部中断EA=1; //打开总中断0while(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; //TR1=1; //启动定时器1EA=1;while(TH1 < 30);//等待测量的结果,周期65.535毫秒(可用中断实现)TR1=0; //关闭定时器1EX0=0; //关闭外部中断if(succeed_flag==1){distance_data=outcomeH*256+outcomeL;distance_data= (distance_data*1.87)/100;} //为什么除以58等于厘米, Y米=(X 秒*344)/2// X秒=( 2*Y米)/344 ==》X 秒=0.0058*Y米 ==》厘米=微秒/58if(succeed_flag==0){distance_data=0; //没有回波则清零test = !test; //测试灯变化}/********************************************每循环3次就显示结果一次*********************************************/a=distance_data;if(b==a) CONT_1=0;if(b!=a) CONT_1++;if(CONT_1>=3){ CONT_1=0;b=a;conversion(b);}}}//***************************************************************//外部中断0,用做判断回波电平INTO_() interrupt 0 // 外部中断是0号{outcomeH =TH1; //取出定时器的值outcomeL =TL1; //取出定时器的值succeed_flag=1; //至成功测量的标志EX0=0; //关闭外部中断}//****************************************************************//定时器0中断,用做显示timer0() interrupt 1 // 定时器0中断是1号{TH0=0xfd; //写入定时器0初始值TL0=0x77;switch(flag){case 0x00:P0=ge; P2=0xfe;flag++;break;case 0x01:P0=shi;P2=0xfd;flag++;break;case 0x02:P0=bai;P2=0xfb;flag=0;break;}}//显示数据转换程序void conversion(uint temp_data){uchar ge_data,shi_data,bai_data ;bai_data=temp_data/100 ;temp_data=temp_data%100; //取余运算shi_data=temp_data/10 ;temp_data=temp_data%10; //取余运算ge_data=temp_data;bai_data=SEG7[bai_data];shi_data=SEG7[shi_data];ge_data =SEG7[ge_data];EA=0; //显示数据的时候不要测量bai = bai_data;shi = shi_data;ge = ge_data ;EA=1;}//****************************************************************** void delay_20us(){ uchar bt ;for(bt=0;bt<100;bt++);}如有侵权请联系告知删除,感谢你们的配合!。
超声波测距并实时监控距离报警51C程序
{
time=timeH * 256+timeL;
distance=time*0.0172; //厘米
if( distance < jiexian )
{
//uchar i;
// for( i = 5; i > 0;i --)//鸣五下蜂鸣器和闪五下LED
-------------------------------------*/
void timer1() interrupt 3
{
TH1=0;
TL1=0;
}
{
timeH =TH1;//取出定时器的值
timeL =TL1;//取出定时器的值
succeed_flag=1;//至成功测量的标志
EX0=0; //关闭外部中断
}
/*-------------------------------------
定时器1中断,用做超声波测距计时
EA=1;
EX0=1; //打开外部中断0
TH1=0; //定时器1清零
TL1=0;//定时器1清零
TF1=0; //计数溢出标志
TR1=1; //启动定时器1
delay(20);//等待测量的结果
TR1=0;//关闭定时器1
EX0=0; //关闭外部中断0
{
warning = !warning;
LED = !LED;
}
/*------------延时函数---------*/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录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 国内外现状1.21 国内外发展的状况以及存在的问题汽车倒车防撞测距报警器是国家安全技术发展期间重点开发的科研项目之一。
以往的汽车倒车测距一般有四种:1嘀嘀声加闪光、2音乐声加闪光、3语音声加闪光、4倒车到危险距离时发出警报声的超声波倒车报警器。
由于很多研究都采用的是特殊难购且稀有的专用元件,使其难以推广。
而本设计采用国内生产的通用元件,成本较低廉,并且使其在整个倒车过程中自动测量车尾到最近障碍物的距离,在倒车到极限距离时会发出急促的警告声,提醒驾驶员注意刹车,避免事故的发生。
1.22 现有的倒车雷达存在的问题最大有效探测距离的问题:通过调查得知大多数驾驶员的习惯会使行人只有不到1s的时间脱离危险。
这样一来,报警在减速时就很紧张,明显会感到预警时间不足,引起不必要的事故发生。
1.3本文研究的主要内容本论文概述了超声波检测的发展及工作原理,阐述了超声波传感器的原理、特点、分类;对于报警系统的一些主要参数进行了讨论和研究,以及在超声波测距系统功能的基础上,提出了报警系统的总体结构;并且设计了系统发射、接收电路,并仔细介绍了系统各设计单元的原理及它们的工作原理。
2 超声波原理介绍2.1 超声波的基本理论超声波是一门以物理、电子、机械、以及材料科学为基础的、各行各业都要使用的通用技术之一。
该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。
因此,我国对超声波的研究特别活跃。
超声技术是通过超声波的产生、传播以及接收的物理过程完成的。
超声波具有聚束、定向及反射、投射等特性。
按超声波振动辐射大小不同大致可以分为:用超声波使物体或物性变化的功率应用,称之为功率超声;用超声波获取信息,称为检测超声。
超声波是听觉阈值之外的振动,其频率范围在104——1012Hz ,其中通常的频率大约在104——310⨯6之间。
超声波在超声场(被超声波充满的范围)传播时,如果超声波的波长与超声场相比,超声场很大,超声波就像处在一种无限的介质中,超声波自由地向外扩散;反之,如果超声波的波长与相邻介质的尺寸相近,则超声波受到界面限制不能自由的向外扩散。
2.11 超声波的传播速度超声波在介质中可以产生三中形式的振荡波:横波——质点振动方向垂直于传播方向的波;纵波——质点振动方向与传播方向一致的波;表面波——质点振动介于纵波和横波之间,沿表面传播的波。
横波只能在固体中传播,纵波能在固体液体中和气体中传播,表面波随深度的增加其衰减很快。
为了测量各种状态下的物理量多采用纵波形式的超声波。
超声波的频率越高,越与光波某些特性相似。
超声波与气其他声波一样,其传播速度与介质密度和弹性特性有关。
超声波在气体和液体中,其传播速度C gL =(aB ρ1)21 式中 ρ——介质的密度;a B ——绝对压缩系数。
可以推导出超声波在空气种传播速度T C G ⨯+=61.04.331。
(T 为环境温度)。
超声波在固体中的传播速度分两种情况:(1)纵波在固体介质中的传播速度与介质的形状有关。
21)(ρEC q = (细棒) 212])1([μρ-=E C q (薄板) 2121)34(])21)(1()1([ρμμρμG K E C q +=-+-= (无限介质)式中 E ——杨氏模具;μ——泊松系数;K ——体积弹性模具;G ——剪片弹性模。
(2)横波声速公式为 2121)(])1(2[ρμρG E C q =+⨯= (无限介质) 在固体中,μ介于0——5之间,因此一般可视为横波声速为纵波的一半。
2.12 超声波的物理性质当超声波传播到两种特性不同的介质的平面上时,一部分被反射;另一部分透射过界面,在相邻的介质内部继续传播;这样的两种情况称之为超声波的反射和折射,如图1所示:(1) 超声波的反射和折射当超声波传播到两种特性阻抗不同介质的平面分界面上时,一部分超声波被反射;另一部分透射过界面,在相邻介质内部继续传播;这样的两种情况称之为超声波的反射和折射,如图2.1.1所示。
声波的反射系数和透射系数可以分别由如下两式求得:图 1 声波反射 11211222cos cos cos cos c c c c R ρραβρραβ+-= 11221122cos cos 2c c c c T ρρβαρρ+= 式中:βα,——分别为声波的入射角和反射角;2211,c c ρρ——分别为两介质的特征阻抗,其中21,c c 为反射波和折射波的速度。
反射角、折射角与声速21,c c 满足折射定律关系式:21sin sin c c =βα。
当超声波垂直入射界面时,即0==βα,则:1122112211c c c c R ρρρρ+-= 1122112212c c c c T ρρρρ+= 如果sin α>21c c ,入射波完全被反射,在相邻两个介质中没有折射波。
如果超声波斜入射到两个固体介质面或两粘滞弹性介质面时,一列斜入射的纵波不仅产生反射纵波和折射纵波,而且还产生反射横波和折射横波。
(2)超声波的衰减超声波在一种介质中传播,其声压和声强按指数函数规律衰减。
在平面波的情况下,距离声源x 处的声压p 和声强I 的衰减规律如下:Ax ep p -=0 Ax eI I 20-=式中:00,I p ——距离声源x=0处的声压和声强;x ——超声波与声波间的距离;A ——衰减系数,单位为cm N p /(奈培/厘米)。
(3)超声波的干涉如果在一种介质中传播几个声波,于是产生波的干涉现象。
若以两个频率相同,振幅1ξ和2ξ不等,波程差为d 的两个波干涉为例,该两个波合成振幅为 212122211)2cos 2(λπξξξξξd++=,其中λ为波长。
从上式看出,当d=0或d=λn (n 为整数)时,合成振幅r ξ达到最大值;当d=,...)5,3,1(2=n n λ时,合成振幅r ξ为最小值。
当ξξξ==21时,r ξλπξd cos 2=;当d 2λ=的奇数倍时,两波相互抵消合成幅度为0。
由于超声波的干涉,在辐射器的周围形成一个包括最大最小的扬声场。
2.13 超声波对声场产生的作用(1) 机械作用超声波传播过程中,会引起介质质点交替的压缩与伸张,构成了压力的变化,这种压力的变化将引起机械效应。
超声波引起质点的运动,虽然位移和速度不大,但是与超声波振动的频率的平方成正比的质点的加速度却很大。
有时足以达到破坏介质的程度。
(2) 空化作用在流体动力学指出,存在于液体中的微气泡在声场的作用下振动,当声压达到一定的值时,气泡将迅速膨胀,然后突然闭合,在气泡闭合时产生冲击波,这种膨胀、闭合、振动等一系列动力学过程称为空化。
(3) 热学作用如果超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介质相互摩擦产生热热量,这种能量使介质温度升高。
2.2 超声波测距系统原理在超声探测电路中,发射端得到输出脉冲为一系列方波,其宽度为发射超声的时间间隔,被测物距离越大,脉冲宽度越大,输出脉冲个数与被测距离成正比。
超声测距大致有以下方法:①取输出脉冲的平均值电压,该电压 (其幅值基本固定 )与距离成正比,测量电压即可测得距离;②测量输出脉冲的宽度,即发射超声波与接收超声波的时间间隔 t,故被测距离为 S=1/2vt。
本测量电路采用第二种方案。
由于超声波的声速与温度有关,如果温度变化不大,则可认为声速基本不变。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
超声波测距适用于高精度的中长距离测量。
因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。
如图2,超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米(15℃时)。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则有340m×0.03S=10.2m。
由于在这10.2m的时间里,超声波发出到遇到返射物返回的距离如下:图 2测距原理超声波测距是借助于超声脉冲回波渡越时间法来实现的。
设超声波脉冲由传感器发出到接收所经历的时间为t,超声波在空气中的传播速度为c,则从传感器到目标物体的距离D可用下式求出:D = ct /2超声波测距器的系统框图如下图所示:基本原理:经发射器发射出长约6mm,频率为40KHZ的超声波信号。