基于STM32的超声波测距

时间:2019-05-14 23:10:01下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《基于STM32的超声波测距》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《基于STM32的超声波测距》。

第一篇:基于STM32的超声波测距

基于STM32和US-100的超声波测距仪设计

摘 要:结合嵌入式处理器STM32F103与超声波传感器设计的一种简易的智能超声波测距仪装置,采用ARM内核芯片STM32F103ZET6的32位嵌入式微处理器与带有温度补偿的US-100超声波测距模块实现声波测距。STM32的串口资源相当丰富,能提供5路串口,通过微处理器的串口实现实时显示和TFTLCD显示距离等参数。US-100带有温度传感器,对超声波的声速进行补偿,提高测量精度。

关键词:STM32F103;US-100;超声波测距;TFTLCD显示

Design of Ultrasonic Distance Measurement Based on STM32 And US-100

Abstract:Combined with the embedded microprocessor STM32F103 and ultrasonic sensor design a simple intelligent ultrasonic range finder devices, using ARM kernel chip STM32F103ZET632-bit embedded microcontroller processor with temperature compensation of US100 with a temperature sensor, to compensate the velocity of ultrasonic wave, improve the accuracy of measurement.Keywords:STM32F103;US-100;Ultrasonic Distance Measurement;TFTLCD-Showing

0 引言

超声波测距是一种典型的非接测量方式。超声波在气体、液体及固体中以不同速度传播,定向性好、[1]能量集中、传输过程中衰减较小、反射能力较强。且超声波测距系统结构简单、电路容易实现、成本低、速度快,所以在工业自动控制、建筑工程测量和机器人视觉识别等领域应用非常广泛,它具有非接触式测

[2]量、精度高、范围宽和安装维护方便等特点。

本设计结合嵌入式处理器与超声波测距模块提供一种超声波测距装置,系统采用嵌入式处理器控制US-100超声波测距模块实现超声波的发送和接受。US-100带有温度补偿,对测量的距离进行校正,提高了测量的精度。结合STM32丰富的串口资源,本装置通过串口2与US-100相互通信,进行超声波的收发和温度补偿,得到测量距离,通过TFTLCD显示;并通过串口1在PC机上实时显示。系统总体设计

US-100超声波发射脉冲障碍物STM32F103处理器串口1通信TFTLCD显示超声波接收回波温度校正串口2通信PC机串口显示图 1系统总体设计框图

Fig.1 Diagram of the overall system design

系统总体设计框图1,可以看到该超声波测距装置由STM32微处理器、US-100超声波测距模块、TFTLCD液晶显示组成。控制器通过控制US-100超声波模块实现超声波的收发,并进行温度补偿提高精度,得到精确的距离数据。再通过控制器自身串口通信向PC机串口实时显示数据和TFTLCD液晶显示的人机交互界面。STM32的高性能、低功耗和高主频等优点给该装置测距实现更加完备。硬件设计

2.1 主控制模块STM32F103微控制器

基于ARM Conex-M3内核的STM32F103ZET6时钟频率可高达72Mhz,提供20KB的RAM、多大128KB的嵌入式

闪存和丰富的外设接口,处理速度比同级别的基于ARM7TDMI的产品快30%,产品功耗比同级别低75%。使用新内核ARM Conex-M3是针对MCU的低成本、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应的需要而推出的。ARM Conex-M3采用纯Thumb2指令高效32位哈弗微体系结构和系统外设,使这个具有32高性能的ARM内核能够实现8位和16位的代码储存密度,几乎把所有应用软件所需内存容量降低了一半。由于ARM Conex-M3的架构和丰富的外设组件,使得它也适用于要求高度集成和低功耗[4]的嵌入式场合

[3]2.2 US-100超声波测距模块

US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4V~5.5的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测量结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。有串口触发测距和电平触发测距两种方式。本设计采用串口触发测距,在此模式下只需要在TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检

[5]测到回波信号后,模块还要进行温度值测量,然后根据当前温度对测距结果进行校正,将矫正后的结果通过RX管脚输出。US-100超声波模块的引脚图如下:1脚接电源VCC,2脚接STM32F103ZET6的PA2,3脚接PA3,4脚接地即可。

图 2 US-100超声波测距模块图 Fig.2 US系统以STM32单片机为核心,实现对各部分的控制和响应。由于系统采用的ARM Conex-M3处理器集成调试功能,可实现快速验证支持多种开发功能。结合具有Thumb-2功能强大的指令集,可只使用C语言编程(包括复位、中断、异常处理),不需要模块转换,不需要汇编程序的软件管理,系统中软件部分采用模块化设计,若干个小的程序或模块,分别进行独立设计、编程、测试、和查错,最后连成1个完整的[7]应用程序,对每一个外设都有相应的例程,可以方便的进行移植。

系统软件采用模块化设计,主要包括主程序、串口中断子程序两个模块。系统中主程序合理结合中断子程序,使设计更加简单,并且主频消耗低,速度快。主程序控制处理器送入0X55数据,采用串口触发的方式测距,得到触发信号,进入中断子程序。发射8个40KHZ的超声波脉冲,检测回波信号。当检测到回波信号后,US-100自带温度补偿功能对测量的数据进行校正,提高了测量精度,然后通过串口送给电脑实时显示距离,并且在主程序中对测的距离进行液晶显示,具有距离小于150mm时的蜂鸣器报警功能,另外可以在TFTLCD上显示使用状态。该设计还可以综合利用在智能家居的智能系统中,可以用于容量探测,实时掌控;也可以用于车载倒车和避障系统中。超声波测距具有很多实际应用,在各种智能系统中都有它的声影。软件运行流程如下:

开始串口中断入口系统初始化串口初始化触发信号发射超声波串口2中断子程序发射完否YNTFTLCD显示距离distance接收数据Distance<150mmY 蜂鸣器鸣叫N计算距离串口1显示结束结束 图 4 主程序 图 5 串口中断程序

Fig.4 main program

Fig.5 A serial port interrupt program

/*************************** 主程序(程序入口)

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

int main(void){

int distant;

u8 x=0;u8 temp[12];

//存放LCD ID字符串

delay_init();

//延时函数初始化

NVIC_Configuration();

//设置NVIC中断分组2:2位抢占优先级,2位响应优先级

uart_init(9600);

//串口1初始化为9600 uart_init_2(9600);

//串口2初始化为9600

LED_Init();

//LED端口初始化

BEEP_Init();

//初始化蜂鸣器端口

LCD_Init();POINT_COLOR=BLUE;

while(1)

{

USART_SendData(USART2,0x55);

//向串口2发送数据0X55输入到TX端口

delay_ms(4000);

//延时

LED0=!LED0;

LCD_ShowString(30,110,200,16,16,temp);

delay_ms(2000);

LCD_ShowString(30,50,200,16,16,“ RANGING”);

if(distant<150&&distant!=0)

//距离小于150mm时报警

{

BEEP=1;

//蜂鸣器报警

LED1=0;

//LED亮

}

else

{

BEEP=0;

LED1=1;

} } } /*********************************** 串口中断子程序(串口中断入口)

***********************************/ int globe1;int globe2;int flag=0;int distant;u8 temp[12];

