概要:用 HC-SR04 测距,并把距离映射为远绿近红的 LED 语义。
核心能力:Trig/Echo、阈值 · 可见结果:串口距离;远绿近红
本章代码目录:
code/chapter-06/
上传示例:mpremote connect $PORT cp code/chapter-06/*.py :(在章节目录外按实际路径调整)
学习目标
- 理解 Trig / Echo 与距离换算。
- 处理无回波 / 超时。
- 用阈值驱动灯光语义。
- 牢记 Trig/Echo 不可对调。
内容要点
- time_pulse_us 测脉宽。
- ≥阈值绿灯;<阈值红灯频闪;无效双灭。
- 控制测距周期,避免阻塞过久。
代码说明
| 文件 | 简要说明 |
|---|---|
ultrasonic.py | Ultrasonic 类:Trig=GPIO7、Echo=GPIO10。发 10µs 脉冲,用 time_pulse_us 测回波宽度并换算厘米;超时 / 无回波返回 -1。 |
test_ultrasonic.py | 循环调用 measure_cm(),串口打印距离,验证探头与接线。 |
test_ultrasonic_led.py | 按距离驱动灯光:≥阈值右绿常亮;<阈值左红频闪(越近越快);无效读数双灭。 |
实验
- 上传
ultrasonic.py后运行test_ultrasonic.py。 - 运行
test_ultrasonic_led.py。
GPIO 编号、LED / 按键方位以专题页 第四节「GPIO 与接线」 为准,本页不重复抄写引脚数字。