首页

Arduino程序分析

在之前的教程中,我们已经看到了如何设置Arduino IDE、编译(或验证)草图、将草图上传到Arduino UNO板并检查错误消息。在Arduino IDE中提供的示例草图“Blink”的帮助下,我们看到了所有这些。

在本教程中,我们将尝试理解Blink程序、它的组件、一些语法和一些预定义函数。我们还将尝试对原来的Blink草图做一些改变,看看它对输出有什么不同。

为此,我们需要启动Arduino IDE(与Arduino UNO板已经连接到计算机),并打开眨眼草图。

Arduino程序分析

在上面的草图中,我们可以看到一些灰色的线条在草图的顶部,一些彩色的线条在草图的底部。这是因为,任何Arduino草图(或者实际上任何与编程语言无关的程序)都是一些称为注释的参考行和实际代码本身的组合。

注释,顾名思义,是程序的一部分,它告诉你自己或者其他程序的参与者程序是如何工作的。它们有助于程序员或用户更容易理解源代码。

通常,编译器会忽略注释。因此,编译时不要占用任何空间。注释再次分为块注释(也称为多行注释)和行注释(也称为行注释)。

多行注释注释源代码中的一个块或多行。在Blink草图开始的灰色部分是块注释。它们提供了诸如开发人员是谁、代码的目的等信息。

Arduino程序分析

多行注释通常包含在斜杠(/)-星号(*)和星号-斜杠之间,即“/*多行注释*/”。

另一种类型的注释是行注释。它们用于注释代码中的一行。单行注释通常在开头用双斜杠表示。

我们可以看到在代码的每一行末尾都有一个带有“//”的语句。这是一行注释。

请注意虽然注释(多行或单行)有助于程序员更好地理解代码,但它们不是强制性的。即使我们删除了注释,主代码也不会受到影响。

Arduino程序分析

草图的另一部分是实际的代码,它是为Arduino做一个特定的任务而编写的。在Arduino环境中,草图分为两部分:Setup和loop。

setup()是程序启动时执行或调用的第一个函数。它只在打开电源或Arduino重置时运行一次。Setup用于初始化引脚、变量、库等。

Arduino草图中的下一个函数是循环。顾名思义,loop()是一个反复运行的函数,即连续循环。

arduino-program-analysis-4

回到程序中,目标是闪烁一个连接到13的LEDthArduino UNO的引脚。因此,第一个任务是初始化草图中相应的引脚。

正如我们在介绍教程中看到的,Arduino UNO有14个数字引脚,可以配置为输入或输出。当一个引脚被配置为输入时,外部数据,即逻辑高或低被给予Arduino UNO。当一个引脚被配置为输出时,Arduino UNO将发送逻辑LOW或HIGH到该引脚。

因此,为了在Arduino环境中初始化一个引脚作为输入或输出,我们需要使用一个函数pinMode”。

pinMode函数的语法为pinMode(引脚编号,模式);

这里,语法中的引脚no可以是从0到13的任何数字I/O引脚(或任何特定的标识符),模式用来表示该引脚是输入还是输出。

在Arduino UNO中,LED连接到引脚13,这在库中定义了一个恒定的LED_BUILTIN。因此,为了将LED引脚初始化为输出引脚,我们必须编写以下语句。

pinMode (LED_BUILTIN、输出);

由于pinMode函数用于初始化LED引脚,它被写入设置函数中。

arduino-program-analysis-5

现在我们已经成功地初始化了LED引脚作为输出引脚,下一步是打开或关闭LED。当引脚的输出高时,LED将被打开,当引脚的输出低时,LED将被关闭。为了驱动输出引脚的高或低,我们需要使用另一个函数称为digitalWrite”。

digitalWrite函数的语法为digitalWrite(引脚编号,值);

在引脚编号中,我们必须提到引脚的编号或标识符,在值中,我们必须提到HIGH或LOW。因此,为了打开和关闭LED,我们需要分别写以下语句。

digitalWrite (LED_BUILTIN、高);

digitalWrite (LED_BUILTIN、低);

由于LED必须反复地开关,我们需要在循环函数中写入这两个函数。

如果我们观察这个草图,我们可以看到有两个名为Delay()的函数;放置在每个digitalWrite函数之后。在理解这个延迟函数之前,我们需要了解一点关于微控制器的知识。

微控制器是非常快的设备,即它们在一秒钟内执行数千条指令。在上面的草图中,让我们考虑在循环中只有digitalWrite函数而没有任何延迟函数。

Arduino程序分析

在这种情况下,高输出的digitalWrite和低输出的digitalWrite以非常高的速度连续执行,因此引脚以那个速度给出HIGH和LOW。由于LED在ON和OFF之间高速切换,我们无法看到LED是否闪烁,结果将是一个昏暗的发光LED。为了减缓这一过程,并正确地看到LED闪烁,我们使用了延迟功能。

延时函数,顾名思义,是用来在指定的时间内延迟或暂停程序的执行。在Arduino环境中,我们有两种延迟函数:delay ();和DelayMicroseconds ();

这两个函数的语法都是Delay(时间单位为毫秒)和DelayMicroseconds(时间单位为毫秒);(语法指定了每个函数的功能)。

所以,回到程序中,为了以1秒(1000毫秒)的间隔打开和关闭LED,我们使用延迟函数delay (1000);在每个digitalWrite函数之后。

为了进行实验,我们可以将一个LED(带限流电阻)连接到任何其他引脚上,并相应地编写草图。此外,我们可以改变延迟时间,并查看LED闪烁的速率。

在下一节教程中,我们将继续探索Arduino,对电路进行一些更改,并绘制草图,学习如何编写我们的第一个程序。

2反应

  1. 你好,你能帮助我如何玩计时器。也就是说,在不使用if…和while功能的情况下,每5分钟后按8次蜂鸣器或每2分钟后读取传感器。
    否则,感谢您的教程。我真的从你身上学到了很多。

  2. 在我67岁的时候,我被你的Arduino编程深深吸引。我发现打开笔记本电脑,逐个读完这一章是很困难的。如果这些教程是pdf的,那么它将更容易为我学习从硬拷贝在我的闲暇时间。
    请您在这方面帮助我,并使这整个教程的pdf下载。它不仅会帮助我,而且也会帮助像我这样浪费时间的人,可以有效地利用他们的时间。

留下一个回复

您的电子邮件地址将不会被公布。必需字段被标记

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu