【Arduino实验13 超声波测距】

目录

一、实验目的

二、实验设备与环境

三、实验重点

四、实验难点

五、实验内容

5.1实验任务

5.2实验原理

5.3实验内容

5.4实验结果

5.5思考题


一、实验目的

        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,与声速相同)等特点。

        2.超声波测距原理

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

        距离的计算:

        设探头到物体表面的距离为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)并赋值给变量

        3.1602 LCD显示屏

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

        4.超声波测距电路

5.3实验内容

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

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

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

        步骤3:程序调试(略)

        2.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.思考超声波倒车雷达警报器实现原理,自己可否实现一个简易的超声波倒车报警器?

  • 8
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小花-Soleil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值