欢迎来到军工软件开发人才培养基地——学到牛牛

超声波模块

时间:2024-05-06 07:01:10 来源:学到牛牛

 

1.png

 

HC-SR04超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。使用HC-SR04超声波距离传感器为你的Arduino项目提供强大的功能,该传感器可以报告最远13英尺远的物体范围。它们具有低功耗(适用于电池供电的设备),价格低廉,易于链接的特点。

HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40KHz超声波脉冲。接收监听发射的脉冲,如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。

 

基本工作原理: 

(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平信呈。 

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

(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声 

波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

 

电气参数:

2.png

超声波时序图:

3.png

 

 

示例代码:

 

#define  TRIG  10

#define  ECHO  11

#define  MAX DISTANCE 400

 

Float distance;

Void getDistance()

{

Static uint32_t  timer;

If(timer < millis())

{

digitalWrite(TRIG, HIGH);

delayMicroseconds(10);

digitalWrite(TRIG, LOW);

distance = distance * 0.5 + ((((float)pulseIn(ECHO, HIGH, MAX_DISTANCE * 58.8)) / 58.8) * 0.5);

timer = millis() + 50;

}

}

 

Void setup()

{

Serial.begin(9600);

pinMode(TRIG, OUTPUT);

pinMode(ECHO, INPUT);

digitalWrite(TRIG, LOW);

}

 

Void loop()

{

getDistance();

Serial.printin(distance);

}

 

串口打印:

4.png