HC-SR04 超声波测距模块简介


  由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。
  HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路
在这里插入图片描述


电气参数


在这里插入图片描述


基本工作原理


  超声波测距模块——触发信号后发射超声波,当超声波投射到物体而反射回来时,模块输出——回响信号,以触发信号和回响信号间的时间差,来判定物体的距离。
在这里插入图片描述


时序图


在这里插入图片描述


  (1)采用IO口TRIG触发测距,给最少10us的高电平信号。
  (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
  (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间_声速(340M/S))/2;


  以上时序图表明你只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式: uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间_声速(340M/S)/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。
注意:
  1、此模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响模块的正常工作。
  2、测距时,被测物体的面积不少于0.5平方米且平面尽量要求平整,否则影响测量的结果。


除以58的由来:


  由超声波测距的工作原理和时序图,我们可以得到时间的数值,在得到这个数值之后,还需要除以58,这是由于:
在这里插入图片描述


超声波测距模块的使用


实验一:超声波测距


项目要求:


  通过超声波测距模块测得距离障碍物的距离,并通过串口监视器进行输出。


电路搭建


在这里插入图片描述


参考程序


const int TrigPin = 3;  //超声波的触发引脚连接引脚3
const int EchoPin = 2; //超声波的接受引脚连接引脚2
int distance; //定义全局变量,保存距离

void setup() {
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}

void loop() {
digitalWrite(TrigPin, LOW);
delayMicroseconds(2); //本段语句的目的先拉低Trig,然后发送10us的高电平信号去触发超声波传感器
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
distance = pulseIn(EchoPin, HIGH) / 58.0; //本语句的含义是计算距离并换算成厘米
Serial.print(distance);
Serial.println(“cm”);
delay(100);
}

pulseIn函数介绍


在这里插入图片描述


原理图


在这里插入图片描述