//存放LCD ID字符串 void USART2_IRQHandler(void)

//串口2中断服务程序

{

u8 Res;

if(USART_GetITStatus(USART2, USART_IT_RXNE)!= RESET)//接收中断(接收到的数据必须是0x0d 0x0a结尾)

{

Res =USART_ReceiveData(USART2);//(USART2->DR);//读取接收到的数据

if(flag%2==0){

globe1=Res;

flag++;

}

else{

globe2=Res;

distant=globe1*256+globe2;

//距离计算公式

delay_ms(40000);

printf(“The distant is:%dcmn”,distant);//串口1显示距离

flag++;

LCD_ShowString(50,130,200,16,16,“distance:”);

LCD_ShowNum(120,130,distant,4,16);

//液晶显示距离

}

if(distant<150&&distant!=0)

{

BEEP=1;

LED1=0;

LCD_ShowString(30,90,200,16,16,“FULL”);

}

else

{

BEEP=0;

LED1=1;

LCD_ShowString(30,90,200,16,16,“USED”);

}

}

} 结论

本设计以ARM Conex-M3内核微控制器为超声波测距的控制核心,再结合带有超声波收发和温度补偿的US-100超声波测距模块简化了电路和开发环境。利用STM32中断子程序优化了软件编程,使系统运行内存更小,功耗更低;US-100进行的温度补偿减小了误差,提高了精度,在近距离测量范围内,该设计可达到mm级。该装置具有很好的实用性。

参考文献:

[1] 夏晨,李朴.反应釜设计及其温度控制系统[J].化工自动化及仪表,2004,31(1):66-69 [2] 时德刚,刘哗。超声波测距的研究[J].计算机测量与控制,2002,9(10):31-33 [3] 陈文凯,张根宝,张震强.基于ARM Conex--M3内核微控制器的智能锤式料位检测系统.计算机测量与控制,2008,16(11):1564-1566

[4] [5] [6] [7] 刘玉梅,张清志.基于超声波测距装置的节能装置设计[J].仪表技术与传感器,2009(20):109-110 苏伟,巩壁建.超声波测距误差分析[J].传感器技术,2004,3(4):17-20 林志刚,曲建中.彩色薄膜晶体管液晶显示器(TFT-LCD)基本原理与动态.山东电子,1999,11(2):33-38 张根宝,李秀平,庞苏娟.基于ARM Conex-M3便携式智能超声波液位计.仪表技术与传感器,2012(20):29-32

第二篇:超声波测距总结

超声波测距

超声波传感器用于超声控制元件,它分为发射器和接收器。发射器将电磁振荡转换为超声波向空气发射,接收器将接受的超声波进行声电转换变为电脉冲信号。实质上是一种可逆的换能器,即将电振荡的能量转换为机械振荡,形成超声波;或者有超声波能量转换为电振荡。常用的传感器有T40-XX和R40-XX系列,UCM-40T和UCM-40R系列等;其中T代表发射传感器,R代表接收传感器,40为中心频率40KHZ。

超声波的传播速度

纵波、横波及表面波的传播速度取决于介质的弹性常数以及介质的密度。

1.液体中的纵波声速:

C1=

k/

2.气体中的纵波声速:

C2=

P·/

式中:K——体积弹性模量

——热熔比

P——静态压力

——密度

注:气体中声速主要受温度影响,液体中声速主要受密度影响,固体中声速主要受弹性模量影响;一般超声波在固体中传播速度最快,液体次之,气体中传播速度最慢。超声波测距原理

通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差△t ,就可以计算出发射点距障碍物的距离S ,即: S = v·△t /2

这就是所谓的时间差测距法 或:

由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 ℃, 声速增加约0.6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度T 时, 超声波传播速度V 的计算公式为:

V = 331.45 + 0.607T

声速确定后, 只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。

超声波发生器可以分为两类:

1、使用电气方式产生超声波;

2、用机械方式产生超声波。电气方式包括压电型,磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各有不同,因而用途也各有不同。目前较为常用的是压电式超声波发生器,其又可分为两类:(1)顺压电效应:某些电介物质,在沿一定方向上受到外力作用而变形时,内部会产生极化现象,同时在其表面上会产生电荷;当外力去掉后,又从新回到不带电的状态,这种将机械能转换为电能的现象称顺压电效应(超声波接收器的工作原理)。(2)逆压电效应:在电介质的极化方向上施加电场,会产生机械变形,当去掉外加电场时,电介质的变形随之消失,这种将电能转化为机械能的现象称逆压电效应(超声波发射器的工作原理)。

系统框图

超声波发射电路 方案一

利用555定时器构成多谢振荡器产生40KHz的超声波。如下图为555定时器构成的多谢振荡器,复位端4由单片机的P0.4口控制,当单片机给低电平时,电路停振;当单片机给高电平时电路起振。接通电源后,电容C2来不及充电,6脚电压Uc=0,则U1=1,555芯片内部的三极管VT处于截止状态。这时Vcc经过R3和R2向C2充电,当充至Uc=2/3Vcc时,输出翻转U1=0,VT导通;这时电容C2经R2和VT放电,当降至Uc=1/3Vcc时,输出翻转U1=1.C2放电终止、又从新开始充电,周而复始,形成振荡。其振荡周期t1和放电时间t2有关,振荡周期为:

T=t1+t20.7(R3+2R2)C2

f=1/T=1/(t1+t2)1.43/(R3+2R2)C2=40KHz 有上面公式可知,555多谐振荡器的振荡频率由R2,R3,C2来确定。所以在电路设计时,先确定C2,R2的取值,即C2=3300pf,R2=2.7K。再将R2和C2的值代入上式中可得:

R3=1.43/C2·f-2R2 为了方面在实验中使用555芯片的3脚输出40KHz的方波,在这里将其用10K的电位器代替。

为了增大U1的输出功率,将555芯片的8脚接+12v的电压,同时将其复位端4脚接高电平,使用示波器观察555芯片3脚的输出波形,通过调节电位器R3的阻值,使其输出波形的频率为40KHz。

方案二

该超声波发射电路,由F1至F3三门振荡器在F3的输出为40KHz方波,工作频率主要由C1、R1和RP决定,用RP可调电阻来调节频率。F3的输出激励换能器T40-16的一端和反相器F4输出激励换能器T40-16(反馈耦合元件)的另一端,因此,加入F4使激励电压提高了一倍。电容C2、C3平衡F3和F4的输出使波形稳定。电路中的反相器用CC4069六反相器中的四个反相器剩余两个不用(输入端应接地)。电源用9V叠层电池;测量F3输出频率应为40KHz,否则应调节RP,发射波信号大于8m。

