电子系统基础

一次只改一个变量

12 分钟

开始搭建和调试。这一节只讲一条纪律,但它是整个工程调试的基石。


核心纪律:一次只改一个变量

不工作时,人的本能是一次改三处:换根线、改段代码、再加个电容,然后上电看看。

如果好了,你不知道是哪一处起了作用。
如果还是坏的,你不知道刚才那三处有没有引入新问题。

结果:你在增加系统的复杂度,而不是减少它。


正确的调试循环

① 提出一个假设(我认为问题是 X)
② 设计一个能验证它的最小改动
③ 只做这一个改动
④ 观察结果
⑤ 记录:假设对了还是错了
⑥ 回到 ①

第⑤步很多人不做,但它决定了你是在「排查」还是在「乱试」。


分段验证:从最小系统开始

不要全部搭完再上电。 按这个顺序,每段验证通过再加下一段:

阶段 搭什么 验证标准
1 只有电源 各路电压正常(对照测量图 TP1、TP2)
2 + 单片机 能烧录、LED 按预期闪烁
3 + 传感器 串口打印的读数随实际变化(用手捂/沾水试)
4 + 驱动电路(不接负载) 控制脚电平按预期变化
5 + 执行器(水泵/电机) 完整功能
6 异常测试 故意制造异常,看保护有没有生效

第 6 阶段最容易被跳过,但需求里写的异常处理,不测就等于没做。

故意制造异常的方法

  • 拔掉传感器 → 看会不会误动作
  • 水箱放空 → 看水泵会不会空转
  • 中途断电再上电 → 看能不能正常恢复
  • 手动堵住水泵 → 看会不会一直堵转

调试记录表

【阶段】__ 【本次假设】____________

【改动】(只写一处)____________

【结果】□好了 □没变 □变差了 □出现新现象:____

【结论】假设 □成立 □不成立

【下一步】____________

「变差了」这一项一定要记:它说明你的改动引入了新问题,应该先撤销回去,而不是继续往上叠。


三个实用的调试技巧

① 二分法

系统有 10 个环节且不知道哪里坏,先测第 5 个——一次排除一半,最多 4 次就能定位。

比从头挨个测快得多。

② 替换法

怀疑某个模块坏了,换一个确定是好的上去。如果好了,确诊;如果没好,说明问题不在这里。

注意:一次只换一个。

③ 最小复现

把系统裁剪到「还能出现这个故障的最简形式」。

整个系统会重启 → 去掉传感器还重启吗?→ 只留单片机和电机还重启吗?

裁剪到最小,原因往往就显而易见了。 这也是软件调试的通用方法。


什么时候该停下来

如果调了两小时没进展:

  1. 休息十分钟(真的有用,人在疲劳时会反复测同一个点)
  2. 回去看需求和图——是不是设计本身就有问题?
  3. 向别人复述一遍——很多问题在复述到一半时自己就想通了

练习:按 1–6 的阶段搭建你的系统,每个阶段填一次调试记录表,第 6 阶段至少测试三种异常。

小纸条

调试时为什么必须「一次只改一个变量」?「最小复现」是什么方法?

登录 后可看答案