【安信可BW16-Kit】3、HC-SR04超声波测距
# 【安信可BW16-Kit】3、HC-SR04超声波测距## 1、 HC-SR04 简介
HC-SR04超声波测距传感器是一种利用超声波来测量距离的电子元件。它由一个超声波发射器和一个超声波接收器组成,发射器发出超声波脉冲,接收器接收反射回来的超声波脉冲,并计算出超声波脉冲从发射到接收的时间。通过已知超声波在空气中的传播速度,就可以计算出超声波脉冲传播的距离,从而得到目标物体的距离。
HC-SR04超声波测距传感器具有以下特点:
* 测量范围:2cm~400cm
* 分辨率:0.3cm
* 测量精度:±3mm
* 工作电压:5V
* 工作电流:15mA
* 工作温度:-20℃~+80℃
* 尺寸:45mm x 20mm x 15mm
HC-SR04超声波测距传感器有四个引脚:
* VCC:电源正极
* GND:电源负极
* TRIG:触发引脚
* ECHO:回波引脚
HC-SR04超声波测距传感器的使用方法如下:
1. 将VCC引脚连接到5V电源,GND引脚连接到电源负极。
2. 将TRIG引脚连接到微控制器的数字输出引脚。
3. 将ECHO引脚连接到微控制器的数字输入引脚。
4. 在微控制器上编写程序,向TRIG引脚发送一个高电平脉冲,持续时间为10μs。
5. 等待ECHO引脚上的电平变为高电平,并记录下高电平持续的时间。
6. 通过已知超声波在空气中的传播速度,计算出超声波脉冲传播的距离,从而得到目标物体的距离。
HC-SR04超声波测距传感器可以广泛应用于机器人、智能家居、工业自动化等领域。
## 2、 连线
## 3、 程序
```
const int trigger_pin = 12; // 定义触发引脚为数字引脚12,用于向超声波传感器发送触发信号。
const int echo_pin = 11; // 定义回声引脚为数字引脚11,用于接收超声波传感器返回的信号。
void setup() {
Serial.begin(115200); // 初始化串口通信,设置波特率为115200,用于数据输出。
pinMode(trigger_pin, OUTPUT); // 设置触发引脚为输出模式,用于发送触发信号给超声波传感器。
pinMode(echo_pin, INPUT); // 设置回声引脚为输入模式,用于接收超声波传感器返回的信号。
}
void loop() {
float duration, distance; // 定义两个浮点变量,duration用于存储回声信号的持续时间,distance用于存储计算出的距离。
digitalWrite(trigger_pin, HIGH); // 将触发引脚设为高电平,开始发送超声波。
delayMicroseconds(10); // 等待10微秒,确保超声波信号发送完毕。
digitalWrite(trigger_pin, LOW); // 将触发引脚设为低电平,停止发送超声波。
duration = pulseIn(echo_pin, HIGH); // 测量回声引脚高电平的持续时间,即超声波发射出去并返回所需的时间。
distance = duration / 58; // 根据超声波的速度(约340m/s)和回声时间计算距离,单位为厘米。这里使用的58是基于公式distance = (duration / 2) / 29.1的简化,考虑到声波往返距离和速度转换成厘米的因素。
Serial.print(distance); // 通过串口输出计算出的距离值。
Serial.println(" cm"); // 添加单位“cm”并换行。
delay(80); // 稍作延迟,减缓测量频率,防止数据输出过于频繁。
}
```
## 4、 效果
<p>效果可以测一个具体的距离看看</p>
页:
[1]