您好,欢迎访问三七文档
超声波传感器主讲人:陈寅时间:10/14/2019导入液位测量储油罐分选实验任务说明011、实验任务说明实验目的1.通过超声波测距的实验进一步掌握超声波传感器测距的原理。2.通过超声波测距的实验学会超声波测距传感器的使用。实验效果通过串口可以显示出被测物体与传感器之间的距离。实验环境1.硬件:1块ardiuno开发板、1根USB下载线、1块面包板、1块HC-SR04芯片、跳线若干、1台PC机;2.软件:Windows7/XP、ArduinoIDE软件芯片说明021.说明书——芯片外形一、模块尺寸:45mm×20mm×15mm1.说明书——参数及应用产品参数1:使用电压:DC---5V2:静态电流:小于2mA3:电平输出:高5V4:电平输出:底0V5:感应角度:不大于15度6:探测距离:2cm-450cm7:精度:可达0.2cm应用:机器人避障物体测距液位检测公共安防停车场检测1.说明书——芯片管脚四个管脚:1)5v电源脚(Vcc);2)触发控制端(Trig);3)接收端(Echo);4)地端(GND)1.说明书——芯片工作原理(1)测距原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。(4)测试距离(d)=高电平时间(t)*声速(c)(340M/S)/2;1.说明书——芯片工作原理(2)时序图:实验逻辑及电路031.程序逻辑流程分析:actultrasonic_sensor开始结束trig管脚信号触发控制trig管脚输入为低持续短暂时间控制trig管脚输入为高持续10us模块开始发送波echo管脚开始输出高电平模块收到波echo管脚输出高电平结束取出echo管脚高电平持续时间计算出距离1.程序逻辑初始化部分:constintTrigPin=2;constintEchoPin=3;floatdistance;voidsetup(){//初始化串口通信及连接SR04的引脚Serial.begin(9600);pinMode(TrigPin,?);//要检测引脚上输入的脉冲宽度,需要先设置为输入状态pinMode(EchoPin,?);Serial.println(Ultrasonicsensor:);}1.程序逻辑主函数:voidloop(){//产生一个10us的高脉冲去触发TrigPindigitalWrite(TrigPin,?);delayMicroseconds(2);digitalWrite(TrigPin,?);delayMicroseconds(10);digitalWrite(TrigPin,LOW);//检测脉冲宽度,并计算出距离distance=pulseIn(EchoPin,HIGH)/58.00;Serial.print(distance);Serial.print(cm);Serial.println();delay(1000);}1.程序逻辑pulseIn函数说明:1)pulseIn函数其实就是一个简单的测量脉冲宽度的函数,默认单位是us。也就是说pulseIn测出来的是超声波从发射到接收所经过的时间。2)对于除数58也很好理解,声音在干燥、摄氏20度的空气中的传播速度大约为343米/秒,合34,300厘米/秒。或者,我们作一下单位换算,34,300除以1,000,000厘米/微秒。即为:0.0343厘米/微秒,再换一个角度,1/(0.0343厘米/微秒)即:29.15微秒/厘米。这就意味着,每291.5微秒表示10CM的距离。1厘米就是29.15微秒。但是发送后到接收到回波,声音走过的是2倍的距离,所以换成距离cm,要除以58。当然除以58.3可能更精确。所以我们可以用pulseIn(EchoPin,HIGH)/58.00获取测得的距离。2.实验电路实验步骤041、实验步骤(1)1)超声波传感器的四个管脚分别接到arduino开发板上VCC-5V,GND-GND,Trig-D2,Echo-D4、实验步骤(2)2)将程序烧制到arduino开发板中,打开串口监视器,可以显示出被测物体的距离,并且随着被测物体的移动变化,显示出的距离也跟着变化。
本文标题:超声波测距
链接地址:https://www.777doc.com/doc-1510881 .html