方案三

该超声波发射电路由VT1、VT2组成正反馈振荡器。电路的振荡频率决定于反馈元件的T40-16,其谐振频率为40KHz;频率稳定性好,不需做任何调整,并由T40-16作为换能器发出40KHz的超声波信号;电感L1与电容C2调谐在40KHz起作谐振作用。本电路电压较宽(3v至12v),且频率不变。电感采用固定式,电感量5.1mH,整工作电流约25mA,发射超声波信号大于8m。

方案四

该发射电路主要有四与非门电路CC4011完成谐振及驱动电路功能,通过超声波换能器T40-16辐射出超声波去控制接收器。其中门YF1和门YF2组成可控振荡器,当S按下时,振荡器起振,调整RP改变振荡器频率为40KHz;振荡信号分别控制由YF3、YF4组成的差相驱动器工作,当YF3输出高电平时,YF4输出低电平,当YF3输出低电时,YF4输出高电平。此电平控制T40-16换能器发出40KHz超声波。电路中YF1至YF4采用高速CMOS电路74HCOO四与门电路,该电路特点是输出驱动电流大(大于15mA),效率高等;电路工作电压9V,工作电流大于35mA,发射超声信号大于10m。

方案五

本电路采用LM386对输出信号进行功率放大,LM386多用于音频放大,而在本电路中用于超声波发射。如图所示,LM386第1脚和第8脚之间串接的E1和R1,使电路获得较大的增益;TO为单片机输入口的脉冲信号,经功率放大后由5脚输出,驱动探头发射超声波。

超声波接收器模块 方案一

超声波接收传感器通过压电转换的原理,将由障碍物返回的回波信号转换为电信号,由于该信号幅度较小(几到几十毫伏),因此须有低噪声放大、40kHz带通滤波电路将回波信号放大到一定幅度,使得干扰成分较小,其电路如下所示。在此电路中,为了防止在超声波接收器上始终加有一直流信号让其工作导致传感器的寿命缩短,从而加上一隔直电容C4,从而C4和R5构成滤波电路。

在电路中,放大部分采用的是高速型运放TL084。综合考虑了反相放大器、同相放大器和测量放大器的优缺点后,最终选择了同相放大电路。因为同相放大器的理想输入阻抗为无穷大,理想输出阻抗为零,其带负载能力较强等因素。在此电路中,根据同相放大器的闭环增益公式:Af=1+Rf/Rr 由于接收到的信号幅度为几到几十毫伏,所以需要将其放大400多倍使得其接收到的40KHz信号不会被干扰信号给掩盖。为了防止引起运算放大器的自激振荡,在第一级的放大电路中,R7取值为470 K,R8取值为10K,其增益放大: Af1=1+R7/R8=48 在第二级放大电路中,R11的取值为100K,R12的取值为10K,其放大增益: Af2=1+R11/R12=11 两级增益为:Af=Af1·Af2=528 同相放大器的平衡电阻R6和R10的取值均为10K。平衡电阻公式为:

Rp=Rf/(Rf+Rr)C5和R9构成了一阶滤波电路。

方案二

该电路主要有集成电路CX20106A和超声波换能器TCT40-10SI构成。利用CX20106A做接收电路载波频率为38KHz;通过适当的改变C7的大小,可以改变接收电路的灵敏度和抗干扰能力。

工作原理:当超声波接收探头接收到超声波信号时,压迫压电晶体做振动,将机械能转化成电信号,由红外线检波接收集成芯片CX20106A接收到电信号后,对所接信号进行识别,若频率在38KHz至40KHz左右,则输出为低电平,否则输出为高电平。

方案三

双稳式超声波接收电路

电路中,由VT5、VT6及相关辅助元件构成双稳态电路,当VT4每导通一次(发射机工作一次),触发信号C7、C8向双稳电路送进一个触发脉冲,VT5、VT6状态翻转一次,当VT6从截止状态转变成导通状态时,VT5截止,VT7导通,继电器K吸合•••调试时,在a点与+6V(电源)之间用导快速短路一下后松开,继电器应吸合(或释放),再短路一下松开,继电器应释放(或吸合),如果继电器无反应,请检查双稳电路元件焊接质量和元件 参数。

方案四

单稳式超声波接收电路

本电路超声波换能器R40-16谐振频率为40kHZ,经R40-16选频后,将40kHZ的有用信号(发射机信号)送入VT1至VT3组成的高通放大器放大,经C5、VD1检出直流分量,控制VT4和VT5组成的电子开关带动继电器K工作。由于该电路仅作单路信号放大,当发射机每发射一次超声波信号时接收机的继电器吸合一次(吸合时间同发射机发射信号时间相同),无记忆保持功能。可用作无线遥控摄像机快门控制、儿童玩具控制、窗帘控制等。电路中VT1β≥200,VT2≥150,其他元件自定。本电路不需要调试即可工作。如果灵敏度和抗干扰不够,可检查三极管的β值与电容C4的容量是否偏差太大。经检测,配合相应的发射机,遥控距离可达8m以上,在室内因墙壁反射,故没有方向性。电路工作电压3V,静态电流小于10mA。

方案五

在本接收电路中,结型场效应VT1构成高速入阻抗放大器,能够很快地与超声波接收器件B相匹配,可获得较高接收灵敏度及选频特性。VT1采用自给偏压方式,改变R3的阻值即可改变VT1的工作点,超声波接收器件B将接收到的超声波转换为相应的电信号,经VT1和VT2两极放大后,再经VD1和VD2进行半波整流为直流信号,由C3积分后作用于VT3的基极,使VT3由截止变为导通,其集电极输出负脉冲,触发器JK触发D,使其翻转。JK触发器Q端的电平直接驱动继电器K,使K吸合或释放;由继电器K的触点控制电路的开关。

盲区形成的原因及处理

1、探头的余震及方向角。发射头工作完后还会继续震一会,这是物理效应,也就是余震。余震波会通过壳体和周围的空气,直接到达接收头、干扰了检测;通常的测距设计里,发射头和接收头的距离很近,在这么短的距离里超声波的检测角度是很大的,可达180度。

2、壳体的余震。就像敲钟一样,能量仍来自发射头。发射结束后,壳体的余震会直接传导到接收头,这个时间很短,但已形成了干扰。(注:不同的环境、温度对壳体的硬度和外形会有所变化,导致余震时间会略有改变)

3、电路串扰。超声波发射时的瞬间电流很大,瞬间这么大的电流会对电源有一定影响,并干扰接收电路。通常这三种情况情况在每次超声波发射时都会出现,即超声波在发射的时候,是一个高压脉冲,并且脉冲结束后,换能器会有一个比较长时间的余震,这些信号根据不同的换能器时间会有不同,从几百个uS到几个mS都有可能,因此在这个时间段内,声波的回波信号是没有办法跟发射信号区分的.因此,被测物体在这个范围内,回波和发射波区分不开,也就无法测距,从而形成了盲区.。

在硬件方面通常将超声波转换器之间的距离适当增大来减少盲区的范围;如果发射探头和接收探头分开,收发不互相影响,必须要求发射电路和接收电路的地线隔离很好,发射信号不会通过地线串扰过去,否则也是不能减小盲区的。

在软件中的处理方法就是,当发射头发出脉冲后,记时器同时开始记时。我们在记时器开始记时一段时间后再开启检测回波信号,以避免余波信号的干扰。等待的时间可以为1ms左右。更精确的等待时间可以减小最小测量盲区。(注:超声波探头方向角越小、发射头和接收头位置越远,盲区就越小,测量距离也就越小)

第三篇:超声波测距总结报告

电子技术实验课程设计

超声波测距系统

总结报告

自03 胡效赫 2010012351

自03 胡效赫 2010012351

一、课题内容及分析

首先根据课程所给的几个题目进行选择,由于自己最近在做电子 设计大赛的平台设计,希望对超声波测距在定位方面应用有更详尽的了解,所以选择课题三——超声波测距作为课程设计,内容如下:

对课题进行分析:实验提供超声波传感器T40-16和R40-16,利用面包板和小规模芯片搭接电路,实现距离的测量及显示。大致思路即驱动发射端发出超声波,接收端收到返回的脉冲进行处理与计算得到测量距离并通过数码管和蜂鸣器显示。

二、方案比较与选择

由于超声波测距方案原理基本相同,只要能够检测出发射到接收的时间,并通过相应计算就可以得到所测距离。所以问题大致分为驱自03 胡效赫 2010012351 动发射端、接收端检测、间隔时间计算与计算结果显示四部分。具体的方案设计如下:

闸门脉冲源产生基准宽度为T 的闸门脉冲,该脉冲一方面控制计数电路的计数启动和并产生计数器清零脉冲,使计数器从零开始对标准脉冲源输出的时钟脉冲(频率为17KHz)计数。同时开启控制门,超声波振荡器输出的40kHz脉冲信号通过控制门,放大后送至超声波换能器,由发射探头转换成声波发射出去。该超声波经过一定的传播时间,达到目标并反射回来,被超声波换能器的接收探头接收变成电信号,经放大、滤波、电压比较和电平转换后,还原成方波。图中的脉冲前沿检测电路检测出第一个脉冲的前沿,输出控制信号关闭计数器,使计数器停止计数。则计数器的计数值反映了超声波从发射到接收所经历的时间(或距离)。

自03 胡效赫 2010012351

三、模块化设计及参数估算

1、闸门控制模块  设计思路

555振荡电路产生频率为2Hz的脉冲,作为闸门脉冲源。RC微分电路将输出的2Hz脉冲进行微分运算产生脉冲信号,作为计数启动和计数清零的信号,分别控制D触发器的置高端和74LS90的清零端。 参数设计:

555振荡电路T =(R1+2*R2)*C*ln2。其中R1取4.7kΩ,R2接入10kΩ滑动变阻器,最后实测7.51kΩ,C取47uF。RC微分电路R为1kΩ,C为4.7nF

2、超声波发生模块  设计思路

555振荡电路产生频率为40kHz的脉冲,作为驱动超声波发射端 自03 胡效赫 2010012351 的基础脉冲信号。

同时由2Hz闸门信号作为门控(高电平有效)。

再利用电压比较器,对555脉冲信号进行整形,而后输出。 参数设计

555振荡电路T =(R1+2*R2)*C*ln2。其中R1取2kΩ,R2接入 1kΩ滑动变阻器,最后实测440Ω,C取10nF。

3、超声波接收模块  设计思路

电压放大电路,利用LF347放大超声接收端信号

电压比较电路,利用电阻分压设计阈值电压VREF,当没有接收到信

号时V-大于V+,输出为负,当接收到信号时V-小于V+,输出为正。稳压电路,电压比较器输出端接1kΩ电阻,反接5V稳压管接地,自03 胡效赫 2010012351 使没有信号即输出为负时,输出-0.7V电平,有信号即输出为正时,输出5V电平。 参数设计

放大电路电阻值为1kΩ和750kΩ,放大倍数为750。

电压比较器VREF由100kΩ电阻和100kΩ的滑动变阻器分压决定,最终滑动变阻器阻值取为5.68kΩ,VREF取值大致为-0.6V。

4、计数控制模块  设计思路

计数控制模块由,计数启动和计数停止控制组成。由D触发器进行实现 当计数开始时闸门信号的微分电路给出低电平脉冲将Q置高,计数信号有效。而接收到回波后,接收信号由低变自03 胡效赫 2010012351 高,CLK产生上升沿将Q置低,计数信号关闭。

5、计数模块  设计思路

555振荡电路产生17kHz的脉冲型号用来计数 三个74LS90级联,采用十进制接法计数,分别对应米、分米、厘米。

计数信号控制源由计数控制模块的D触发器的Q信号给出 计数信号清零源由闸门控制信号的微分模块经由缓冲器后给出高脉冲清零。 参数设计

555振荡电路T =(R1+2*R2)*C*ln2。其中R1取5.1kΩ,R2接入

47kΩ滑动变阻器,最后实测18.98kΩ,C取2.2nF。

6、报警模块  设计思路

令A[4],B[4],C[4]分别对应米、分米、厘米,同时当模块计数时报 警应该无效,设D触发器输出信号为Q,则 逻辑函数Alarm = A1’A0’B3’B2’B1’Q 自03 胡效赫 2010012351 利用与非、或非及非逻辑运算搭接电路

四、实验电路总图

1、电路原理图

自03 胡效赫 2010012351

2、时序图

3、面包板布局

五、实验结果与实验中出现的问题分析

1、实验结果 结果:基本要求及提高要求全部完成。其中四个地方用到了滑动变阻器分别是三个555的脉冲源(产生2Hz、17kHz和40kHz的方波)和接收模块的电压比较器阈值电压VREF的确定。调试结果的各自03 胡效赫 2010012351 阻值已在模块设计中标明。

2、实验中出现的问题及分析

A.微分电路输出信号的检查

开始分模块调试时,不会测量微分电路输出的脉冲信号,然后不能确定问题出现在下级还是本级。经过老师的提示,只要把示波器显示的波形调到最粗最亮,调成相应扫描速度,可以看到面板上有亮点间歇显示。从而验证微分电路输出信号无误,并且幅值正确。

B.数码管显示不稳定

数码管显示不稳定,多数原因是由于数字电路与模拟电路相互干扰,计数器中混有杂波和高频信号。用示波器测量计数电路的74LS90的信号,发现有17kHz的杂波。首先将模拟地和数字地分开将555振荡电路的地直接由引线接到学习机上,而后数码管开始显示,但仍不太稳定。再在VCC和GND之间跨接0.1uF的电容滤掉杂波。之后数码管稳定显示。

C.信号输出不正确

D触发器输出电平Q在未接受到信号时应该是低电平,但始终是高电平。开始时不确定前级各模块的正确与否,有些停滞,之后确定前级信号正确,D触发器接线正确,而输出信号不对,则一定芯片的问题。换了芯片之后,输出正常。

六、收获、体会和建议

1、收获与体会 本次实验充分体会电路模块设计与调试的过程,对于设计电路和自03 胡效赫 2010012351 测试电路的能力有了更一步的提升。首先,搭接与调试电路时,应该本着自顶向下逐步求精的原则,在理解原理并确定原理正确之后,先对于面包板的布局进行规划,把相应的芯片测试后,插到相应部分,保证后面搭接时方便并且思路清晰。然后,按分模块逐级搭接调试的原则测试电路,保证了每一级的输入信号都是正确的后,如果输出不正确,去检查接线,接线正确后检查芯片是否正常工作。最后,发现信号干扰问题,尝试用滤波,分离数字地和模拟地,以及简单的搭接电容的方法,解决干扰。依照上述方法调试电路,保持一颗正常心态,可以高效并且正确的完成问题。

2、建议 由于整个实验过程中只需要,测量接收波形的上升沿,所以对于模拟电路中波形整形处理部分现对简单。现提出以下课程建议: 建议老师将提高要求的测量距离改为高于3m,这样同学们利用波形放大然后与阈值电压比较的方法就不能实现了,因为相应的杂波干扰也会随之放大,冲过阈值电压,影响结果。所以此时同学应该使用选频电路选出40kHz的波形,控制后面的计数模块,对于模拟电路部分会有更高的锻炼。

附工作日志

8月21日 自03 胡效赫 2010012351 经过周末的预习,查找了关于超声传感器的原理知识和超声测距的相关内容。分析了超声测距的实现方案,并将电路分为各个模块实现,每个模块进行了相应仿真(但有些仿真结果不理想,待硬件实测)。

本日上午首先针对超声测距系统方案中的几个模块与同学进行了讨论,包括方波频率的选择与实现,闸门信号的实现与清零,以及面包板的布局合理性。

而后首先搭接了三个555方波发生器。上午只搭接测试出了,40kHz的方波 本日下午再次对于板子的规划进行思考,并大致划分了区域,把相应用到的芯片放到了相应的位置。然后搭接测试出了2Hz方波。分别测试两种方波的频率均很稳定,效果不错。而后开始搭接超声发射模块的实现,将两种频率的方波进行逻辑运算,经由LS00,信号传至运算放大器LF347,将信号与2.5V电压值进行比较,得到最终的大约0.5s驱动一次超声波发射器的效果。

但是遇到的问题是,当2Hz和40kHz的方波共同输入到LS00中时,对2Hz的方波进行测量,示波器显示的频率很难稳定下来,发现混有杂波,可能是40kHz的杂波,也可能是交流成分。进行了各种测试,重新退到上一步骤,检查芯片的问题,等等。但是问题并没解决,后来怀疑是示波器测量可能不是很准。直接测量最终运放发射的信号,发现效果正常。问题解决。

而后进行超声接收信号接收处理的部分电路的搭接,以及触发器电路的搭接。之后搭出17kHz的脉冲源后,下课。

晚上又把数码显示和蜂鸣器部分搭出来了,明天分模块测试。8月22日

由于昨天已经把各个模块全部搭好,今天开始分模块测试和模块的联调测试。今天下来调试结果:

超声波发射模块调试通过正常运行,并且接收模块可以接收到相应信号,在示波器上显示相应波形。40kHz的555脉冲源正常,2Hz的555脉冲源正常,经过LS00运算后,到LF347正常驱动T40-16,而相应的R40-16接收到反射的超声波信号后,产生较大幅值的波形(较之原有的干扰信号),可以通过放大,与阈值电压比较后得到相应的脉冲信号(没有接收到信号时,信号为0,大于阈值电压,最终输出低电平信号-0.7V;接收到信号后,信号为负,小于阈值电压,最终由于稳压管稳压后输出高电平5V)。即,当调整出较好的阈值电压后接收到超声信号后会产生相应的上升沿信号。

对于闸门信号的作用部分,由74LS74双上升沿D触发器来完成。对2Hz脉冲信号进行微分运算,上升沿时给出正脉冲,经由40106COMS施密特反相器可以得到一直是高电平闸门信号时给出低电平和一直是低电平闸门信号时给出高电平的信号。将LS74的置高端接前者信号,给出低电平脉冲时D触发器被置高,而只有CLK信号给出上升沿后才能将D触发器置低。

!!但是输入信号都测出来了,输出不对哎有木有 所以明天LS74是重点哎有木有!!

而后是计数器显示模块,需要有17kHz的555脉冲源,搞定。与经由闸门信号控制锁存后的Q输出端进行逻辑运算(LS00),结果输出到LS90中进行计数并在数码管中显示。同时从计数的信号端中做组合逻辑实现低于0.2m时报警。同时计数器的清零信号由闸门信号微分运算后COMS施密特反相器整形后得到。

开始没有产生555脉冲信号的时候,将CLK和CLR用学习机模拟,效果很好,接上555后发现数码管不稳,有木有!!

模拟地和数字有干扰有木有!!想办法有木有!!自03 胡效赫 2010012351 数电电子技术实验考核的时候就有这个问题木有解决,明天上午一定要解决有木有!!

8月23日

今天来到实验室后重新整理了思路,调整了心态。理清了各个模块的作用关系,由最初级开始逐级测试,当确定D触发器的输入信号均正常,并且接线正常,而输出不正常,所以果断换了74LS74。突然之间信号变好了,然后数码管开始工作了,无比的开心。直接找助教验收基本实验,助教发现信号并不是很稳定,然后感觉计数器和数码管显示部分仍有杂波干扰,在VCC和GND之间接入0.1uF,信号稳定了,基本实验调试通过。好开心,有木有。而后通过改变阈值电压,使阈值电压接近0V,将距离较远处的返回信号,也作为有效信号。然后通过了提高要求。搞定!

第四篇:超声波测距模块总结报告

超声波测距模块总结报告

董升亮

Senscomp公司的超声波测距系统包括两个部分,分别是测距模块(6500)和静电换能器(600)。前者驱动后者,后者负责发送和接收超声波,之后用户便可根据超声波发收这一时间间隔计算出与目标物之间的距离。经过多次户外实验与优化,目前可实现一片单片机对4个超声波测距模块的控制,并且每个的探测距离都可达到10米左右。

一、超声波测距原理

