常量

来自YFRobotwiki
跳转至: 导航搜索

在Arduino语言中Constants 是预定义的变量。他们是用来使程序易于阅读。我们按组将常量进行分类:


逻辑层定义: true 与 false (Boolean 布尔型常量)


在Arduino语言里有两个常量被用于表示真和假: true,与false


false

在这两个常量中 false 更容易被定义。false 被定义为 0 。


true

true通常被定义为1,这个正确的,但其实 true 具有更广泛的定义。在布尔含义(Boolean sense)里任何非零整数都为 true,所以像-1,2,或者200都被定义为 true。

注意 true 和 false 常量不同于 HIGH, LOW, INPUT 和 OUTPUT 需要小写。


引脚电压定义: HIGH 与 LOW


当对数字引脚读或者写操作时只有两个可能的值:HIGHLOW


HIGH

HIGH(参考引脚)的含义有所不同,取决于引脚(pin)设置为 INPUT 还是 OUTPUT。当一个引脚通过pinMode()被设置为 INPUT,并使用digitalRead()函数读取引脚时,在以下情况中,Arduino控制器将返回 HIGH:

- 引脚电压大于3V(5V板)
- 引脚电压大于2V(3.3V板)

引脚也可以通过 pinMode()设置为 INPUT,然后使用digitalWrite() 设置为HIGH。这将使能内部20K上拉电阻并将这个输入引脚控制为HIGH状态,除非有外部拉低电路。这是INPUT_PULLUP如何工作及更详细的描述如。

当引脚通过pinMode()设置为OUTPUT,通过digitalWrite()设置为HIGH时,该引脚状态:

- 5 V (5V boards);
- 3.3 V (3.3V boards);

在这种状态下它可以输出电流,例如:点亮一个通过串联电阻连接到GND的LED。


LOW

LOW(参考引脚)的含义也有所不同,同样取决于引脚(pin)设置为 INPUT 还是 OUTPUT。当一个引脚通过pinMode()被设置为 INPUT,并使用digitalRead()函数读取引脚时,在以下情况中,Arduino控制器将返回 LOW:

- 引脚电压低于3V(5V板)
- 引脚电压低于2V(3.3V板)

当一个引脚通过pinMode()被设置为 OUTPUT,并使用digitalWrite()函数设置为 LOW状态时,该引脚电压为0V(5V板和3.3V板相同)。在这种状态下它可以反向电流,例如:点亮一个通过串联电阻连接到+5V(或者+3.3V)的LED。


Defining Digital Pins modes: INPUT, INPUT_PULLUP, and OUTPUT


数字引脚可以被用做 INPUTINPUT_PULLUPOUTPUT。通过pinMode()改变一个数字引脚使用状态(在3者中切换)。


引脚配置为INPUT

Arduino(Atmega)引脚通过pinMode()配置为 输入(INPUT) 即是将其配置在一个高阻抗的状态。引脚配置为INPUT 使引脚进行取样时对电路要求非常小,相在引脚前当于串联一个100M欧电阻。这使得他们更利于读取一个传感器。

如果你配置你的引脚为INPUT,并读取一个开关状态,当开关处于打开状态时输入引脚将是“浮动的”,并导致不可预知的结果。为了保证当开关打开状态能读到一个确切的状态,必须使用上拉或者下拉电阻。这个电阻的目的是当开关打开时,引脚处于一个已知状态。通常我们会选择10 K欧姆电阻,因为它阻值低确有效防止浮动输入,同时当开关关闭是,一个高阻值的电阻阻碍了电流流通。 有关更多信息,请参见教程:Digital Read Serial

如果使用一个下拉电阻,当开关打开时输入引脚将为低,当开关关闭为高。

如果使用一个上拉电阻,当开关打开时输入引脚将为高,当开关关闭为低。


引脚配置为INPUT_PULLUP

arduino上的单片机具有内部上拉电阻(电阻连接到电源内部)并且你可以使用。如果你倾向于使用它代替外部上拉电阻,可以使用pinMode()设置引脚为INPUT_PULLUP 。

详细可以参考使用例程:Input Pullup Serial

引脚作为输入配置两者INPUT或INPUT_PULLUP任何一个都可以被损坏或摧毁了,如果连接了负电压或高电压(5 v或3 v)。


引脚配置为Outputs

引脚通过pinMode()配置为 输出(OUTPUT) 即是将其配置在一个低阻抗的状态。这意味着他们可以为其他电路提供充足的电流。Atmega单片机引脚可以为其他设备/电路提供到40mA的电流或者反向电流。这使得他们用于驱动LEDs,因为LEDs通常使用不到40mA电流。负载大于40mA电流的(例如:电机)将需要外接晶体管或者其他相关电路。


Defining built-ins: LED_BUILTIN


大多数Arduino电路板都有一个引脚通过串联电阻连接板载LED。常量LED_BUILTIN 为该引脚的引脚号。大多数板子的板载led都是连接到数字引脚13的。




返回Arduino语法参考列表

更多建议和问题欢迎反馈至 YFRobot论坛