问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Arduino超声波测距实验教程

创作时间:
作者:
@小白创作中心

Arduino超声波测距实验教程

引用
1
来源
1.
http://www.dzkfw.com.cn/jichu/Arduino/10178.html

超声波测距是一种常见的非接触式测量方法,广泛应用于各种场景中。本实验将使用Arduino UNO开发板和超声波传感器,通过编程实现一个数显超声波测距仪。

一、实验目的

  1. 熟悉超声波传感器基本性能
  2. 掌握超声波传感器测距原理
  3. 掌握超声波测距的编程方法
  4. 编程实现一个数显超声波测距仪

二、实验设备与环境

Arduino UNO套件、Arduino IDE、计算机、超声波传感器、1602 LCD显示屏等

三、实验重点

  1. 超声波测距编程
  2. 编程实现超声波测距的LCD数字显示

四、实验难点

  1. 超声波测距原理代码

五、实验内容

5.1 实验任务

任务描述:超声波传感器的使用与参数测定;脉宽测量函数pulseIn()的使用;编程实现超声波测距与LCD显示。

5.2 实验原理

  1. 超声波传感器

超声探头性能指标

探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同的,我们使用前必须预先了解它的性能。超声波传感器的主要性能指标包括:

(1) 工作频率:工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。

(2) 工作温度:由于压电材料的居里点一般比较高,特别是诊断用超声波探头使用功率较小,所以工作温度比较低,可以长时间地工作而不失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。

(3) 灵敏度:主要取决于制造晶片本身。机电耦合系数大,灵敏度高;反之,灵敏度低。

(4) 指向性:超声波传感器探测的范围。

超声波具有频率较高,沿直线传播、方向性好、绕射小、穿透力强、传播速度慢(约340m/s,与声速相同)等特点。

  1. 超声波测距原理

由超声波发射探头发出的超声波脉冲,经媒质(空气)传到物体表面,反射后通过媒质(空气)传到接收探头,测定出超声脉冲从发射到接收所需的时间,根据传输媒质中的声速,计算从探头到物体表面之间的距离。

  • 距离的计算:

设探头到物体表面的距离为L,超声在空气中的传播速为v,从发射到接收所需的传播时间为t

测定距离:L = v×t/2。测出时间t,求出距离L。

  • 超声波测距信号电平:

(1) 传感器Trig引脚触发信号电平脉冲

// 给TrigPin引脚一个10us的高电平触发脉冲

DitigalWrite(TrigPin,LOW);

delayMicroseconds(2);

DitigalWrite(TrigPin,HIGH);

delayMicroseconds(10);

DitigalWrite(TrigPin,LOW);

(2) 传感器被触发后,发射探头发出8个40KHz检测超声波脉冲,接收探头自动检测回波信号

(3) 回波信号检测,Echo引脚输出超声波从发出到返回持续时间t的高电平信号

pulseIn()函数检测电平持续时间

语法:pusle(EchonPin,HIGH|LOW)

参数说明:EchonPin,检测电平引脚;HIGH|LOW,读取引脚的高电平或低电平脉冲

continueTime = pulseIn(EchoPin,HIGH)//检测高电平持续时间(单位us)并赋值给变量

  1. 1602 LCD显示屏

显示屏电路、显示屏库函数(略)

  1. Arduino超声波测距电路:

5.3 实验内容

  1. 超声波传感器参数测试

步骤1:如图所示,连接电路

步骤2:编写超声波测距、串口显示程序程序功能:间隔500ms测定一次距离;串口监视器以cm为单位实时显示测定的距离值

步骤3:程序调试(略)

  1. LCD数字显示超声波测距

步骤1:如图所示,连接电路

步骤2:数字显示超声波测距程序代码实现功能:超声波测距;1602 LCD实时显示测定距离的值

步骤3:程序调试

源代码:

#include <LiquidCrystal.h>
#define LM35 A0
#define Trig 8 
#define Echo 9 
float cm; 
float temp;
LiquidCrystal lcd(12,11,5,4,3,2); 
int val = 0; 
void setup()
{
 lcd.begin(16,2); 
 lcd.print("Welcome to use!"); 
 delay(1000); 
 lcd.clear(); 
 pinMode(Trig, OUTPUT);
 pinMode(Echo, INPUT);
}
void loop()
{
 digitalWrite(Trig, LOW); 
 delayMicroseconds(2); 
 digitalWrite(Trig,HIGH); 
 delayMicroseconds(10); 
 digitalWrite(Trig, LOW); 
 temp = float(pulseIn(Echo, HIGH)); 
 cm = (temp * 17 )/1000; 
 lcd.setCursor(0,0); 
 lcd.print("Now Distance:"); 
 lcd.setCursor(2,1); 
 lcd.print(cm); 
 lcd.print("cm"); 
 delay(1000); 
}

5.4 实验结果

结论:通过编程连接电路实现了显示距离的LCD

反思:通过本次实验,熟悉了超声波传感器基本性能;掌握超声波传感器测距原理;掌握超声波测距的编程方法。本次实验结果就是通过编程连接电路实现了显示距离的LCD。最后,在今后的学习中,还需要继续努力。

作品:

5.5 思考题

  1. 思考超声波倒车雷达警报器实现原理,自己可否实现一个简易的超声波倒车报警器?
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号