超声波是指频率高于20khz的机械波。为了以超声波作为检测手段,必须产生超声波和接收超声波。完成这种功能的装置就是超声波换能器或超声波探头。超声波换能器有发送器和接收器,600系列换能器同时具有发送和接收声波的作用。超声波换能器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。

超声波测距原理也很简单,就是测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就可以得到二倍的声源与障碍物之间的距离。

即:D=C*T/2。其中,D为600换能器到障碍物之间的距离;C为超声波此时在空气中的传播速度;T为超声波的发收时间。在空气中,声波的传播速度一般受温湿度的影响,在没有温湿度传感器或对测量精度要求不高的情况下,一般取340m/s。在以上几次实验中,程序中采用C=340m/s。

二、6500驱动模块

我们所采用的这款6500驱动模块,手册上说可以实现6英寸-35英尺(0.152m-10.668m)的准确测距,但由于所采用的600模块是自发自收的,在发送过程中从障碍物返回的信号就无法捕获。另外,超声波换能器有一定的惯性,发送结束后还留有一定的余振,这种余振经换能器同样产生电压信号,扰乱了系统捕捉返回信号的工作。因此,在余振未消失以前,还不能启动系统进行回波接收(要等待2.38ms),以上两个原因造成了超声传感器具有测量一定的测量范围。模块最近可以到测量37cm。当然实际实验过程中会在这些标准上稍有浮动。该模块操作简单,但要特别注意的是它的噪声干扰问题。该模块共有九个引脚如图1。

图1

1引脚:接地

2引脚:BLNK,多返回模式时,用于控制(拉低)ECHO信号 3引脚:不用

4引脚:INIT,拉高启动模块发射超声波。拉低时,ECHO也同时拉低 5引脚:不用

6引脚:OSC,6500模块内部时钟,一般用不到

7引脚:ECHO,当超声波遇到障碍物返回至换能器时,该引脚拉高。该引脚需要一个470KΩ的电阻上拉至Vcc 8引脚:BINH,可使能探测37cm以内的障碍物 9引脚:Vcc,4.5V-6.8V供电,我们采用5V供电 说明:在这9个引脚当中,我们只用到其中的4个(Vcc,GND,INIT,ECHO)。另外一点值得强调的是,由于BLNK和BINH受内部噪声影响比较大,因此这两个引脚直接连接到GND。并且6500模块与单片机控制板之间的连接排线长度尽量要短。

6500驱动模块具有两种工作方式。第一种工作方式测量的是换能器到其前方第一个障碍物之间的距离。第二种工作方式可探测多个障碍物的回波,其区分能力为间隔3英寸以上的障碍物。

图2 单返回模式,控制时序实例

三、600系列换能器

此超声波换能器是集发送与接收一体的一种换能器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4khz、电压为300vacpk-pk左右的方波电压时,薄片以同样的频率震动,从而产生频率为49.4khz的超声波。当接收回波时,6500内有一个调谐电路,使得只有频率接近49.4khz的信号才能被接收,而其它频率的信号则被过滤。

换能器在将电信号转化成声波的过程中,所产生的声波并不是理想中的矩形,而是一个类似花瓣一样形状,发送超声波的波束角大约为30度,见图3。在实际应用中,该波束应为一个立体的圆锥形,这也导致两个问题:

1)随着探测距离的延长,探测障碍物方位的准确性下降。即无法对障碍物进行准确定位。

2)探测距离越远,能量扩散越严重,在障碍物不理想的情况下,返回信号减弱,以至于在标准探测范围内,返回脉冲也达不到600换能器的判断阈值。

图3

四、单片机控制模块

系统采用PIC30F4011控制芯片,同时集成串口和CAN总线两种数据传输方式。该电路共配置了8个6500模块接口,目前已经用到了其中的4个。为了减小相互之间的干扰,每个模块之间都采用了LC滤波电路。同时在每个模块的电源到地之间增加了一个1uF的旁路电容和一个470uF的铝电解电容,前者用来消除内部干扰对BINH引脚的影响,后者起储能作用,这两者视情况可选择使用。其电路连接如图4,PCB布线如图5。两者中的电感用相近引脚间距的电容做了代替。

图4

图5

五、程序控制模块

由于该单片机控制多个超声波测距模块,因此在编程过程中要首先考虑到各个模块之间的相互影响,最基本的要求是某一个模块突然的硬件错误不会对其他模块的正常运行造成影响。最初考虑到在uCOS-II上进行编程,但实施过程中发现要借用互斥信号量与多个邮箱,任务多且复杂,既费时又费力,并且会对超声波往返时间的计时产生影响,同时也使对程序的阅读更加困难。最终放弃了这个方案。

新方案采用多重循环来进行模块控制调度,为避免陷入死循环,程序中采用了goto语句。在此程序中,我们定义了一个整型变量Con6500,让他分别等于1、2、3、4来分别控制这四个模块,同时还用到了3个定时器:

Timer1:用于设置6500模块探测周期。

Timer2:用于记录各个模块超声波往返时间。Timer3:用于防止某一模块超时。

程序中对各个模块的返回引脚均采用查询的方式,整个程序的关键代码如下: int main(void){ //CAN、UART、Timer、IO初始化 Con6500=1;//从第一个模块开始探测 //……

while(1){ StartChk:while(Timer1Lock==1)//有一个6500模块开启

{

while(Con6500==1)//开启的是第一个模块(6500-1)

{

TMR3=0;//为第一个模块计时,以避免其超时

while(1)//查询6500-1返回引脚

{

if(PORTDbits.RD1==1)//ECHO1有返回

{

ECHO1();//完成距离计算及数据发送

LATBbits.LATB8=0;//关闭6500-1超声波换能器

Con6500=2;//下一次6500-2模块发送

Timer1Lock=0;//标记所有模块都关闭

goto StartChk;//等待下一个模块开启

}

else if(TMR3>=WaitTMR3)//如果6500-1超时

{

LATBbits.LATB8=0;//关闭6500-1超声波换能器

Con6500=2;//下一次6500-2模块发送

Timer1Lock=0;//标记所有模块都关闭

goto StartChk;//等待下一个模块开启

}

}

}

while(Con6500==2)//若开启的是第二个模块(6500-2)

{

TMR3=0;//为6500-2计时,避免其超时

while(1)//查询6500-2返回引脚

{

if(PORTEbits.RE1==1)//ECHO2有返回

{

ECHO2();//完成距离计算及数据发送

LATBbits.LATB7=0;//关闭6500-2超声波换能器

Con6500=3;//下一次6500-3模块发送

Timer1Lock=0;//标记所有模块都关闭

goto StartChk;//等待下一个模块开启

}

else if(TMR3>=WaitTMR3)//若6500-2超时

{

LATBbits.LATB7=0;//关闭6500-2超声波换能器

Con6500=3;//下一次6500-3模块发送

Timer1Lock=0;//标记所有模块都关闭

goto StartChk;//等待下一个模块开启

}

}

} //……其它模块

} } } /*定时器1中断服务程序*/

