超声波测距_基于超声波测距

2020-02-28 其他范文 下载本文

超声波测距由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于超声波测距”。

超声波测距

超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=340m/s× t / 2。这就是所谓的时间差测距法。本实验利用超声波测得的距离从串口中显示。

元器件清单:

Arduino UNO × 1; USB数据线 × 1 ; 杜邦线若干;

超声波传感器 × 1; 无线蓝牙模块×1;

知识要点:

pulseIn():用于检测引脚输出的高低电平的脉冲宽度。pulseIn(pin, value)pulseIn(pin, value, timeout)Pin---需要读取脉冲的引脚 Value---需要读取的脉冲类型,HIGH或LOW

Timeout---超时时间,单位微秒,数据类型为无符号长整型。

使用方法及时序图:

1、使用Arduino采用数字引脚给SR04的Trig引脚至少10μs的高电平信号,触发SR04模块测距功能;

2、触发后,模块会自动发送8个40KHz的超声波脉冲,并自动检测是否有信号返回。这步会由模块内部自动完成。

3、如有信号返回,Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时,我们能使用pulseIn()函数获取到测距的结果,并计算出距被测物的实际距离。

SR04与Arduino接线示意图:

Arduino示例程序:

/* 功能:利用SR04超声波传感器进行测距,并用串口显示测出的距离值

// 设定SR04连接的Arduino引脚 const int TrigPin = 2;const int EchoPin = 3;float distance;void setup()

{

// 初始化串口通信及连接SR04的引脚

Serial.begin(9600);

pinMode(TrigPin, OUTPUT);

// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态

pinMode(EchoPin, INPUT);

Serial.println(“Ultrasonic sensor:”);}

void loop(){

// 产生一个10us的高脉冲去触发TrigPin

digitalWrite(TrigPin, LOW);

delayMicroseconds(2);

digitalWrite(TrigPin, HIGH);

delayMicroseconds(10);

digitalWrite(TrigPin, LOW);

// 检测脉冲宽度,并计算出距离

distance = pulseIn(EchoPin, HIGH)/ 58.00;

Serial.print(“The distance is “);

Serial.print(distance);

Serial.print(“cm”);

Serial.println();

delay(1000);}

连线实物图:

下载完程序后,打开串口监视器,并将超声波传感器对向需要测量的物体,即可看到当前超声波传感器距物体的距离,如下图:

《超声波测距.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
超声波测距
点击下载文档
相关专题 基于超声波测距 超声波 基于超声波测距 超声波
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文