Learning Examples | Foundations | Hacking | Links
在入门指南里(Windows, Mac OS X, Linux), 你上传了一个能够闪烁LED的程序。在这个教程里,你将了解这个程序的每一个部分是如何工作的。
Arduino 的程序称为 sketch。它是一个可以上传并运行在 Arduino 板上的代码单元。
Blink 程序开头的几行是 注释:
所有介于/*
和 */
之间的代码在运行程序时都会被 Arduino 忽略(每行开头的*
仅仅是为了使注释看起来美观一些,并不是必需的)。注释是为那些需要读懂源程序的人写的: 解释程序做了什么,它如何工作,或为什么这样编写。给自己的程序加注释是个好习惯,并且当你修改代码时应当同时更新注释。这样能帮助别人从你的程序中学习或修改你的代码。
还有另一种风格的注释方法,用于注释较短的内容,仅对单行起作用。这样的注释以 //
开始,一直到行尾。例 如以下行:
在这里 "LED connected to digital pin 13" 就是注释。
变量 是保存数据片段的地方。它拥有一个名字、一个数据类型,还有一个值。比如,Blink 程序中上例的一个就声明了一个变量,它的名字是ledPin
, 类型是int
, 初始值是13。它用来指示 Arduino 的哪一个引脚连接了LED。每当代码中出现ledPin
这个名字,它的值就被取出。在这个例子中,程序的作者也可以不必纠结于创建这个ledPin
变量,完全可以直接在每一个需要引脚编号的地方直接写上13。使用变量的好处是当需要把LED移到另一个引脚时会变得更轻松:你只需要修改给变量赋初值的那一行。
不管怎样,变量的值在程序运行过程中经常会改变。例如,你可以在从一个输入端读取一个值,并保存到某个变量。在变量教程里有更多信息。
函数 (也可以称为过程或子程序)是可以在程序中调用的已命名的代码片段。例如,以下是 Blink 范例中的 setup()
函数定义:
第一行提供了函数的一些信息,比如函数的名字是"setup"。函数名前后的文字指定了它的返回类型和参数(这些在稍后解释)。在{
和 }
之间的代码称为函数体: 即函数所做的事情。
你可以call一个已经定义的函数(可以是你的程序中的函数或 Arduino 语言中定义的函数)。例如, pinMode(ledPin, OUTPUT);
这一行调用了 pinMode()
这个函数,并传给它2个parameters: ledPin
和 OUTPUT
。这些参数在 pinMode()
函数内使用,确定要设置的引脚和模式。
pinMode()
函数把一个引脚配置为输入端或输出端。要使用它,你需要给它传送一个引脚编号和一个 INPUT 或 OUTPUT 常量。当配置为输入端(INPUT)时,引脚可以检测到传感器(比如按钮开关)的状态;这在稍后的教程中讨论。作为输出端,它可以驱动一个执行装置,比如LED。
digitalWrite()
函数使引脚输出一个值。例如以下代码:
把 ledPin
(13号引脚) 设置为 HIGH, 即 5V。给一个引脚写入 LOW 即把该引脚连接到地,即0V。
delay()
使 Arduino 在执行下一行之前等待一段时间(根据给出的数值,单位毫秒)。1秒=1000毫秒,所以代码:
引起一秒的延迟。
在每个 Arduino 程序中都有两个特殊的函数:setup()
和 loop()
。setup()
只在程序开始时调用一次。这里适合做一些设置工作,如设置引脚的工作模式或初始化程序库等。loop()
函数是大多数程序的中心,它是被重复调用的。在程序中必需包含这两个函数,即使你并不需要它。
1. 修改代码,使 LED 亮 100ms,熄 1000ms。
2. 修改代码使 LED 在程序开始时点亮,并保持点亮。