一板网电子技术论坛

风筝
发表于: 2018-5-10 23:20:57 | 显示全部楼层

Arduino:一个开源社区

自从Arduino开源平台推出以来,该品牌已经成为众多开源社区的核心。Arduino生态系统包含各种型号的硬件和软件。 它以其自身的多功能性及简单界面迅速成为世界各地业余爱好者、设计师、艺术家等众多用户设计产品原型的首选工具。


Arduino开发板通过USB连接到计算机,并连接到Arduino开发环境(IDE)。用户在IDE中写入Arduino代码,然后将其上传到微控制器,执行代码、与输入和输出(例如传感器、电机和指示灯)进行交互。


初学者和专家都可以获得丰富的免费资源和材料来支持他们。用户可以查看关于如何设置其开发板的信息,甚至可以查看如何在Arduino上编写代码。 Arduino背后的开源使它对新用户和有经验的用户特别友好。网上有成千上万个Arduino代码示例。在这篇文章中,我们将带您了解Arduino编码的一些基本原理。


Arduino编码环境和基本工具

Arduino代码是用C ++语言编写的,增加了一些特殊的方法和函数,我们稍后会提到。 C ++是一种人类可读的编程语言。当你创建一个'草图(SKETCH)'(Arduino代码文件的名字)时,它将被处理并编译成机器语言。


Arduino IDE

Arduino集成开发环境(IDE)是用于编程Arduino的主要文本编辑程序。在将代码上传到想要编程的电路板之前,您可以在其中输入代码。 Arduino代码被称为草图。


注意:使用最新版本的Arduino IDE非常重要。可以在这里检查更新。

Arduino-code-cover.png


正如你所看到的,IDE具有简约的设计。菜单栏上只有5个子菜单,以及下面的一系列按钮可供您验证和上传草图。本质上,IDE将您的草图翻译并编译成Arduino可以理解的代码。一旦编译了Arduino代码,它就会上传到电路板的内存中。


所有用户必须做的才能开始编译他们的草图是按下一个按钮。


如果在Arduino代码中有任何错误,则警告消息将标记提示用户进行更改。由于Arduino严格的语法要求,大多数新用户经常遇到编译困难。如果您在使用Arduino时在标点符号上发生任何错误,代码将无法编译,您将遇到错误消息。


串行监视器和串行绘图仪

通过单击IDE右上方的放大镜图标或工具下方可打开Arduino串行监视器(Serial Monitor)。串行监视器主要用于使用计算机与Arduino板进行交互,并且是实时监视和调试的好工具。为了使用显示器,您需要使用Serial类。

您从circuito.io下载的代码有一个测试部分,可帮助您使用串行监视器测试每个组件,如以下屏幕截图所示:

test-code.png


Arduino串行绘图仪(Serial Plotter)是Arduino IDE的另一个组件,它允许您生成串行数据的实时图形。串行绘图仪使您更容易通过可视化显示来分析数据。您可以创建图表、负值图表和进行波形分析。

Arduino-IDE-serial-plotter.png


调试Arduino代码和硬件

与其他软件编程平台不同,Arduino没有板载调试器。用户可以使用第三方软件,也可以使用串行监视器来打印Arduino的活动进程以进行监视和调试。


通过使用Serial类,您可以打印到串行监视器,来调试变量的注释和值。对于大多数的Arduino型号,Serial类使用连接到USB端口的串行引脚0和1。

跳转到指定楼层
风筝
发表于: 2018-5-10 23:54:55 | 显示全部楼层

代码结构

库Libraries

与其他优秀的编程平台非常相似,在Arduino编程环境中,内置大量的库文件,以提供基本的功能。另外,它还可以导入其他库,以及扩展Arduino板卡的功能和特性。这些库大致分为与特定组件进行交互的库或实现新功能的库。

要导入新库,您需要转到"Sketch > Import Library”。

Include-library.png

另外,在.ino文件的顶部,您需要使用'#include'来包含外部的库文件。您还可以创建自定义库以在单独的草图中使用。


引脚定义

要使用Arduino引脚,您需要定义使用哪个引脚及其功能。一种定义使用的引脚的便捷方式是使用:

  1. '#define pinName pinNumber'。
复制代码

该功能可以是输入或输出,并且可以setup部分中使用pinMode()方法进行定义。


声明变量

无论何时使用Arduino,都需要声明全局变量和实例以供稍后使用。简而言之,变量允许您命名和存储将来使用的值。例如,您将存储从传感器获取的数据以便稍后使用。要声明变量,只需定义其类型、名称和初始值。

值得一提的是,声明全局变量不是绝对必要的。但是,建议您声明变量,以便更容易地使用您的值。


实例声明

在软件编程中,类是一个集合在一起的函数和变量。每个类都有一个称为构造函数的特殊函数,用于创建类的实例。为了使用这个类的功能,我们需要为它声明一个实例。


Setup()函数

每个Arduino草图都必须具有Setup()函数。这个函数定义了Arduino引导时的初始状态,并且只运行一次。

在这个部分,我们将定义以下内容:

1.    使用pinMode函数定义引脚功能

2.    引脚的初始状态

3.    初始化类

4.    初始化变量

5.    代码逻辑


loop()函数

loop()函数对每个Arduino草图都是必须的,并且在setup()运行完成后执行。这个是主要的函数,并且如其名称所示,它一遍又一遍地循环运行。loop函数描述了电路的主要逻辑。

例如:

setup-and-loop.png

