当你手中有一块电路板,却不知道它是否正常工作时,如何验证它是正常工作还是坏掉了?
>;注: 在 @Ricardo's 对我上一篇文章发表评论之后,我发布了这篇文章!
将电路板插入电脑的 USB 端口,检查电路板上的绿色 LED 电源指示灯是否亮起。标准 Arduino 板(Uno、Duemilanove 和 Mega)上的绿色 LED 电源指示灯位于复位开关附近。
当电路板通电时,靠近电路板中心的橙色 LED 灯(下图中标有 "13 号引脚 LED 灯")应该会闪亮或熄灭(电路板出厂时预装了闪烁 LED 灯的软件,可以简单地检查电路板是否正常工作)。
[此处输入图片描述][1]
如果将电路板连接到计算机时电源 LED 不亮,则电路板可能没有接收到电源。
闪烁的 LED(连接到数字输出引脚 13)由电路板上运行的代码控制(新电路板预装了 Blink 示例草图)。如果第 13 针 LED 指示灯闪烁,说明草图运行正常,这意味着电路板上的芯片正在工作。如果绿色电源 LED 亮起,但引脚 13 LED 不闪烁,则可能是芯片上没有出厂代码。如果您使用的不是标准电路板,它的第 13 针上可能没有内置 LED,因此请查阅文档了解电路板的详细信息。
语言:lang-bash -->; 如果您拥有 USB 编程器,还有另一种方法来检查 Arduino。
将编程器连接到 Arduino 的 ICSP 引脚,然后使用正确的参数调用 avrdude
来读取 Arduino 的保险丝。
avrdude -c programmer-id -p partno -P port
对于 Arduino Uno,"partno "为 "m328p"。程序员编号 "取决于所使用的设备。在我的例子(mySmartUSB light)中,stk500v2
是受支持的,port
是/dev/ttyUSB0
。这里
avrdude -c stk500v2 -p m328p -P /dev/ttyUSB0
输出如下
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f
avrdude: safemode: Fuses OK
avrdude done. Thank you.
UNO 电路板以正确的签名做出响应,并准备好执行某些操作 :)
我的 USB 编程器附带了一条 6 线带状电缆,两侧都有 2x3 母接头。像往常一样,针 1的导线标为红色。由于编程器的 2x3 公接头处有一个缺口,因此电缆只能单向插入。
查看 Arduino UNO,ICSP 接头位于复位按钮的右侧。
引脚布局如下。
预设>; MISO 1 2 VCC SCK 3 4 MOSI RESET 5 6 GND </pre>;
**注意*** 引脚 1 在左上方,用白点标出!
如果你有另一块能正常工作的 Uno,而且两块板上都有插座式微控制器芯片,你就可以用已知板在未知板的芯片上编程一个测试草图,然后把它放回未知板上运行。
我喜欢下面这个(伪编码)测试草图,用于快速检查我手工制作的电路板;它同样方便测试未知的工厂制作的电路板。这不是一个详尽的测试,它只是检查基本的数字 I/O、串行 I/O、短路或开路:
forever,
for each digital I/O pin:
write high;
delay 100ms;
write low;
end;
write "Hello, World!\n" to serial output;
while serial character available,
write character to serial output;
end;
write "\n" to the serial output;
end;
连接在任何 I/O 和地之间的测试 LED(LED 上焊有电阻)应每 2 秒闪烁一次。如果不闪烁,则说明该引脚可能出现故障或连接不良。
连接到数字上相邻引脚的两个测试 LED(它们可能在物理上并不相邻)应依次闪烁。如果它们一起闪烁,则表明它们之间存在短路,可能是焊桥。
终端应每隔两秒显示"Hello World!"。如果没有,则可能是该引脚、FTDI 电缆或板载 USB/Serial 芯片出现故障。
在键盘上键入内容,它应该会重复回到串行终端(如果之前的测试通过)。如果没有,也可能是该引脚或 FTDI 电缆或板载 USB/Serial 芯片故障。