完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
描述
Diy 错误指示 LED 板 如何调试您的 Arduino 项目 过去编写过代码的任何人都可以告诉您,它通常不会像最初预期的那样工作。事实上,在编写代码时,调试是创作过程中必不可少的一部分。但是,Arduino 调试可能会稍微复杂一些。原因之一是 Arduino 没有提供自定义调试工具。 开始你的电路>> 大多数程序将使用调试器来帮助程序员定位错误并解决它们。然而 Arduino 没有这样的调试系统。Arduino 调试是管理 Arduino 项目中更具挑战性的任务之一。与大多数其他 IDE 不同,Arduino IDE 上没有官方的 Arduino 调试功能。许多用户对没有专用的 Arduino 调试工具感到惊讶。 在 Arduino 上,一旦您运行程序,您将无法看到设备内部发生了什么以及您的代码是如何运行的。您获得的唯一帮助是串行监视器上的消息或 LED 显示屏。尤其是当其他 IDE 通常具有利用断点、步骤、调用堆栈、监视、本地/全局变量和其他组件来仔细检查代码的调试工具时。 但是,调试 Arduino 代码与在 PC 上调试代码不同。两者在接触方式上非常不同。其主要原因是 Arduino 代码通常用于控制物理输出或接收到/来自现实世界的物理输入,并且调试过程必须考虑到这些。 在实践中,这意味着 Arduino 开发人员经常不得不探索替代方法和工具来调试他们的代码。在这篇文章中,我们将分解从 Arduino 代码调试到使用模拟器调试 Arduino 的所有内容。这将为您提供生成有效代码所需的所有信息。 设计 在创建 Arduino 项目时,项目的整体设计非常重要。从您开始为项目选择组件的那一刻起,您就需要清楚地了解您的最终产品。 例如,如果您想设计一个在 Arduino 板上运行并点亮 LED 的草图,您需要在项目的设计阶段提供基础。您的草图和电路的整体设计将决定您完成的项目的外观。 建造 就构建项目而言,这是您真正赋予电路生命的地方。“构建过程”是 Arduino IDE 将您的 C++ 草图编译成机器代码的地方,然后直接上传到您的 Arduino 板。 Circuito.io 代码 你从 circuito.io 得到的代码实际上是一个没有任何逻辑的测试代码。此测试代码用于检查您的所有组件是否正确接线并正常运行。这有助于检查您的硬件设置是否存在故障。circuito.io 还为您选择的所有不同组件提供代码库。如果您的测试代码失败,那么您知道您需要开始调试过程。 第 1 步:检查您的硬件 如上所述,如果您的 circuito.io 代码不起作用,那么您的硬件很可能有问题。这意味着您需要开始硬件调试。 以下是硬件问题的一些基本故障排除步骤: 检查接线 - 为电路接线时,您应该做的第一件事是检查您是否正确连接了所有东西。如果您将跳线放置在 Arduino 的错误引脚中,或者面包板上的位置错误,您的程序将无法与组件交互。仔细检查所有组件和电线,以确保一切都安全到位。如果您有一个复杂的电路,有时最好从头开始,一次测试每个组件以消除问题。 检查焊接 - 如果您的某些部件在设置过程中需要焊接,请确保正确焊接它们。焊接不良的部件是技术故障的最常见原因之一。如果你不能告诉,重新焊接它。 检查电源 - 如果您的电路仍有问题,您需要检查电源。使用万用表,您可以检查 2 件事: 第二步:代码调试 如果您的测试代码有效,那么是时候编写您自己的代码了。在编写自己的 Arduino 代码时,您应该遵循一些基本规则和最佳实践。按照下面的说明,如果您稍后需要调试它,您将有一个更轻松的时间: 以小块编写代码并测试它们中的每一个。 为变量和函数提供有意义的名称 使用函数 使用常量而不是数字 写评论以解释编码选择以供将来参考 确保您的代码具有适当的缩进并始终保持可读性。您可以使用 Alt-t 自动缩进整个草图。 汇编 如果您在尝试编译或上传代码到您的开发板时遇到编译错误,请检查语法、拼写错误等错误。使用正确的语法对于确保您的代码编译至关重要。当编译失败时,IDE 将在其底部显示错误。但是,Arduino IDE 生成的错误消息的描述有限,因此并不总是很有帮助。 如果您了解错误消息的含义,请尝试修复它指示的问题并再次编译。这是一种方便的 Arduino 故障排除形式。 但是,如果您解决了 IDE 中列出的错误并且草图仍然无法编译,那么最好使用 Google 搜索问题的解决方案。 常见的语法错误是: 失踪 ; 在每一行的末尾 括号错位或丢失 { } 未定义的变量和函数 Arduino 拥有一个大型开源社区,其中包含大量 Arduino 故障排除指南,可帮助您识别代码问题。一旦你解决了问题并且你的代码可以工作,点击运行。 运行代码 如果您的代码编译并成功上传到开发板,但没有按预期运行,您需要开始调试。 串行监视器 如上所述,如果在尝试运行草图时代码失败,则需要开始调试代码。首先,考虑并定义要打印的参数并使用串行监视器在屏幕上进行监视(您可以在此处学习串行打印的基础知识)。目的是打印程序当前状态的概述。像这样: 变量 输入——传感器读数 指示程序流程的打印,例如在“if”语句中查看是否满足条件 输出——例如在将它们写入引脚之前的 PWM 值 任何您认为重要的要打印到屏幕上的东西 手动检查您的代码 评估代码质量和检查错误的一种好方法是手动检查代码。您可以通过以下方式做到这一点: 从头开始编写代码并将其分解以查看您是否在此过程中犯了任何错误(最常见的是语法错误)。 重新审视你的设计并询问你的主要逻辑是什么。用文字把它写下来,然后看看你的代码语句是否回答了这个问题。有时当我们深入编程时,我们会犯错误,专注于小细节而忽略了项目的整体方向。在这种状态下,很容易与最初的想法失去联系。 查看您的代码并添加注释(尽可能多地)向自己解释您正在尝试做什么。 第三步:使用外部软件调试工具 如果您手动检查代码但仍然找不到问题,那么是时候使用高级调试工具了。许多 IDE 都有自己的板载调试工具,而 Arduino 没有。但是,您可以使用许多外部工具来确保您的代码正确运行。如果您需要高级调试和仿真选项,可以考虑以下一些最佳工具: 视觉微 Visual micro 是一个可通过 Microsoft Visual Studio 获得的插件,用于在 Arduino 上创建跨平台程序。在 Visual Micro 中创建的任何符合 Arduino 的代码都将被接受。Visual Micro 非常适合协作团队调试 Arduino,因为它支持共享代码和库编辑。可以跨不同平台创建代码,并在整个构建过程中与程序代码结合。Visual Micro 还提供 GDB 调试和串行、蓝牙和 Wifi 调试。 爱特梅尔工作室 Atmel Studio IDE 是一款免费软件,它提供有竞争力的调试工具来帮助解决代码错误。通过 Atmel Studio,可以开发、编译并上传项目到相关的微处理器。与 Arduino IDE 一样,Atmel Studio 的 IDE 使用相同的代码,这意味着您无需学习新的编程语言即可使用它。Atmel 对于开源社区非常通用,并支持 .ino 草图和 C++ 源代码。Atmel Studio 还使用 DebugWire 或 JTAG 提供了非常好的调试功能。 调试线 DebugWire 是 Atmel 的一种协议,用于在没有 JTAG 的情况下调试许多 ATtiny(例如 ATtiny 13、85)和 ATmegas(例如 ATmega48/88/168/328),仅通过复位引脚。Atmel 没有记录 DebugWire 协议,但有些人对协议的大部分进行了逆向工程,并且能够构建一些简单的调试器。通过使用 debugWIRE,可以对所有内存进行完全读写访问,并完全控制执行流程。它支持单步、运行到光标、步出和软件中断指令。 第 4 步:使用 Arduino 模拟器和仿真器 可用于监控和调试的更多工具是 Arduino 仿真器和模拟器。Arduino 模拟器让专家和爱好者比以往任何时候都更容易对他们的想法进行编程和测试,直到他们高效运行。硬件模拟是一个复杂的过程,虽然在行业中有用于硬件调试的惊人工具,但这些工具对于制造商和爱好者来说非常有限。 但是,模拟器和仿真器仍然在 Arduino 用户的调试工具包中占有一席之地。Arduino 模拟器支持线对线调试,允许用户查看他们的代码并确定哪里出错了。以下是使用模拟器的一些优点: 调试 如上所述,模拟器非常适合调试 Arduino,无论是在语法错误还是功能错误方面。使模拟器适合调试的原因在于您可以编写代码并创建电子电路来测试代码的完整性。一些模拟器将为您提供有限的硬件库以供您测试,而其他模拟器则允许您开发复杂的虚拟环境。今天,您甚至可以使用模拟器以 3D 形式渲染您的项目。 模拟器提供的最大优势之一是透明度。运行模拟时,您可以准确了解代码的工作方式并确定可以改进的方法。这使您可以运行新代码而不必担心损坏您的电路板或设备。 与 IDE 和硬件设置相比,模拟器允许用户纠正功能性编程错误。如果没有模拟器,您只能解决代码中的非功能性技术错误,例如语法错误。这使得模拟器成为新用户的理想选择,这些用户在获得成品之前需要经历大量的试验和错误。通过模拟器测试代码可确保硬件保持运行,从而节省时间和金钱。 绘图和记录 模拟器不仅允许您测试代码的运行方式,还允许您记录和绘制生成的数据。您可以记下您的编程数据并将其绘制在 Excel 等外部程序上。在您的程序和其他设备上记录数据有助于开发有助于改进编码的见解。 实验 在实验方面,模拟器和仿真器也很难被击败。如果没有模拟器,用户只能根据他们的理论知识创建代码,并且尝试新代码和新组件的机会有限(尤其是当错误导致硬件损坏时)。使用模拟器,您可以在虚拟环境中测试代码并尝试新想法,而不必担心最终结果。 测试新组件 同样,模拟器为您提供了一种在您扣动扳机并进行购买之前测试组件的方法。通过这种方式,您可以查看某个部分是否对您的项目有用,并练习将其集成到您的整体环境中。这样可以确保您不会浪费金钱购买几乎没有用的零件。 为电子电路创建蓝图 在构建电子电路时,您可以使用模拟器来设计、构建和预览原理图。这减少了需要手动绘制电子电路蓝图的大量繁琐工作,从而节省了您的时间。此外,它还确保末端电路设计得到充分优化。 流行模拟器 1. Tinkercad 上的电子实验室(以前称为circuits.io) Circuits.io 平台使用户可以轻松地通过电路模拟器模拟真实世界的电子设备。该在线模拟器允许用户拖入 Arduino 板并开始编程。它还为用户提供电路图制作器、万用表测量工具和示波器。这个 Arduino 模拟器允许您从头开始构建您的设计,同时使您能够对整个电路的电源进行精确测量。 2.虚拟面包板 Virtual Breadboard 已成为当今最强大、最先进的 Arduino 模拟器之一。Virtual Breadboard 在电子电路行业中得到了发展,如今可以模拟 Arduino 设备、Netduino 和 PIC 微控制器。在启动时,用户可以访问一个完整的虚拟开发环境,他们可以在其中直接对 Arduino 板进行编程。还值得注意的是,它也可以充当 AVR 模拟器。 调试 Arduino 并不困难 当您开始使用 Arduino 时,调试似乎是一个复杂的过程,但如果您将其分解为多个步骤,您可能能够克服这些问题并在此过程中学到很多东西。 正如您在本指南中看到的那样,有多种外部工具可以帮助您,但最好的调试方法是反复试验,在此过程中识别故障并随时修复它们。 另一种可以帮助您减少遇到的错误数量的方法是严格使用语法。这将确保在调试代码时,您不必筛选在编写过程中可能已消除的语法错误。 与带有板载调试器的 IDE 相比,调试 Arduino 可能非常不方便。如果您在将代码放入第三方调试器之前对其进行测试、编译和运行,您将能够顺利生成高质量的代码。同样,如果您迷路了,这里有一个充满活力的开源社区可以提供帮助。 PCB
|
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
9567 浏览 0 评论
8932 浏览 0 评论
13326 浏览 0 评论
4377 浏览 0 评论
4632 浏览 0 评论
342浏览 1评论
484浏览 1评论
IPC-6012E CN 2020中文 CN 刚性印制板的鉴定及性能规范
573浏览 1评论
374浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 15:05 , Processed in 1.448222 second(s), Total 74, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号