打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Arduino Uno + HC

一、器件介绍

(1)器件名称:

     HC-SR04超声波测距模块

(2)主要技术参数:

     1、使用电压:DC5V;         

     2、静态电流:小于2mA;        

     3、电平输出:高5V;              

     4、电平输出:底0V;

     5、感应角度:不大于15度;

     6、探测距离:2cm-450cm 7:高精度可达0.2cm; 

     7、接线方式,VCC、trig(控制端)、echo(接收端)、GND。

(3)工作原理:

     1、采用IO触发测距,给至少10us的高电平信号;      

     2、模块自动发送8个40khz的方波,自动检测是否有信号返回;

     3、有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时

        间。测试距离=(高电平时间*声速(340M/S))/2。

    超声波传感器主要利用多普勒原理,通过晶振向外发射超过人体能感知的高频超声波,

一般典型的选用25~40kHz波,然后控制模块检测反射回来波的频率,如果区域内有物体运动,反射波频率就会有轻微的波动,即多普勒效应,以此来判断照明区域的物体移动,从而达到控制开关的目的。
    超声波的纵向振荡特性,可以在气体、液体及固体中传播且其传播速度不同;它还有折射和反射现象,在空气中传播其频率较低,衰减较快,而在固体、液体中则衰减较小,传播较远。超声波传感器正是利用超声波的这些特性。超声波传感器有敏感范围大,无视觉盲区,不受障碍物干扰等特点,这项技术已经在商业和安全领域被使用25年多了,已经被证
明是检测小物体运动最有效的方法。

    ULTD5N-350超声波测距模块,可提供3cm--3.5m的非接触式距离感测功能,该模块包括了超声波发射器、接收器与控制电路。其基本工作原理为给予此超声波测距模块一触发信号后发射超声波,当超声波投射到物体而反射回来时,模块输出一回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。 

(4)应用产品领域:

      飞行器测距、机器人避障、公共安防、停车场检测等。

 (5)管脚图:



二、测试实验

(1)实验目的:

     运用超声波测距模块实行简单测距。

(2)线路连接(理论):

 (3)线路连接(实际):

      暂缺

 (4)运行代码:

const int echopin=3; // echo接3端口
const int trigpin=2; // trig接2端口
int led = 10; // led灯接10端口
void setup()
{
 Serial.begin(9600);  
  pinMode(echopin,INPUT); //设定echo为输入模式
  pinMode(trigpin,OUTPUT);//设定trig为输出模式
  pinMode(led,OUTPUT);//设定led为输出模式
}

void loop()
{
  digitalWrite(trigpin,LOW);
  delayMicroseconds(2);
  digitalWrite(trigpin,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin,LOW);//发一个10ms的高脉冲去触发TrigPin
  float distance =pulseIn(echopin,HIGH);//接收高电平时间
  distance = distance/58.0;//计算距离
  Serial.print(distance); //输出距离
  Serial.println(“cm”); //输出单位
  delay(60);  //循环间隔60uS
}

 (5)操作过程中出现的问题及解决方案:

      1、Arduino Uno上的指示灯无法正常闪烁,原因:代码出现问题,重新寻找代码;

      2、Arduino代码无法编译,原因:代码出现问题,目前能力无法对此进行更改,所

         以重新寻找代码;

      3、采集信号时出现负值现象,原因:障碍物与模块距离过近或者采集信号频率过高;

 

三、拓展型实验:

 (1)实验目的:

      当超声波测距模块前10cm内有障碍物时,LED能持续发光。

 (2)线路连接(理论):





 (3)线路连接(实际):



 (4)运行代码:

const int echopin=3; // echo接3端口
const int trigpin=2; // trig接2端口
int led = 10; // led灯接10端口
void setup()
{
 Serial.begin(9600);  
  pinMode(echopin,INPUT); //设定echo为输入模式
  pinMode(trigpin,OUTPUT);//设定trig为输出模式
  pinMode(led,OUTPUT);//设定led为输出模式
}

void loop()
{
  digitalWrite(trigpin,LOW);
  delayMicroseconds(2);
  digitalWrite(trigpin,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin,LOW);//发一个10ms的高脉冲去触发TrigPin
  float distance =pulseIn(echopin,HIGH);//接收高电平时间
  distance = distance/58.0;//计算距离
  Serial.print(distance); //输出距离
  Serial.println(“cm”); //输出单位
  if(distance<10)
  {digitalWrite(led,HIGH);}
 else{digitalWrite(led,LOW);}//距离小于10cm时,led写入高电平
  delay(60);  //循环间隔60uS
}

  (5)测试结果图:



 (6)操作过程中出现的问题及解决方案:

      暂未出现问题。

 (7)时序波形图:



(8)时序图解释:

   从上面的模块时序图可以看出,只需要提供一个短期的10uS脉冲触发信号,超声波即可进行距离测量工作。
    该模块被触发后,超声波发射头将发出8个40kHz周期电平,同时检测回波。一旦检测到有回波信号则输出回响信号。
    回响信号是一个脉冲的宽度成正比的距离对象。可通过发射信号到收到的回响信号时间间隔可以计算得到距离。
    公式: uS/58=厘米;或者uS/148=英寸。
    建议测量周期为60ms 以上,以防止发射信号对回响信号的影响。

 

资料整理人:邓晨涛

实验测试者:邓晨涛,林峻民,彭帆,张世琳(按姓氏首字母排列)



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
arduino的超声波测距和pulseIn()函数的使用说明
Arduino学习笔记A2 
基于Arduino UNO和L298N的避障小车DIY制作
图形化编程娱乐于教,Kittenblock arduino实例,超声波测距
Arduino使用HC-SR04超声波测距
Arduino制作“小雷达”的详细步骤
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服