风筝
发表于: 2018-11-28 22:14:22 | 显示全部楼层

作为Arduino开发板的初学者,对于没有电子背景的人来说非常具有挑战性,你会遇到很多错误,其中一些可能有简单的解决方案,但可能需要几天的时间来解决。

10-Most-Common-Mistakes-while-using-Arduino.jpg


因此,为了使事情变得更容易,我制作了一个包含10个最常见的Arduino错误的列表,以及可能的解决方案。


1.   Arduino开发板未识别

这是指计算机无法识别连接的Arduino开发板。发生这种情况时,电路板通常不会列在Arduino IDE的端口列表下,有时在设备管理器下标记为USB2.0。

Arduino-Error-Board-not-Recognized.png


解决方法:

当您使用某些廉价的Arduino克隆板时会发生这种情况,这些克隆板使用CH340g USB转串口转换器芯片而不是标准Arduino开发板使用的FTDI(FT232RL)以及使用的其他芯片。标准Arduino开发板使用的USB到串行芯片的驱动程序总是与Arduino IDE安装文件一起打包,因此当您安装IDE时,驱动程序会自动安装在您的PC上。为了能够使用这种基于CH340g USB转串口转换器的Arduino开发板,您必须下载并安装该芯片的驱动程序。可以从此链接下载驱动程序。安装它就像单击下面显示的设置界面上的安装按钮一样简单。

Solution-for-Arduino-Error-Board-not-Recognized.png

完成此操作后,您现在应该能够在Arduino IDE上找到该开发板所连接的端口。


2.    开发板未同步

通常,当发生这种情况时,您将无法上传代码(虽然IDE有时会显示“完成上传”)到Arduino开发板,IDE将提示错误代码: “avrdude: stk500_getsync(): not in sync: resp=0x00”。


解决方法:

sync:resp = 0x00是一个通用响应,意思是Arduino开发板上的“Atmega芯片不工作”。当发生这种情况时,有很多可能的错误。以下是可以采取的一些步骤来清除此错误。

1.  确保Arduino上的数字引脚0和1没有任何连接(包括扩展板)。

2.  确保在工具菜单下选择了正确的COM端口和开发板。

3.  多按几次Arduino上的复位按钮,然后重新上传代码。

4.  断开并重新连接Arduino到PC。

5.  重新启动Arduino IDE。


如果其中任何一个不起作用,可能是时候尝试在PC上使用不同的Arduino开发板,或者在另一台PC上使用“有故障”的Arduino。这应该可以帮助您确定哪些是问题的根源。如果您发现问题出在PC上,请重新安装Arduino IDE。但是,如果“故障”Arduino板是问题源,最终的解决方案是使用Arduino固件刷新电路板。如果以上都不起作用,可能是该更换Arduino开发板了。


3.   电源复位时代码无法启动

这是指在电源上电后Arduino不会运行上传到开发板的程序的情况,在大多数情况下,只是恢复到与引导加载程序关联的闪烁草图。


解决方法:

就像处理的其他问题一样,有很多事情可能导致这种情况。

如果电路板挂起并且什么都不做,您应该检查您的代码,以确保您不会在电路板上发送串行数据。当Arduino打开时,引导加载程序会在最初几秒钟内侦听计算机向其发送新草图以便上传到电路板。如果没有收到新的草图,片刻之后,引导加载程序将超时并运行上传到电路板的上一个草图。如果您的代码在最初几分钟内发送串行数据,则引导加载程序不会超时,并且上传到电路板的上一个草图将无法启动。


如果在电路板启动后立即发送串行数据是项目的一个重要部分,您可能需要找到一种方法来延迟串行数据直接到达Arduino。如果进行调整会影响项目要执行的任务,那么您可能需要使用外部编程器将草图上传到电路板,因为它们可以绕过引导加载程序。


如果电路板没有挂起但返回到Arduino闪烁草图(引脚13上的指示灯偶尔闪烁),一个简单的修复方法是使用Arduino引导加载程序烧写电路板,因为电路板上的那个可能已损坏。


4.    无效的设备签名错误

Invalid-Device-Signature-Arduino-Error.png