void __attribute__((__interrupt__))_T1Interrupt(void){ IFS0bits.T1IF=0;//清除T1中断标志

if(Con6500==1){

TMR2=0;//超声波收发时间计时开始

LATBbits.LATB8=1;//开启6500-1超声波换能器

Timer1Lock=1;//标记有模块开启

} if(Con6500==2)//判断SonarLock=1是为了防止6500-1不工作

{

TMR2=0;//超声波收发时间计时开始

LATBbits.LATB7=1;//开启6500-2超声波换能器

Timer1Lock=1;//标记有模块开启

} //…… }

六、关于噪声干扰

噪声问题是必须要注意和解决的问题,否则它将影响测距模块的可靠性和准确性,有时甚至会直接导致其无法正常工作。对超声波测距模块产生的干扰主要包括内部干扰和外部干扰。

1、内部干扰

内部干扰主要来自超声波发送时产生的发送脉冲,6500模块的内部电路见图6。

图6 其中TL851是一个数字12步测距控制集成电路。内部有一个420khz的陶瓷晶振,6500系列超声波距离模块开始工作时,在发送的前16个周期,陶瓷晶振被8.5分频,形成49.4khz的超声波信号,然后通过三极管Q1和变压器T1输送至超声波传感器。发送之后陶瓷晶振被4.5分频,以供单片机定时用。在发生脉冲的过

程中,通过示波器观察,会发现在GND和BINH上会有多个尖峰脉冲,其峰峰值有时甚至达到4V,这将导致在发送超声波时,ECHO引脚被突然拉高,从而导致根本无法探测障碍物。其原因为BINH引脚对噪音过于敏感,官方提供的解决办法为将BINH直接连接到地,同时在Vcc与GND之间加1uF的旁路电容。但在实际应用过程中我们发现,即便单个模块调试成功,当将多个6500模块集成在一个板子上同时工作时,仍会有干扰发生从而影响某一个或几个模块的正常工作。经过反复调试,我们发现有必要在6500模块排线的末端加一大容量的铝电解电容来稳定供电电压滤除噪音。

TL852是专门为接收超声波而设计的芯片。因为返回的超声波信号比较微弱,需要进行放大才能被单片机接收,TL852主要提供了放大电路,当TL852接收到4个脉冲信号时,就通过REC给TL851发送高电平表明超声波已经接收。由此可见,当返回超声波信号太弱或者达不到4个返回脉冲时,将不能实现准确测距。

2、外部干扰

外部比较复杂,包括外部事物产生与该超声波类似的噪音;不理想的障碍物对测距的干扰;以及个测距模块之间的相互干扰。

虽然多数超声波传感器的工作频率为50Khz左右,远远高于人类能够听到的频率。但是周围环境也会产生类似频率的噪音。比如,电机在转动过程会产生一定的高频,轮子在比较硬的地面上的摩擦所产生的高频噪音,机器人本身的抖动。这些都将对换能器接收信号造成影响。但这一类噪音出现的几率比较低,有时可以忽略不计。

由于换能器发送的超声波并不是理想的圆柱型,而是开口呈30度的圆锥形。这将导致测距模块对障碍物的方位判断产生误差。即超声波可能会先碰到周围的物体产生返回信号,从而无法准确探测换能器与目标物体之间的距离。这个问题也是在后期实验过程中验证了的。在这种情况下,可采用复合返回模式,但这样又极易造成内部干扰。因此在对测距精度要求不高的情况下,我们还是采用单返回模式。

最后一个要注意的是多模块之间的交叉问题,由于我们所采用的超声波测距模块发射的超声波几乎完全相同,这就导致相互间产生干扰的几率增大,其解决方案为增大模块之间的朝向角,也可以在换能器前加一遮挡物,前提是不影响超声波的发送。

七、实验过程及测试结果分析

实验过程完全没有预想中的那么顺利,看似操作简单的测距模块,至今为止已经耗费了一个多月的时间。总结起来,大部分时间都耗费在了消除噪音上。

第一阶段主要是对第一套测距模块的测试和相关电路的设计修改。但在一开始就遇到了麻烦,主要原因归结于自己的粗心大意和不重视官方材料。以至于在电路设计时忽略了ECHO引脚的上拉电阻,导致无法测得返回信号。由于英语水平并不很高和当时的习惯问题,并未意识到从官方网站上查找相关资料,而是仅仅局限于对电路电气规则的检查。

第二阶段主要集中于对噪声的发现与处理。在相关电路及元件问题解决后,模块仍无法正常工作,具体表现就是ECHO引脚的突然拉高从而导致无法进行正常测量,这也是该超声波测距模块最常见的问题。其原因是BINH引脚对噪声过于敏感,而噪声有来源于模块内部,即在每次发送超声波时产生的脉冲会对供电电压造成影响。经过示波器观察会发现在BINH引脚和GND引脚上有峰峰值(大约为3.6V)较大脉冲信号。我们采取的主要解决办法是将BINH和BLNK引脚在排线末端直接

连接到地,并在Vcc与GND之间加一个1uF的滤波电容。后期实验我们发现,即使这样也会存在问题。

第三阶段主要是对多个6500模块控制程序的编写。由于PIC30F4011控制芯片只有两个外部中断引脚,于是我们选择用查询的方式监测返回信号。经过多次尝试,最终放弃了在操作系统上进行编程。新方案的详细介绍见第五部分:程序控制模块。

第四阶段为对4个模块的组装与调试。由于有先前积累的经验与教训,这一阶段耗时相对较少,主要问题仍然是噪音处理,将个别模块1uF的滤波电容换成了330uF,主要用来稳定改模块的供电电压。实验时,我们将四个6500模块和单片机控制电路安装在小车上,其中两侧各一个,前方两个。为了减震,将4个模块和控制电路固定在了一块泡沫砖上。实验场地前期选在一楼东门口的丁字路口上,后期沿路行进至环校公路。各个6500模块的探测周期设定为1次/秒。

静态测量时,地点选在东门口,测试数据稳定,效果较好。后来选取一10米左右障碍物(楼梯),该障碍物形状很不规范。对4个6500模块进行分别测量测试数据基本稳定,但偶尔会无返回信号,测试数据见附件。在移动测量时,发现有时测得的数据并不反映真实情况,特别是在周围环境比较复杂的情况下,会无法探测到与前方障碍物之间的真正距离。但总体来讲,效果还可以。另外还有一点需要注意,那就是车子不能移动太快,否则将会影响超声波返回信号的接收。

实验至此还存在的不足是,其中的一个模块仍不很稳定,其内部干扰有时会影响正常。一般断电重启就能解决。

八、心得体会

经过这么长时间的锻炼,得到的最重要的一点体会是:不能急功近利,遇事不能浮躁,要想解决问题最终还是要靠静下心来仔细分析。遇到困难不能退缩更不能半途而废,不懂的可以上网查,这也是一个不断学习和不断积累经验的过程。另外实验室的设备齐全,要学会充分利用。

对于烧毁的那个三极管Q1,其原因最终还要归结于TL851芯片的XMIT引脚脉冲持续时间过长,导致Q1长时间导通,而三极管的集电极与发射极又直接与Vcc和GND相连,从而致使短路电流持续时间过长,超过三极管允许极限,进而将其烧毁。

九、附件说明

附件1为东门口静态测试,单位为米。为了便于观察,对串口输出做了规范,1

至4列分别对应1至4个模块测得的数据,空白单元代表无返回数据。

附件2为静态远距(9m-10m)测试结果。

附件3为由东门口行至南楼西侧以及返回所得数据。附件4为该测距系统的相关电路与PCB板图。里面电感用相同引脚电容做了代替。

附件5为PIC30F4011芯片的4模块控制程序。

十、补充

ECHO引脚会出现一个尖峰脉冲影响对返回时间的判断,需要接一104电容加以滤除。

第五篇:超声波测距试验心得(精选)

超声波测距试验心得

/*............................IO口可以由高电平接地拉成低电平,但是不能由低电平接Vcc拉成高电平.............................*/ #include #include float distance;Sbit led=P2^7;sbit echo=P1^0;sbit trig=P3^4;/* 软件延时函数,延时时间(t*10)us */ void delay10us(unsigned char t){ do { _nop_();_nop_();_nop_();_nop_();_nop_();

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

} while(--t);} void main(){

EA=1;//开总中断

EX0=1;//开外部中断0 TMOD=0xf1;//采用定时器0的定时模式的工作方式1 /*..............................................这里有一个疑问就是,必须采用定时器的定时模式才能

将TH0和TL0里的数值读出来,而采用计数模式(将0xf1改成0xf5)

就不行

...............................................*/

IT0=1;//外部中断为负跳变触发方式

TH0=0;//定时器高8位和低8位都赋值为0 TL0=0;while(1){ trig=1;//单片机给trig引脚一个20微秒的触发信号

delay10us(2);trig=0;if(distance<0.1)//如果障碍物距离小于10cm,则亮第一位LED led=0;else led=1;

delay10us(6);//延时60微秒

} } /*.....................................................中断服务程序,外部中断的中断服务程序的执行时间可以很长,没有时间的限制,不像定时器中断,中断服务程序执行时间有 一定要求,即在下一次中断请求到来之前本次中断必须执行完毕。.......................................................*/ void wb0()interrupt 0 { TR0=1;//启动定时器,TH0和TL0开始计数

while(echo);//当返回脉冲信号(echo上的高电平脉冲)结束时关闭定时器

TR0=0;

distance=(TH0*256+TL0)*1.08507/1000000*340/2;//计算障碍物距离

//distance=(定时器高8位*256+低8位)*一个机器周期*声速/2 TH0=TL0=0;//清零TH0和TL0,准备下一次测距

}

解释:在不加Q2三极管的情况下你,即Echo直接连接到单片机的IO口,单片机将会检测不到Echo输出的高脉冲信号。单片机的管脚在没有设定的情况下,默认输出高电平。然后看超声波测距模块的时序图,Echo在没有给触发信号的情况下保持低电平,有了触发信号之后,Echo输出一个高电平。按道理说如果将Echo引脚直接连接在单片机的IO口上,该IO口将会被Echo引脚拉为低电平,在Echo输出高脉冲的时候,单片机IO口保持原来的高电平。当Echo为低电平的时候,那么该IO口就会向Echo引脚灌电流。但是在实际电路中,Echo并不能将IO口拉低,我猜原因是Echo接受灌电流的能力太小,灌入的电流过大,导致该脚电平为不确定状态。解决的措施有两个,第一就是直接用外部中断引脚检测“低脉冲”(因为外部中断选用的触发方式是下降沿触发,所以原来的高脉冲信号要加一个三极管反相器,就变成了低脉冲),这样就变成IO口检测低电平了。第二就是上图里的方法,不将Echo直接连接在单片机的IO口上,而是将Echo通过一个PNP型的三极管连接在单片机IO口上。这样当Echo输出低时,三极管导通,单片机的这个IO口就会被三极管的集电极拉为低。当Echo输出高脉冲时,三极管截至,该IO口通过上拉电阻R4保持默认的高电平。这就解决了Echo接受灌电流能力不够的问题。

2016-3-13 张海波

下载基于STM32的超声波测距word格式文档
下载基于STM32的超声波测距.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    超声波测距方案流程图[精选]

    超声波测距的具体方案流程图 距离显示LED发射电路缓冲器高频振荡器接受电路放大器比较器单片机声光报警模块定时器 该方案采用超声波测距系统,超声波的优点如下: 超声波指向......

    超声波测距报警器文献综述

    超声波测距报警器的设计与实现 超声波测距报警器的设计与实现 摘要:本系统采用了单片机最小系统、超声波模块、显示模块、报警模块等。超声波测距作为一种传统且使用的非接触......

    HC_SR04超声波测距模块资料范文合集

    本模块因生产批次不同有绿色和蓝色,电路和质量完全一样的,如客户未作特殊要求,我们默认发绿色底板的模块。 1、本模块性能稳定,测度距离精确。能和国外的SRF05,SRF02等超声波测距......

    超声波测距外文翻译文献[5篇材料]

    超声波测距毕业论文中英文对照资料外文翻译文献 超声测距技术在工业现场、车辆导航、水声工程等领域都具有广泛的应用价值,目前已应用于物位测量、机器人自动导航以及空气中......

    一种基于超声波的测距系统[大全5篇]

    摘要 随着科技的快速发展,人们对于超声波的认知已经变的越来越普遍,在近几年来超声波应用技术已经变得成熟起来了,超声波具有定向性、穿透性、反射性以及对于某一方向的集束性......

    超声波测距毕业论文中英文对照资料外文翻译文献

    超声波测距毕业论文中英文对照资料外文翻译文献 超声波测距 中英文对照资料外文翻译 超声测距系统设计 原文出处:传感器文摘 布拉福德:1993年 第13页摘要:超声测距技术在工业......

    扫描隧道显微镜(STM)实验报告

    实验报告 姓名 小编班级 01**101 学号 011**01** 组别实验日期 2011-11-23 课程名称大学物理实验同实验者指导教师成绩 扫描隧道显微镜(STM) 一.实验目的 1掌握和了解量子力学......

    STM车间实习总结二

    STM车间实习总结(二)在本周内,我继续提升自己在相关元件、设备上的认识,并且提升了自己的动手能力,进行了手工印制PCB板、手工贴件、GBA元件维修、焊接技术提升以及PCB板维修等工......