Skip to content

HCSR04 模块

模块介绍

HC-SR04 超声波传感器驱动类,用于测量距离。测距范围:2cm ~ 400cm,适用于避障、测距、定位等应用场景。

硬件引脚说明

引脚名称全称/含义接线颜色功能描述
TrigTrigger/触发黄色触发信号引脚,用于发送超声波脉冲(输出模式)
EchoEcho/回响绿色回响信号引脚,用于接收超声波回波(输入模式)
VCCVoltage/电源红色电源电压输入(5V)
GNDGround/地线黑色接地引脚,完成电路回路

初始化参数

参数类型默认值说明
trig_pinPin触发信号引脚(machine.Pin实例)
echo_pinPin回响信号引脚(machine.Pin实例)
echo_timeout_usint30000等待回声信号的最大时间(微秒),默认约 5 米

导入和实例创建

python
from machine import Pin
from hcsr04 import HCSR04

# 初始化超声波传感器
sensor = HCSR04(trig_pin=Pin(14), echo_pin=Pin(12))

核心属性方法

属性或方法参数返回类型说明
get_distance()float获取当前测量的距离值(厘米)
distancefloat只读属性:等同于 get_distance(),返回当前距离值(厘米)

使用示例

基本测距

python
from machine import Pin
from hcsr04 import HCSR04
from time import sleep_ms

# 初始化超声波传感器
sensor = HCSR04(trig_pin=Pin(14), echo_pin=Pin(12))

while True:
    distance = sensor.get_distance()
    print(f"当前距离: {distance:.1f} cm")
    sleep_ms(500)  # 配合延时使用,防止程序过载

使用属性访问

python
from machine import Pin
from hcsr04 import HCSR04
from time import sleep_ms

# 初始化超声波传感器
sensor = HCSR04(trig_pin=Pin(14), echo_pin=Pin(12))

while True:
    # 使用distance属性获取距离
    print(f"当前距离: {sensor.distance:.1f} cm")
    sleep_ms(500)

注意事项

引脚要求

  • Trig 引脚需支持输出模式,Echo 引脚需支持输入模式

参数范围

  • 有效测距范围为 2cm ~ 400cm,超出范围可能返回异常值

使用技巧

  • 在 while True 循环中请配合延时函数使用,防止程序过载
  • echo_timeout_us 参数影响最大测距距离,可根据实际需求调整
  • 超声波测距受温度、湿度等环境因素影响,建议在稳定环境中使用