Ultrasonic Sensor(HC-SR04) CN

这是一种利用超声波来测量距离的传感器。
根据环境不同,测量范围可能会有误差。
通过以下顺序测量距离: [超声波发射 -> 超声波反射 -> 接收反射的超声波]
传感器工作原理
1. 通过 trig 引脚发射超声波。
2. 超声波发射完成后,echo 引脚保持 HIGH 状态。
3. 当接收到反射的超声波时,echo 引脚变为 LOW。
4. 使用 pulseIn(echoPin, HIGH); 获取超声波往返的时间。
5. 代入公式计算距离。
距离测量公式
| 超声波速度 | 340m/s |
| 超声波往返时间 | x |
| 与物体的距离 | y |
规格参数
- 工作电压:5V
- 工作电流:15mA
- 工作频率:40Hz
- 超声波频率:40kHz
- 最大测量距离:4m
- 最小测量距离:2cm
- 测量角度范围:15 度
- 触发输入(Trigger Input):10µs TTL 脉冲
所需硬件
- 超声波传感器(HC-SR04)
- Arduino开发板
- 杜邦线
连接方式
Trig 和 Echo 引脚可以任意设置(本文示例中使用 D3 和 D4 引脚)

| HC-SR04 | Arduino UNO |
| GND | GND |
| VCC | 5V |
| Trig | D3(可更改) |
| Echo | D4(可更改) |
示例代码
以下为使用串口监视器查看距离的示例代码。
#define trigPin 3
#define echoPin 4
// 创建变量用于存储超声波往返时间
double pulseTime;
void setup()
{
// 设置引脚模式
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// 设置波特率为 9600
Serial.begin(9600);
delay(2000);
Serial.println("연결 성공");
delay(500);
// 初始化 trig 引脚
digitalWrite(trigPin, LOW);
}
void loop()
{
// 启动超声波发射
digitalWrite(trigPin, HIGH);
// 持续发射 10 微秒(根据传感器规格)
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 测量超声波往返时间
pulseTime = pulseIn(echoPin, HIGH);
// 计算与物体的距离
double distance_cm = pulseTime * 17 / 1000;
double distance_m = distance_cm / 100;
// 判断是否在有效测量范围内
if ((distance_cm < 400) && (distance_cm > 2))
{
Serial.print("거리(cm) = ");
Serial.println(distance_cm);
Serial.print("거리(m) = ");
Serial.println(distance_m);
Serial.println("--------------------------------------------------");
}
else
{
Serial.println("제품 사용 가능범위 초과");
}
delay(1000);
}