公告
  
欢迎回来!目前功能升级完毕,
本站限时免费查看资料,请尽快注册账号,后续将限制游客访问~

朕已阅

首页 动态 版块 商城 我的
 退出
游客  
等级:
金币:
经验值:

超声波测距 声波雷达系统 设定阈值报警树莓派Pico开发Python例程

  7393 
 1
RASPI   ydxhuo.com 

一:传感器介绍

Image

HC-SR04 是一款专为近距离精准测距设计的高性价比超声波传感器,基于回声定位原理实现非接触式距离检测,凭借稳定性能、灵活适配性和广泛场景覆盖,成为智能硬件、工业控制与创意电子项目的核心感知部件。

二:声波工作原理

HC-SR04 超声波测距传感器的工作原理基于声波反射测距法,模仿蝙蝠的回声定位机制,通过发射高频超声波、在接收反射的回波,在编程计算声波往返时间来换算目标距离,全程为非接触式检测,不损伤被测量物体。那么在现实生活中实际存在的物体都能被检测到,包括水和玻璃。


核心的工作流程(4 步完整闭环)

  1. 触发测距指令

    控制器(如树莓派 Pico、Arduino、ESP32等单片机)向传感器的引脚发Trig送一个 10μs 以上的高电平脉冲,这个脉冲是启动一次测距的 “指令信号”。收到指令后,传感器内部电路立即进入工作状态。

  2. 发射高频超声波脉冲

    传感器的发射探头(T)会自动发射 8 组频率为 40kHz 的超声波脉冲。那么40kHz 的声波属于人耳无法听到的超声波频段,具备传播方向性强、能量集中的特点,适合近距离精准测距。

  3. 接收反射回波

    超声波脉冲遇到被测物体后会发生反射,形成回波信号。会由传感器的接收探头(R)会捕捉到反射回波,一旦检测到回波,传感器会立即将Echo引脚的电平从低电平切换为高电平。

  4. 编程计算时间差与换算距离逻辑

    Echo引脚的高电平持续时长,就是超声波从发射到接收的往返总时间

    控制器通过捕获这个高电平的时间长度,结合声波在空气中的传播速度,就能计算出传感器到被测物体的距离,核心公式如下:

    • 单程时间 = 高电平持续时间 ÷ 2
    • 距离(cm)= 单程时间(μs)÷ 58
    • 距离(m)= 声波速度(340m/s)× 单程时间(s)

    注:声波速度受温度和不同物体的影响,常温下(20℃)下约为 340m/s,温度每变化 1℃,速度会增减约 0.6m/s。

Image



HC-SR04原理图模块全套资料🛒超声波产品链接

二:硬件接线

以树莓派Pico开发板为例,提醒: 请按下图的引脚标识接线,务必不能接错。如果接错线通电后会导致设备烧毁!

Image

接好线后的实图如下:

Image

三:Python例程

1.编写python代码


hcsr04下载这个hcsr04的源代码上传至树莓派pico文件内,直接运行查看数据(如下图)

如果你还没有搭建好树莓派Python编程环境可参考这个帖子→:如何搭建Python编程环境


Image


2.代码解析

引脚配置:

Trig 引脚配置为输出模式,用于发送触发信号,Echo 引脚配置为输入模式,用于接收回响信号


测量函数:

measure_distance()函数实现了完整的测距逻辑

使用time_pulse_us()函数精确测量 Echo 引脚高电平持续时间

通过公式计算距离,并进行四舍五入处理


距离计算公式:

声速在空气中约为 343.2 米 / 秒 = 0.03432 厘米 / 微秒

超声波往返一次,所以需要除以 2

最终公式:距离(厘米) = 时间(微秒) × 0.0343 ÷ 2


注意事项:

避免在强电磁干扰环境中使用,可能影响测量精度,测量距离过近(<2cm)或过远(>400cm)时会测量不准确,对于光滑平面,测量精度较高;对于柔软或不规则表面,精度可能下降,建议两次测量之间保留至少 50ms 的间隔,避免回声干扰


四:Python编程(进阶)

上面的程序只是测试传感器功能是否正常,我们要再次升级功能让其脱离电脑也能使用,那么我们加个显示屏和报警器。实现将测距数据展现在显示屏上并且可设定低于阈值报警。通过扩展板上的ABCD按键来调节阈值。请严格按下图的引脚标识进行连接,务必不能接错,接错会损坏设备!

1.添加蜂鸣器模块

Image



2.Python编程代码

超声波测距+显示屏源代码下载这个源代码Zip压缩包,在解压出来将里面所有文件全部上传至树莓派pico文件内,直接运行查看数据(如下图)


下载源代码并解压后,上传至树莓派Pico内,通电后可遮挡超声波探头测试距离,距离越近报警声频率越高(如下)

按键功能:A阈值调节,BC加减数字,D保存阈值

 

3.代码解析

引脚配置:

将蜂鸣器配置GP0引脚,输出高电平就能触发报警声


报警功能:

ALARM_THRESHOLD:报警触发阈值(30cm)

MIN_INTERVAL/MAX_INTERVAL:控制蜂鸣器鸣叫间隔的范围


核心逻辑 :根据距离动态调整蜂鸣器频率

1. 报警条件判断 :当距离小于 30cm 时进入报警模式

2. 距离范围限制 :确保距离在 2-30cm 的有效区间内,避免计算异常

3. 频率计算 :ratio:将距离转换为 0~1 的比例(2cm 对应 0,20cm 对应 1),使用四次方关系(ratio**4)计算间隔时间,使近距离的频率提升更显著(非线性变化),蜂鸣器控制:通过高低电平交替产生声音,间隔时间越短,频率越高,非报警状态:距离≥30cm 时,蜂鸣器保持低电平




技术支持(对本页存在疑难问题可联系我们工程师)

联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意

提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...



标签:
作者签名:    楼主  2025-08-03 17:42:29
回复列表
wujun
2F
wujun
8天前 0
不错啊
共0条回复,点击查看回复
【评论】   
Powered by YDXHUO _VERSION
© 2017-2026 跃动芯火版权
您的IP: 216.73.216.47 , 2026-01-27 19:29:53
Powered by YDXHUO _VERSION
© 2017-2026 跃动芯火版权
(17) 分享
分享

请保存二维码或复制链接进行分享

取消
已有0次打赏