常量定义 (constants)

常数在 86Duino 语言中是预先被定义好的变数,它们让程式码变得更容易阅读。

定义逻辑上的 true 和 false (布林常数)

86Duino 语言中有两个常数用来表示 真 或 假:true 以及 false

false

在两者之中,false 较容易定义,它只要被定义为 0 即可。

true

通常 true 会被定义为 1 以表示 真,但事实上 true 拥有许多广泛的定义,任意一个非零的整数都可以为 true,所以 -1、2、-200,在布林逻辑上都会被定义为 true。

注意 truefalse 是小写的,而不像 HIGH、LOW、INPUT、OUTPUT。

定义 pin 脚状态上的 HIGH 和 LOW

当读取或者写入GPIO pin 脚时只有两种设定值:HIGHLOW

HIGH

HIGH 对于一个 pin 脚的意义,会根据其设定为 INPUT 或 OUTPUT 模式而有所不同,如果 pin 脚被 pinMode() 设定为 INPUT 并且其上的电压到达 2.5 伏特以上时,以 digitalRead() 读取则会回传 HIGH。

如果 pin 脚被 pinMode() 设定为 OUTPUT 并且以 digitalWrite() 将它设定为 HIGH,pin 脚会持续送出 3.3 伏特的电压,在这个状态下可以被当作电压源;例如我们可以接上 LED 灯做为其电源供应,LED 负极则接上 GND 或是一个设定为 LOW 的 pin 脚。

LOW

LOW 对于一个 pin 脚的意义,会根据其设定为 INPUT 或 OUTPUT 模式而有所不同,如果 pin 脚被 pinMode() 设定为 INPUT 并且其上的电压到达 0.8 伏特以下时,以 digitalRead() 读取则会回传 LOW。

如果 pin 脚被 pinMode() 设定为 OUTPUT 并且以 digitalWrite() 将它设定为 LOW,pin 脚上不会有电压 (即 0 伏特),在这个状态下可以被当作接地端;例如我们可以接上 LED 灯做为其接地 pin 脚,LED 正极则接上 5 伏特电压或是一个设定为 HIGH 的 pin 脚。

定义 pin 脚模式上的 INPUT、INPUT_PULLUP、 OUTPUT

GPIO pin 脚可以设定为 INPUTINPUT_PULLUPOUTPUT 三种模式,它可以靠 pinMode() 函式来改变 pin 脚的模式。

把 pin 脚设定成 INPUT

86Duino 的 pin 脚可以藉由 pinMode() 函式设定为 INPUT,使 pin 脚呈现高阻抗的状态;对一个可以采样外部信号的电路来说,此状态对外部信号的影响是极微小的,信号会先通过一个高阻抗电阻 (>>10mega 欧姆) 后才进入 pin 脚,所以很适合用来读取外部感测器的信号。

如果你将 pin 脚设定为 INPUT,也想要让它的电压平常就在 GND 状态的话,通常需要再外接一个 pull-down 电阻来完成,这部分在 Arduino 的 Digital Read Serial 使用手册中有详细介绍。

把 pin 脚设定成 INPUT_PULLUP

86Duino 的 CPU 有内建 pull-up 电阻(内部有一个连接至电源的 75k 欧姆电阻),如果你想要使用这些内部电阻,可以将 pinMode() 设定成 INPUT_PULLUP;这可以有效的反转外部信号所代表的意义:当读到 HIGH 代表感测器关闭,LOW 代表感测器开启。这部分的细节在 Arduino 的 Input Pullup Serial 相关范例中。

把 pin 脚设定成 OUTPUT

86Duino 的 pin 脚可以藉由 pinMode() 函式设定为 OUTPUT,一个低阻抗的模式;这代表它可以提供大量的电流给其他的电路,86Duino 可为外部装置提供(正电流)或吸收(负电流)达 16 毫安培,这对点亮 LED 灯是非常有用的,但对感测器读取上较没帮助;要注意的是:pin 脚为 OUTPUT 的模式下,若不小心将 5 伏特与 GND 短路,有可能会将此 pin 烧毁。另外,86Duino pin 所提供的电流量并不足以提供给马达、继电器或是一些需要较大电流才能驱动的装置。

See also

pinMode()
Integer Constants
boolean variables


语法参考主页面

本页由热血青年 LBU 译自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.