超声波模块
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;
电气参数:
超声波时序图:
示例代码:
#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);
}
串口打印: