该资源面向 Arduino 项目开发,按常见故障类型整理硬件与代码陷阱,帮助开发者避开损坏元件、随机复位和程序行为异常等问题。
供电与电压:ESP32 为 3.3V、Uno 为 5V,混用逻辑电平需电平转换,否则可能损坏板卡;USB 最多提供 500mA,不足以驱动电机、舵机或大量 LED;不要用 Arduino 的 5V 引脚给电机供电,应使用外部电源并共地;欠压会引起随机复位,容易被误判为代码缺陷;在传感器电源引脚附近加 0.1µF 去耦电容可降低噪声引发的异常。
接线:悬空输入读到随机值,应使用上拉或下拉电阻;所有元件必须共地;模拟传感器线应尽量短以减少噪声;LED 必须串联限流电阻;上电前应检查极性,接反会损坏元件。
引脚:RX/TX(0、1)与 Serial 冲突,使用串口监视器时应避免将其作为 GPIO;需查阅板卡引脚定义确认 I2C、SPI 和可中断引脚;PWM 仅出现在标有 ~ 的引脚,对错误引脚使用 analogWrite() 不会生效;可用 INPUT_PULLUP 省去按键的外部上拉电阻。
定时:delay() 会阻塞一切,不读取输入也不处理中断;非阻塞计时应使用 millis() 并与上次动作时间比较;millis() 约 50 天后溢出,应改用 millis() - lastTime >= interval 的减法写法;时间关键事件可用 attachInterrupt() 立即响应。
内存:Uno 仅有 2KB RAM,大数组会静默失败并出现异常行为;用 F() 宏将字符串保留在 Flash,如 Serial.println(F("text"));常量数组用 PROGMEM;String 类会碎片化堆,追求稳定性宜用 char 数组。
串口调试:波特率必须匹配,否则显示乱码;setup 中必须先 Serial.begin();串口打印会拖慢执行,生产代码应移除或减少。
上传:板型选错会导致能上传但运行不正确;串口监视器占用端口,上传前需关闭;部分廉价 USB 线只供电不传数据;引导程序损坏时可用另一块 Arduino 作为 ISP 重新烧录。
传感器通信:I2C 设备共享总线,需用扫描程序检查地址冲突;5V 传感器接 3.3V 板会读数错误或损坏,应确认工作电压;SPI 每个设备需要独立 CS,片选线不能共用。
该资料未提供具体安装命令、库版本或完整代码示例。