分享

Arduino Uno + HC

 lixinhecom 2016-06-14

一、器件介绍

(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)管脚图:

Arduino <wbr>Uno <wbr>+ <wbr>HC-SR04超声波测距模块简介及测试实验

二、测试实验

(1)实验目的:

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

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

Arduino <wbr>Uno <wbr>+ <wbr>HC-SR04超声波测距模块简介及测试实验

 (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)线路连接(理论):

Arduino <wbr>Uno <wbr>+ <wbr>HC-SR04超声波测距模块简介及测试实验



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

Arduino <wbr>Uno <wbr>+ <wbr>HC-SR04超声波测距模块简介及测试实验

 (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)测试结果图:

Arduino <wbr>Uno <wbr>+ <wbr>HC-SR04超声波测距模块简介及测试实验

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

       暂未出现问题。

 (7)时序波形图:

Arduino <wbr>Uno <wbr>+ <wbr>HC-SR04超声波测距模块简介及测试实验

(8)时序图解释:

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

 

资料整理人:邓晨涛

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



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多