ref="/tag/149/" style="color:#B2A89E;font-weight:bold;">调试不是靠猜,得有章法
刚上手Arduino的时候,很多人以为写完代码烧进去就完事了。可现实往往是:灯不亮、电机不动、串口没输出。这时候盯着代码干瞪眼没用,得把问题拆开看。
我见过不少朋友在调试时直接改代码、反复烧录,试一次等十秒,效率低还容易漏掉关键线索。其实有个更稳的办法——把调试过程列成表格。
为什么用表格记录调试步骤
举个例子,你接了个温湿度传感器,数据老是读不出来。这时候别急着换线或者重写代码。拿张纸或者打开Excel,建个简单的四列表格:
| 测试项 | 预期结果 | 实际结果 | 备注 |
|---|---|---|---|
| 电源电压 | 5V | 4.8V | 正常范围 |
| 接线顺序 | DHT22 DATA → D2 | 接到了D3 | 接错引脚 |
| 串口波特率 | 9600 | 9600 | 匹配 |
| 库是否加载 | 已包含DHT.h | 未include | 漏了头文件 |
这么一列,问题立马浮出水面——两个低级错误叠加,导致程序跑不起来。要是靠脑子记,很容易忽略其中一个。
串口输出也得规整地看
Arduino最常用的调试手段就是Serial.print()。但很多人一股脑输出一堆信息,串口监视器里乱成一团。建议加标签输出,再配合表格整理。
void loop() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
Serial.print("TEMP: ");
Serial.println(temp);
Serial.print("HUM: ");
Serial.println(hum);
delay(1000);
}这样串口输出看起来清楚多了。你可以把这些输出结果复制到表格里,对比每次修改后的变化。
常见问题对照表,省时又省力
时间久了,可以积累一张“Arduino调试对照表”,下次遇到类似问题直接查:
| 现象 | 可能原因 | 验证方式 | 解决方法 |
|---|---|---|---|
| 板子不识别 | 驱动未装或USB线坏 | 换电脑或换线测试 | 重装CH340驱动 |
| 上传失败 | 选错开发板型号 | 检查工具→开发板选项 | 改为Arduino Uno |
| LED闪烁异常 | delay时间设错 | 打印当前状态 | 调整延时参数 |
| 传感器无响应 | 供电不足或接触不良 | 万用表测电压 | 单独供电或重新插拔 |
这张表不用一次做完,每次解决问题就补一条。慢慢你就发现,很多“新问题”其实是老毛病换了个马甲。
变量状态也能放进表格里
比如你要调一个PID控制小车直行,三个参数来回变,光靠感觉调不准。不如把每次试验的Kp、Ki、Kd值和小车表现记录下来:
| Kp | Ki | Kd | 表现 |
|---|---|---|---|
| 2.0 | 0.1 | 0.5 | 左右晃,不稳定 |
| 1.5 | 0.1 | 0.8 | 基本走直,稍偏右 |
| 1.5 | 0.15 | 0.8 | 稳定直线行驶 |
这样调参不再是盲人摸象,而是看得见的进步。