当尝试将代码上载到电路板时,会显示此错误,与在Arduino IDE上的工具>电路板列表下选择的电路板不同。由于目标板上的设备签名与IDE上选择的板不同,通常会发生此错误。


解决方法:

这个错误的解决方案就像确保在Arduino IDE上选择正确的板一样简单。如果这不起作用,则可能需要使用最新版本的Arduino引导加载程序来烧写微控制器。



5.   Launch4j错误

Launch4j-Arduino-Error.png

Arduino IDE有时需要一段时间才能加载,加载时,如果点击任何内容,它将显示Launch4J错误,如上所示。 Launch4j是一个用于在Windows本机可执行文件中包装Java应用程序(jar)的工具,允许它们用作常规Windows程序。

Arduino IDE本身是用JAVA编写的,由于Arduino IDE提供的Java Run Time Environment(JRE)库不兼容而发生此错误。


解决方法:

根据经验,这个错误可以通过关闭PC的蓝牙或WiFi连接这样简单的事情来解决。但是,更完整彻底的解决方案是用最新版本替换Arduino包中的JRE。


6.   串口已被占用

Arduino-Error-Serial-Port-Already-in-Use.png

这可能是最容易解决的错误之一。当您尝试在打开串行监视器时将代码上载到Arduino时(如果使用最新的IDE版本,这不再是问题)或者当Arduino与另一个软件或设备通话时尝试启动串行监视器时,通常会发生这种情况通过串口。从本质上讲,当您尝试将Arduino串行端口同时用于两个不同的东西时,就会发生这种情况。


解决方法:

就像IDE建议的那样,关闭可能正在使用com端口的所有其他软件/工具(包括串行监视器/绘图仪)。如果您不确定特定软件,请拔下Arduino。当你把它插回来时它应该准备好了。


7:草图上传成功但没有发生任何事情

此错误类似于上面已经处理过的一些其他错误。对于此错误,Arduino IDE将建议代码已成功上载,但该板无效。


解决方法:

●    确保IDE中选择的开发板与目标板相同。

●    这可能是因为草图尺寸大于电路板的容量。检查草图大小并使用上面提到的一些方法来减小大小。

●    最后,当使用纹波比较大的电源时,可能会发生此错误。确保电源足够稳定。


8.   不满意的链接错误(Unsatisfied Link Error)

这可能是唯一一个在此列表中出现的罕见错误。当您的PC上存在旧版本的通信库时,会发生这种情况,很可能是以前的安装。


解决方法:

要解决此错误,请在/System/Library/Frameworks/JavaVM.framework/或PC的CLASSPATH或PATH环境变量的目录中搜索comm.jar或jcl.jar。


9.  草图太大(Sketch Too Large

Sketch-Too-Large-Arduino-error.jpg

当您的代码大于特定Arduino开发板的闪存时,会发生此错误。例如,Arduino Uno的闪存大小为32Kb,Arduino引导程序已经使用了2KB。如果您要上传大小超过32Kb的代码,Arduino将显示此警告。


解决方法:

如上所述,当草图大于您正在使用的特定板的闪存时会发生这种情况,因此,要解决此问题,您必须找到减少代码占用空间的方法。实现这一目标的一些技巧包括:

●    在可能的情况下,使用整数数据类型代替浮点数。

●    在声明变量时,尽可能使用“const”限定符。

●    仅包含必要的库。尽可能使用最重要的库的轻量级版本。

●    一般改进代码。开发可以帮助您缩短代码并且通常轻量级的算法。

●    一个更激进的解决方案是将项目转移到另一个板上,比如Arduino Mega,它与Uno相比具有更大的闪存。


10.   java.lang.StackOverflowError

在处理草图时,Arduino使用一些正则表达式进行处理,当遇到某些与字符串相关的错误(例如缺少引号)时,有时会感到困惑。


解决方法:

通过再次查看代码,尤其是使用字符串序列的部分,可以解决此错误。确保引用完整,正确使用反斜杠等。


以上包含初学者在使用Arduino时遇到的一些最常见的错误。你是否正在与某个错误作斗争,请随时发表回复,希望我们可以一起搞定它。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-11-21 16:53 , Processed in 0.054579 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表