跳到正文
芯片启蒙

测试与排错:一次只改一个变量

10 分钟

系统第一次通电没有反应很正常。工程师和碰运气的区别,不是工程师从不出错,而是他会用证据把故障范围一步步缩小。最重要的原则是:先测量,再判断;一次只改一个变量。

从电源开始

自动夜灯不亮,先别急着怀疑程序。按照顺序检查:

  1. 电源电压是否正确,正负极有没有接反。
  2. 各模块是否共地,接头是否松动。
  3. 传感器输出会不会随亮暗、有人无人变化。
  4. 控制器的判断输出是否正确。
  5. 驱动模块和 LED 是否单独能亮。

这个顺序沿着能量和信号流前进。前一级不对,后面得到怪结果很正常。

设计测试用例

不要只试一次「夜里有人」。根据真值表至少测四种组合;再测边界:亮度刚好在阈值附近会不会闪烁?人在检测边缘移动会不会时有时无?电池变弱时是否还能稳定工作?正常情况证明「能用」,边界和异常情况才检验「可靠」。

一次改一个变量

如果同时换传感器、改程序、重接电线,系统突然好了,你也不知道真正原因;下次还会再犯。每次只改变一项,记录改变前后的现象。故障记录应写时间、条件、测量值、假设、操作和结果,而不是只写「坏了」「修好了」。

用已知好信号替换

怀疑传感器时,可以先断开它,用按钮直接给控制器输入 0 或 1。如果控制器和灯工作正常,问题就在传感器或接口一侧。这种替换法像把队伍分成两半比赛,很快能定位是哪一半出错。

练一练:夜灯一直亮。写出至少四个可能原因,并按最省事、最有证据的顺序安排检查步骤。

小纸条

排错时为什么不能同时改电线、程序和传感器?