[Constants]
描述
Constants are predefined expressions in the Arduino language. They are used to make the programs easier to read. We classify constants in groups.
Defining Logical Levels, true and false (Boolean Constants)
There are two constants used to represent truth and falsity in the 86Duino language: true
, and false
.
false
false
is the easier of the two to define. false is defined as 0 (zero).
true
true is often said to be defined as 1, which is correct, but true has a wider definition. Any integer which is non-zero is true, in a Boolean sense. So -1, 2 and -200 are all defined as true, too, in a Boolean sense.
Note that the true
以及 false
constants are typed in lowercase unlike HIGH, LOW, INPUT, & OUTPUT.
Defining Pin Levels, HIGH and LOW
When reading or writing to a digital pin there are only two possible values a pin can take/be-set-to: HIGH
以及 LOW
.
HIGH
The meaning of HIGH (in reference to a pin) is somewhat different depending on whether a pin is set to an INPUT or OUTPUT. When a pin is configured as an INPUT with pinMode()
, and read with digitalRead()
, the processor will report HIGH if a voltage of 2.5 volts or more is present at the pin.
When a pin is configured to OUTPUT with pinMode()
, and set to HIGH with digitalWrite()
, the pin is at 3.3 volts. In this state it can source current, e.g. light an LED that is connected through a series resistor to ground, or to another pin configured as an output, and set to LOW.
LOW
The meaning of LOW also has a different meaning depending on whether a pin is set to INPUT or OUTPUT. When a pin is configured as an INPUT with pinMode()
, and read with digitalRead()
, the processor will report LOW if a voltage of 0.8 volts or less is present at the pin.
When a pin is configured to OUTPUT with pinMode()
, and set to LOW with digitalWrite()
, the pin is at 0 volts. In this state it can sink current, e.g. light an LED that is connected through a series resistor to, +5 volts, or to another pin configured as an output, and set to HIGH.
Defining Digital Pins, INPUT, INPUT_PULLUP, and OUTPUT
Digital pins can be used as INPUT
, INPUT_PULLUP
, or OUTPUT
. Changing a pin with pinMode()
changes the electrical behavior of the pin.
Pins Configured as INPUT
86Duino pins configured as INPUT
with pinMode()
are said to be in a high-impedance state. Pins configured as INPUT make extremely small demands on the circuit that they are sampling, equivalent to a high-impedance series resistor (>> 10 Megohms) in front of the pin. This makes them useful for reading a sensor, but not powering an LED.
If you have your pin configured as an INPUT, you will want the pin to have a reference to ground, often accomplished with a pull-down resistor (a resistor going to ground) as described in Arduino’s Digital Read Serial tutorial.
Pins Configured as INPUT_PULLUP
The CPU of the 86Duino has internal pull-up resistors (resistors that connect to power internally) of 75 kilo ohms. If you prefer to use these instead of external pull-down resistors, you can use the INPUT_PULLUP
argument in pinMode()
. This effectively inverts the behavior, where HIGH means the sensor is off, and LOW means the sensor is on. See Arduino’s Input Pullup Serial tutorial for an example of this in use.
Pins Configured as OUTPUT
Pins configured as OUTPUT
with pinMode()
are said to be in a low-impedance state. This means that they can provide a substantial amount of current to other circuits. 86Duino pins can source (provide positive current) or sink (provide negative current) up to 16 mA (milliamps) of current to other devices/circuits. This makes them useful for powering LED’s but useless for reading sensors. Pins configured as outputs can also be damaged or destroyed if short circuited to either ground or 5 volt power rails. The amount of current provided by an 86Duino pin is also not enough to power most relays or motors, and some interface circuitry will be required.
參考
- [Language] pinMode()
- [Language] Integer Constants
- [Language] boolean variables
語法參考主頁面
86Duino 參考的文本是根據 Creative Commons Attribution-ShareAlike 3.0 License,部分文本是從 the Arduino reference 修改的。 參考中的代碼示例已發佈到公共領域。