注意:'void'意味着函数不返回任何值。


基本的Arduino代码逻辑

基本的Arduino代码逻辑是一个“if-then”结构,可以分为4个块:

●    设置 - 通常会写入Arduino代码的Setup部分,并执行只需要执行一次的操作,例如传感器校准。

●    输入 - 在loop函数的开始处,读取输入信号。 这些值将用作条件(“if”),例如使用analogRead()从LDR读取环境光强度。

●    操作数据 - 本节用于将数据转换为更方便的形式或执行计算。 例如,AnalogRead()输出0-1023的读数,其可以被映射到0-255的范围,以用于PWM(参见analogWrite())。

●    输出 - 本节根据上一步计算的数据定义逻辑的最终结果(“then”)。 参看我们的LDR和PWM示例,只有当环境光照水平低于某个阈值时才打开LED。

回复

使用道具 举报

风筝
发表于: 2018-5-11 22:50:45 | 显示全部楼层

Arduino代码库

库library结构

库是由一些包含C ++(.cpp)代码文件和C ++(.h)头文件的文件组成的文件夹。

●    .h文件描述了库的结构并声明了它的所有变量和函数。

●    .cpp文件包含函数实现。


导入库

您需要做的第一件事是从网上提供的许多库中找到您想要使用的库。下载到您的计算机后,您只需打开Arduino IDE,并单击 Sketch > Include Library > Manage Libraries。然后,您可以选择要导入IDE的库。一旦该过程完成后,该库就可以在草图菜单中可用。

在circuito.io提供的代码中,而不是像前面提到的那样添加外部库,我们以固件文件夹的形式提供。在这种情况下,当使用#include时,IDE知道如何找到它们。


从软件到硬件

关于Arduino的软件功能还有很多需要说的,但重要的是要记住,该平台包含软件和硬件。两者协同运行一个复杂的操作系统。


代码→编译→上传→运行

Arduino的核心是能够编译和运行代码的。

在IDE中编写代码之后,您需要将其上传到Arduino。点击Upload按钮(向右箭头图标),将编译代码并在编译通过时上传。上传完成后,程序将自动开始运行。


你也可以一步步来做到这一点:

1.  首先,编译代码。要做到这一点,只需点击检查图标(或点击菜单栏中的sketch > Verify / Compile)。

compile-code.png

如上图所示,检查图标位于最左侧,菜单栏“File”标签的下方。


一旦你点击图标后,Arduino将开始编译。一旦完成,你会收到一个看起来像这样的完成消息:

pasted-image-0-4.png


正如你所看到的,页面底部的绿线告诉你,你已经完成了编译。如果您的代码无法运行,您将在同一部分得到通知,并且有问题的代码将突出显示以进行编辑。

一旦你编写了草图,就可以上传它了。


2.  选择Arduino当前连接的串口。点击菜单中的Tools > Serial port来指定您选择的串口(如上所示)。然后您可以上传编译过的草图。


3.  要上传草图,请点击勾号旁边的上传图标。或者,您可以转到菜单并单击 File> upload。一旦数据传输完毕,您的Arduino LED将闪烁。

完成后,您将收到一条完成消息,提示Arduino已完成上传。


设置您的IDE

为了将Arduino开发板连接到您的计算机上,您需要USB电缆。使用Arduino UNO开发板时,USB将程序中的数据直接传送到主板中。 USB电缆用于为您的arduino供电。您还可以通过外部电源运行Arduino。

在您上传代码之前,您需要配置一些设置。

    选择使用的开发板 - 您需要指定使用的Arduino主板。通过单击Tools > Board > Your Board

pasted-image-0-7.png


●    选择处理器 - 有某些电路板你需要指定使用的哪种处理器型号(例如Arduino pro-mini)。在tools > processor > 选择您的处理器型号。

pasted-image-0-8.png


●    选择端口 - 选择你的主板所连接的端口,进入tools > Port > COMX Arduino(这是Arduino的串行端口)。


如何安装非本地主板(例如NodeMCU)

一些电路板模型并未预先安装在Arduino IDE中,因此您需要先安装它们才能上传代码。


要安装非本地板(如NodeMCU),您需要:

1.   点击tools> Boards> Boards Manager

2.   在搜索栏中搜索要添加的电路板,然后单击“install”。


一些开发板无法通过开发板管理器找到。在这种情况下,您需要手动添加它们。因此,您需要:

1.    点击Files > Preferences

2.    在“Additional Boards Manager”字段中,粘贴板卡安装包的URL。例如,对于nodeMCU,请添加以下URL:http://arduino.esp8266.com/stable/package_esp8266com_index.json

3.    点击OK;

4.    转到tools > Boards > Boards Manager

5.   在搜索栏中搜索要添加的电路板,然后单击“install”。

pasted-image-0-5.png


一旦你完成了这一步,你会在tools下的板子列表中看到已安装的板子。

注意:对于不同的电路板,过程可能会有所不同。


Arduino:非常通用的平台

Arduino不仅仅是一个简单的微控制器。凭借其强大的IDE和大量的硬件配置,Arduino成为一个真正多元化的平台。其各种库和直观的设计使其成为新手和有经验的创客的最爱。有成千上万的社区资源可帮助您开始使用硬件和软件。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 149 | 回复: 213



Archiver|手机版|小黑屋|

GMT+8, 2018-10-20 22:43 , Processed in 0.031251 second(s), 32 queries . Powered by Discuz! X3.4

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

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