常量定义 (constants)
常数在 86Duino 语言中是预先被定义好的变数,它们让程式码变得更容易阅读。
定义逻辑上的 true 和 false (布林常数)
86Duino 语言中有两个常数用来表示 真 或 假:true
以及 false
false
在两者之中,false 较容易定义,它只要被定义为 0 即可。
true
通常 true 会被定义为 1 以表示 真,但事实上 true 拥有许多广泛的定义,任意一个非零的整数都可以为 true,所以 -1、2、-200,在布林逻辑上都会被定义为 true。
注意 true
或 false
是小写的,而不像 HIGH、LOW、INPUT、OUTPUT。
定义 pin 脚状态上的 HIGH 和 LOW
当读取或者写入GPIO pin 脚时只有两种设定值:HIGH
与 LOW
。
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 脚可以设定为 INPUT
、INPUT_PULLUP
、 OUTPUT
三种模式,它可以靠 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.